环境: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了,那就不须要运行了