Oracle Database PSU/CPU
1. 什么是PSU/CPU? PSU: Patch Set Updates 2. 如何查找最新的PSU? 注意:必须购买了Oracle基本服务获取了CSI号以后才有权限登陆MOS站点。 3. 如何正确安装PSU? 通常安装PSU是比较简单的,步骤如下: 查看当前的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 sqlplus / as sysdba SQL> STARTUP SQL> @catbundle.sql psu apply SQL> QUIT 注意:如果PSU是overlay PSU,比如10.2.0.4.8,则需要执行@catbundle.sql opsu apply,同样这些在README.html中都有详细描述。 4)重新编译CPU相关视图。该步骤在一个数据库上永远只需要执行一次,是为了完成在2008年1月份第一次发布CPU补丁时的后续工作,如果在安 装以前的PSU或者CPU时执行过这个步骤那么就可以无需再次执行,另外,即使不执行该步骤,数据库也是正常运行的,只不过意味着2008年1月份的 CPU补丁没有正常结束安装。 cd $ORACLE_HOME/cpu/view_recompile sqlplus / as sysdba SQL> @recompile_precheck_jan2008cpu.sql SQL> SHUTDOWN IMMEDIATE SQL> STARTUP UPGRADE SQL> @view_recompile_jan2008cpu.sql SQL> SHUTDOWN; SQL> STARTUP; SQL> QUIT 注意:该步骤由于需要重新编译大量视图,因此要启动数据库到upgrade状态才可以完成。也就是将引起停机时间。 4. 如何确认当前数据库已经安装了什么PSU/CPU? 最常用的方法是使用opatch命令。在打完最新的PSU 10.2.0.4.8的10.2.0.4数据库中会有以下显示。 $ opatch lsinventory -bugs_fixed | grep -i 'DATABASE PSU' 9654991 11724977 Wed May 25 16:37:17 CST 2011 DATABASE PSU 10.2.0.4.5 (REQUIRES PRE-REQUISITE 9952234 11724977 Wed May 25 16:37:17 CST 2011 DATABASE PSU 10.2.0.4.6 (REQUIRES PRE-REQUISITE 10248636 11724977 Wed May 25 16:37:17 CST 2011 DATABASE PSU 10.2.0.4.7 (REQUIRES PRE-REQUISITE 11724977 11724977 Wed May 25 16:37:17 CST 2011 DATABASE PSU 10.2.0.4.8 (REQUIRES PRE-REQUISITE 8576156 9352164 Wed May 25 15:10:48 CST 2011 DATABASE PSU 10.2.0.4.1 (INCLUDES CPUJUL2009) 8833280 9352164 Wed May 25 15:10:48 CST 2011 DATABASE PSU 10.2.0.4.2 (INCLUDES CPUOCT2009) 9119284 9352164 Wed May 25 15:10:48 CST 2011 DATABASE PSU 10.2.0.4.3 (INCLUDES CPUJAN2010) 9352164 9352164 Wed May 25 15:10:48 CST 2011 DATABASE PSU 10.2.0.4.4 (INCLUDES CPUAPR2010) 另外的方法是查看registry$history表。 SQL> select action,comments from registry$history; ACTION COMMENTS ------------------------------- -------------------- APPLY PSU 10.2.0.4.4 APPLY PSU 10.2.0.4.8 CPU view recompilation 注意:该表的内容是在上述安装PSU步骤的第三步中运行catbundle.sql才会插入的,因此如果该步骤忘记执行,则此表中无记录。因此我们在作数据库健康检查的时候不但要用opatch检查当前数据库最新的PSU补丁,也要检查registry$history表,以确认其它DBA是否正确地完成了PSU的安装。 如果多个PSU的安装都忘记了执行上述第三步,可以通过以下方法依次补作。 $ ls -l $ORACLE_HOME/psu total 0 drwxrwxrwx 2 oracle dba 96 Oct 16 2010 10.2.0.4.4 drwxrwxrwx 2 oracle dba 96 Oct 16 2010 10.2.0.4.5 $sqlplus / as sysdba SQL> @?/psu/10.2.0.4.4/catpsu.sql SQL> @?/psu/10.2.0.4.5/catopsu.sql 更多关于CPU的信息,可以参看:Maclean的了解Oracle Critical Patch Update。 5. 参考文档。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |