Oracle的Apply Patchset的方法一直是为人诟病的,其实步骤复杂倒也罢了,怕的是Oracle总在不停地修改Apply Patch的方法,Oracle的原意是让Apply Patch的语法越来越简单,但是各种各样的Patch,各种不同的命令,特别是很大的Bundle Patch,如果不仔细阅读Readme,千万不要轻易出手。 这次尝试在自己的VirtualBox虚拟机OEL6中给之前安装的GI(Oracle Restart)+ ASM + Oracle Database安装最新的11.2.0.2.5 PSU,遇到各种问题。 1. Patch解压的目录必须是grid用户和oracle用户拥有写权限的,如果没有写权限,会报错: Opatch version check failed for oracle home /u01/app/oracle/product/11.2.0/dbhome_1 Opatch version check failed update the opatch version for the failed homes and retry 安装需求是使用root用户来安装(这是我第一次看到在安装PSU的时候要求使用root用户),而我的虚拟机中由于没有足够的磁盘空间,所以将Mac中的下载目录作为Shared Folder映射到虚拟机中,因此改目录的属主是root,用户组是vboxsf,而且并不允许使用chmod直接修改。因此出现了权限问题。我的解决方法是将grid用户和oracle用户都加入vboxsf组中。 建议:在真实环境中,Patch解压目录应该属于dba用户组。 2. 我的Patch是解压在/media/sf_PSU目录下,解压以后生成了p13343447_112020_Linux-x86-64目录,其下有两个目录分别是13343424(这是DB PSU)和13343447(这是GI PSU),整个目录结构如下所示: |-media |–sf_PSU |—p13343447_112020_Linux-x86-64 |—–13343424 |—–13343447 按照Readme文档中描述的,opatch的命令应该写为: opatch auto 此处的UNZIPPED_PATCH_LOCATION按照文档描述应该就是/media/sf_PSU目录,因为这是解压目录,但是实际上这份文档是有问题的(注:这是我个人造成的问题,我在操作系统中双击解压zip包,自动生成了p13343447_112020_Linux-x86-64目录,而如果命令行下用unzip解压,则不会出现此目录,因此Oracle文档中的描述并没有问题,但是这里主要吐槽下面的报错信息),如果opatch命令写为: opatch auto /media/sf_PSU…
Tag: PSU
OPatch failed with error code 73 when patch Oracle 10.2.0.4 on Mac OS X
现在Mac OS X中的Oracle数据库最新版本是10.2.0.4 (没有10.2.0.5更没有11g)。如果想给该版本数据库打上PSU补丁的时候,会遇到以下错误。 Running prerequisite checks… Prerequisite check “CheckPatchApplicableOnCurrentPlatform” failed. The details are: Patch ( ) is not applicable on current platform. Platform ID needed is : 46 Platform IDs supported by patch are: 293 UtilSession failed: Prerequisite check “CheckPatchApplicableOnCurrentPlatform” failed. OPatch failed with error code 73 这个错误是由于Bug # 8647770引起的。解决方法如下: 1. 下载patch 8647770. 2….
Notes for Oracle Database PSU/CPU
1. 什么是PSU/CPU? CPU: Critical Patch Update Oracle对于其产品每个季度发行一次的安全补丁包,通常是为了修复产品中的安全隐患。 PSU: Patch Set Updates Oracle对于其产品每个季度发行一次的补丁包,包含了bug的修复。Oracle选取被用户下载数量多的,并且被验证过具有较低风险的补丁放入到每个季度的PSU中。在每个PSU中不但包含Bug的修复而且还包含了最新的CPU。 2. 如何查找最新的PSU? 每个数据库版本都有自己的PSU,PSU版本号体现在数据库版本的最后一位,比如最新的10.2.0.5的PSU是10.2.0.5.3,而11.2.0.2的最新PSU则是11.2.0.2.2。 MOS站点中Oracle Recommended Patches — Oracle Database [ID 756671.1] 文档中查到各个产品版本最新的PSU。 如果你记不住这个文档号,那么在MOS中以“PSU”为关键字搜索,通常这个文档会显示在搜索结果的最前面。 注意:必须购买了Oracle基本服务获取了CSI号以后才有权限登陆MOS站点。 3. 如何正确安装PSU? 每个PSU安装包中都包含一个README.html文档,其中描述了如何安装该PSU,有些PSU是可以直接安装的,而有些PSU则必须要求安装了上一个版本的PSU之后才能继续安装。比如对于10.2.0.4版本的数据库来说,PSU 10.2.0.4.4可以直接安装在最原始的10.2.0.4.0版本中,而最新的PSU 10.2.0.4.8则必须要求先安装10.2.0.4.4。这些信息在README.html中都可以找到,所以请仔细阅读该文档。 通常安装PSU是比较简单的,步骤如下: 1) 安装PSU需要使用到opatch,在README.html中有描述该PSU需要的最低版本opatch,如果当前opatch版本过低,则需要先下载Patch 6880880,该Patch中包含最新的opatch,只需要解压覆盖原先的$ORACLE_HOME/OPatch目录即可。 查看当前的opatch版本,可以使用opatch version命令。 $ opatch version Invoking OPatch 10.2.0.5.2 OPatch Version: 10.2.0.5.2 OPatch succeeded. 2)安装PSU,请仔细阅读README.html,确认安装命令,通常是简单的opatch apply。 opatch apply 3)更新数据库,将修改过的SQL文件应用到数据库中,很多DBA在执行完上述安装命令以后就不再进行这一步,那么实际上PSU是没有完整安装的。 cd $ORACLE_HOME/rdbms/admin…