首页 > 代码库 > 10.2.0.4 to 10.2.0.5 Installation of Patch Set Release (Windows)

10.2.0.4 to 10.2.0.5 Installation of Patch Set Release (Windows)

环境:10.2.0.4集群数据库zlm10g(双节点,zlm10g1,zlm10g2)

系统:Windows 2003 Server 64Bit

内存:2G RAM

存储:ASM

目标:把集群数据库从10.2.0.4升级到10.2.0.5,包括集群软件和OEM的Patch安装

 

一、升级前准备:


1. 查看是否存在无效对象

SQL> select object_name,status from dba_objects where

status=‘INVALID‘;

目的是为了可以判断这些无效对象是由升级过程产生的,还是升级前就已经存在的

 

2. 检查数据库中的时区 (Time Zone) 信息

SQL> select version from v$timezone_file;


2.1 返回值为4

此时数据库中如果含有TZ信息,在升级中无需额外的操作

 

2.2 返回值大于4

请查阅[ID 553812.1]文档

 

2.3 如果返回值小于4

执行以下步骤

@?/rdbms/admin/utltzpv4.sql;

select * from sys.sys_tzuv2_temptab;

如果没有返回行,那么在升级过程无需额外操作

如果返回包含TZ的具体列信息,那么升级操作会影响到该TZ信息

 

如果SYS用户有拥有SCHEDULER对象,那么在升级过程中可以忽略,但是如果有用户数据或用户创建的job,则需要在升级前对这些数据进行备份,升级后删除全部用户创建的job,然后再重建

 

两种升级的方式:

滚动升级(无停机时间)

非滚动升级(有停机时间)

 

二、升级集群数据库软件


1. 首先,准备好10.2.0.5的Patch介质:

p8202632_10205_MSWIN-x86-64

 

2. 停止所有节点的Oracle相关服务和进程


2.1 停止crs资源

emctlstop dbconsole

isqlplusctlstop

lsnrctlstop

srvctlstop service -d zlm10g

srvctlstop databse -d zlm10g

srvctlstop asm -n rac1

srvctlstop asm -n rac2

srvctlstop listener -n rac1

srvctlstop listener -n rac2

srvctlstop nodeapps -n rac1

srvctlstop nodeapps -n rac2

crs_stat-t检查集群资源是否已经全部关闭

srvctlstop crs

 

2.2 停止服务

运行services.msc,查看Oracle相关服务是否全部已经关闭,另外有

一个Distributed TransactionCoordinator服务也要停止

 

2.3 停止进程

查看任务管理器中是否有oracle相关的进程在运行,全部关闭之,如:one.exe

 

3. 备份以下目录(copy至其他路径):

%ORACLE_CRS_HOME%

%ORACLE_HOME%

%ORACLE_INVENTORY%

注意:推荐先对数据库进行RMAN备份

 

4. 安装集群软件Patch

安装时,路径选择覆盖原路径安装,即crs_1目录

软件安装完毕后,分别在节点1和节点2运行patch102.bat完成实际安装过程,运行完脚本后,系统会自动运行CRS相关服务

 

5. 检查集群Patch是否正确安装

crsctlquery crs softwareversion

crsctlquery crs activeversion

如果集群Patch正常安装完毕,这2个命令的输出应该都是10.2.0.5.0

 

三、数据库软件Patch安装


1. 安装介质和升级ClusterWare时用的是同一个:

p8202632_10205_MSWIN-x86-64

 

2. 关闭Oracle相关服务和进程


2.1 停止crs资源

emctlstop dbconsole

isqlplusctlstop

lsnrctlstop

srvctlstop service -d zlm10g

srvctlstop databse -d zlm10g

srvctlstop asm -n rac1

srvctlstop asm -n rac2

srvctlstop listener -n rac1

srvctlstop listener -n rac2

 

2.2 停止服务

运行services.msc,查看Oracle相关服务是否全部已经关闭,另外有

一个Distributed TransactionCoordinator服务也要停止

 

2.3 停止进程

查看任务管理器中是否有oracle相关的进程在运行,全部关闭之,如:one.exe

 

