您的位置:首页 > 数据库 > Oracle

Oracle 11gR1/R2 PSU安装参考

2016-06-22 16:11 501 查看
#

##Oracle PSU概述

#

CPU: Critical Patch Update

Oracle对于其产品每个季度发行一次的安全补丁包,通常是为了修复产品中的安全隐患。

PSU: Patch Set Updates

Oracle对于其产品每个季度发行一次的补丁包,包含了bug的修复。Oracle选取被用户下载数量多的,并且被验证过具有较低风险的补丁放入到每个季度的PSU中。在每个PSU中不但包含Bug的修复而且还包含了最新的CPU。每个数据库版本都有自己的PSU,PSU版本号体现在数据库版本的最后一位,比如11.2.0.3的最新PSU则是11.2.0.3.7。

下载地址:有了CSI账号后通过MOS(https://support.oracle.com/)站点下载

每个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中都可以找到,所以要仔细阅读README文档两遍。

安装PSU示例见下文:

#

##Linux 5.5下安装Oracle 11g R1 RAC 之 PSU安装

#范例:OPatch及PSU安装

不同于Oracle 11g R2,Oracle 11g R1中并没有Grid Infrustructure,无grid用户,只需在root及oracle上进行操作即可。过程如下:

(1)安装OPatch

安装PSU需要OPatch的支持,如果当前OPatch版本过低,则需要先下载合适版本的OPatch,如p6880880_112000_Linux-x86-64.zip。可通过如下命令查看当前OPatch版本信息:

$cd $ORACLE_HOME/OPatch

$ Opatch version

Invoking OPatch 11.1.0.6.0

Opatch version: 11.1.0.6.0

OPatch succeeded.

要安装OPatch,只需将下载的OPatch解压后,取代$ORACLE_HOME路径下的OPatch目录即可(先做好原OPatch备份),此时再在$ORACLE_HOME/OPatch下运行$opatch version,即可看到打完OPatch后的版本,如:

$ Opatch version

Opatch version: 11.2.0.3.0

(2)安装PSU

安装PSU方法比较多,比如下面例子,通过指定$ORACLE_HOME及补丁所在位置安装,如:

$opatch napply -oh /oracle/app/oracle/product/11.1 /bak/8534378

(3)更新数据库

将修改过的SQL文件应用到数据库中,在执行完上述安装命令以后就不再进行这一步,那么实际上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状态才可以完成。也就是将引起停机时间。

确认数据库当前已安装的PSU最常用的方法是使用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)

在11gR2中,OPatch lsinventory命令就可以显示已经打过的PSU名称了,而无需再增加-bug_fixed参数。如:

$ OPatch lsinventory | grep "Patch Set Update"

Patch Description:  "Database Patch Set Update : 11.2.0.3.1 (13343438)"

Patch Description:  "Grid Infrastructure Patch Set Update : 11.2.0.3.1 (13348650)"

具体11gR2 PSU参见下一章节。

此外也可以通过查看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表,以确认是否正确地完成了PSU的安装。

#

##Linux5.5下Oracle11g R2 RAC 之 PSU安装

#示例:给11g R2数据库系统打上13348650 及13343438

#环境:安装完11g R2 grid infrastructure及Oracle instance之后,创建数据库之前

(1) 在root用户下,停止crs并进行unlock:

# /oracle/app/11.2.0/grid/bin/crsct stop crs

# /oracle/app/11.2.0/grid/crs/install/rootcrs.pl -unlock

(2) 分别在两节点上给grid和oracle用户打上PSU

$ OPatch napply -oh /oracle/app/11.2.0/grid -local /oracle/soft/13348650

$ OPatch napply -oh /oracle/app/11.2.0/grid -local /oracle/soft/patch/13343438

(3) 分别在两节点的grid及oracle用户下验证是否成功完成,例如:

$ OPatch lsinventory -oh $ORACLE_HOME

……

Interim patches (2) :

Patch  13343438     : applied on Mon Apr 16 11:24:34 CST 2012

Unique Patch ID:  14271171

Patch description:  "Database Patch Set Update : 11.2.0.3.1 (13343438)"

   Created on 3 Jan 2012, 02:50:27 hrs PST8PDT

   Bugs fixed:

     12998795, 13466801, 13492735, 12834027, 12620823, 13035804, 13362079

     12718090, 13528551, 13041324, 13343438, 12917230, 12847466, 9703627

     12797765, 12950644, 12905058, 13499128, 12861463, 9873405, 12938841

Patch  13348650     : applied on Mon Apr 16 11:23:42 CST 2012

Unique Patch ID:  14274976

Patch description:  "Grid Infrastructure Patch Set Update : 11.2.0.3.1 (13348650)"

   Created on 14 Jan 2012, 08:08:00 hrs PST8PDT

   Bugs fixed:

     13348650, 13039908, 12794268, 13011520, 12784559, 12758736, 13077654

     13001901, 13074261, 12971251, 12538907, 13066371, 12857064, 12897651

     12897902, 12896850, 12726222, 12829429, 12728585, 13396284, 12899169

     13079948, 13111013, 12876314, 12867511, 13090686, 12925041, 12995950

     13085732, 12848480, 12829917, 12990582, 12849377, 12934171, 12975811

     12917897, 12914824, 13082238, 13334158, 12947871, 12950823, 13355963

     12878750, 13001955, 13002015, 11836951, 12965049, 13024624, 12765467

     12791719, 12885323

……

OPatch succeeded.
再检查一下CRS及Oracle实例状态为ok后,至此,完成PSU安装。如果数据库在对CRS及数据库实例打PSU之前已经创建,则还需要对数据库进行更新及编译等操作,参考上一章节第(3)、第(4)步或官方README文档。

参考材料:

Kamus-- http://www.dbform.com/html/2011/1518.html  -- Notes for Oracle Database PSU/CPU
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: