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> @? dbmsadminutlu102i.sql

SQL>spool off

关于预检这个脚本,官网对于每一个版本号,有很多其它的补充脚本。会提供更新、更具体的预检内容,详情能够查阅 [ID 884522.1]


5.3 開始运行正式的升级脚本:

SQL>spool patch.log

SQL> @? dbmsadminutlupgrd.sql

10gR2该过程持续约30分钟。11gR2大约须要50分钟


 

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

SQL>spool rp.log

SQL> @?

dbmsadminutlrp.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官方提供的一个补丁安装脚本,使用起来非常easy,文件夹就放在ORACLE_HOMEOPatch

以下。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了,那就不须要运行了

 

原文地址:https://www.cnblogs.com/cynchanpin/p/7079944.html