设为首页 收藏本站
查看: 1119|回复: 0

[经验分享] Notes for Oracle Database PSU/CP…

[复制链接]

尚未签到

发表于 2016-8-3 18:11:44 | 显示全部楼层 |阅读模式
Notes for Oracle
Database PSU/CPU



2011-06-10
15:05:27| 分类:
IT |
标签:psu
sql
opatch
oracle
database |字号大中小 订阅










by kamus
  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 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?

无论是从V$VERSION或者DBA_REGISTRY或者PRODUCT_COMPONENT_VERSION视图中,都无法查找到PSU的信息,这些视图中始终显示的是最原始的版本,比如10.2.0.4.0。
  最常用的方法是使用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. 参考文档。

Oracle Recommended Patches — Oracle Database [ID 756671.1]

Patch Set Updates for Oracle Products [ID 854428.1]

Introduction To Oracle Database catbundle.sql [ID 605795.1]

How to confirm that a Critical Patch Update (CPU) has been
installed in Linux / UNIX [ID 821263.1]

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-252417-1-1.html 上篇帖子: 过大的Oracle监听日志文件处理(转载) 下篇帖子: Oracle错误代码一览表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表