3. 安装Oracle数据库软件的Patch

安装路径选择之前装数据库软件的同一个目录,即db_1目录

 

4. 修改集群数据库参数

装完后以sysdba登录系统,修改cluster_database参数为False

sqlplus/nolog

SQL>alter system set cluster_database=falsescope=spfile;

SQL>shutdown immediate

 

5. 在节点1跑升级脚本,对数据库进行升级

 

5.1 进入升级模式:

SQL>startup upgrade

 

5.2 预检一下升级是否符合条件:

SQL>spool patch_info.log

SQL> @?\rdbms\admin\utlu102i.sql

SQL>spool off

关于预检这个脚本,官网对于每个版本,有更多的补充脚本,会提供更新、更详细的预检内容,详情可以查阅 [ID 884522.1]


5.3 开始执行正式的升级脚本:

SQL>spool patch.log

SQL> @?\rdbms\admin\utlupgrd.sql

10gR2该过程持续约30分钟,11gR2大约需要50分钟


 

5.4 编译升级后产生的无效对象

SQL>spool rp.log

SQL> @?\rdbms\admin\utlrp.sql

SQL>spool off

 

5.5 检查升级后数据库各组件是否有效

SQL> select comp_id,comp_name,status from sys.dba_registry;

如果升级正常完成,全部组件的status列的值应该都是VALID

 

四、用OPatch安装10.2.0.5以后的补丁


1. 介质准备及说明


p8350262_10205_Generic (OEM补丁)

p12429524_10205_MSWIN-x86-64


这里要说明一下,打该补丁主要目的,是为了能正常使用OEM对数据库进行管理,由于OEM在10.2.0.4和10.2.0.5上正常运行存在一个bug,详见:[ID1222603.1]


如果不打该OEM补丁,那么在执行dbca,dbua,emca配置OEM时,都会提示无法配置EM,启动Database Control失败,原因是根证书CA在31-DEC-2010失效,而无法使用SSL协议进行通讯,导致无法启动,该bug仅限于以上2个版本的PSR


这里第2个介质,p12429524_10205_MSWIN-x86-64包含了更多的fixed bug,所以如果直接安装12429524这个PSU,那么也可以不用安装8350262,二者选一即可




 

2. OPatch安装

对于Oracle所有的Interim Patch,即我们说的经常所说的小补丁(PSU),都可以用OPatch来进行安装,这是Oracle官方提供的一个补丁安装脚本,使用起来很简单,目录就放在ORACLE_HOME\OPatch

下面,Windows平台的可执行文件为opatch.bat,把需要安装的补丁解压到某个目录,然后执行“opatch apply +解压目录路径”就可以了,也可以进入解压出来的那个一串数字的目录中,直接执行opatch apply来安装补丁,如果要查看数据库之前了哪些补丁,可以执行opatch lsinventory[-detail],具体命令可以加-help查阅

 

3. 重新配置OEM

装完补丁以后,如果直接去启动DBconsole还是会遇到无法正常启动,这里需要对其进行重新配置,主要就是3个步骤:

 

3.1 节点1执行

emctlsecure dbconsole -reset

 

3.2 节点2执行

emctlsecure dbconsole

注意,是不带-reset参数的命令

 

3.3 节点1(或节点2)启动dbconsole

emctlstart dbconsole

 

五、收尾


至此,全部升级工作顺利结束,检查一下是否有遗漏的Oracle服务和进程未开启,如果有的话,全部开启

services.msc

crs_stat -t

emctlstart dbconsole

isqlplusctlstart

lsnrctlstart

srvctlstart service -d zlm10g

srvctlstart database -d zlm10g

srvctlstart instance -d zlm10g-i zlm10g1

srvctlstart instance -d zlm10g-i zlm10g2

srvctlstart listener -n rac1

srvctlstart listener -n rac2

srvctlstart asm -n rac1

srvctlstart asm -n rac2

srvctlstart nodeapps -n rac1

srvctlstart nodeapps -n rac2

以上命令可选,并非都需要执行一遍,如果crs资源都ONLINE了,那就不需要执行了