Oracle RAC 11.2.0.3.2 手动升级 11.2.0.3.4
操作系统:RHEL6.2 64bit
Oracle Database 版本:11.2.0.3.2
Oracle Grid 版本:11.2.0.3.2
说明:文章包括升级准备,升级操作,回退操作(可回退到11.2.0.3.2)
升级准备
查询两个节点grid opatch版本(Opatch版本必需是11.2.0.3或更高的版本)
[root@rac1 ~]# su - grid
[grid@rac1 ~]$ cd $ORACLE_HOME
[grid@rac1 grid]$ OPatch/opatch version
OPatch Version: 11.2.0.3.5
OPatch succeeded.
查询已安装补丁情况
[grid@rac1 ~]$ $ORACLE_HOME/OPatch/opatch lspatches
13696216;Database Patch Set Update : 11.2.0.3.2 (13696216)
13696251;Grid Infrastructure Patch Set Update : 11.2.0.3.2 (13696251)
节点2操作相同
查询两个节点oracle 用户opatch版本
[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.5
OPatch succeeded.
查询已安装补丁情况
[oracle@rac1 ~]$ $ORACLE_HOME/OPatch/opatch lspatches
13696216;Database Patch Set Update : 11.2.0.3.2 (13696216)
13696251;Grid Infrastructure Patch Set Update : 11.2.0.3.2 (13696251)
节点2操作相同
上传补丁介质
[root@rac1 ~]# cd /u01/app/
[root@rac1 app]# mkdir patches
[root@rac1 app]# chown grid:oinstall patches
[root@rac1 app]# su - grid
[grid@rac1 ~]$ cd /u01/app/patches/
[grid@rac1 patches]$ ls
p14275572_1120304_Linux-x86-64.zip
节点2操作相同
解压补丁(使用grid用户执行)
[root@rac1 patches]# su grid
[grid@rac1 patches]$ unzip p14275572_1120304_Linux-x86-64.zip
节点2操作相同
Grid用户执行1
$ opatch prereq CheckConflictAgainstOHWithDetail -ph /14275605 –oh $GRID_HOME
[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph 14275605 -oh $ORACLE_HOME
节点2操作相同
Grid用户执行2
$ opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /14275572 –oh $GRID_HOME
[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir 14275572 -oh $ORACLE_HOME
节点2操作相同
Oracle用户执行1
$ opatch prereq CheckConflictAgainstOHWithDetail -ph /14275605 –oh $DB_HOME
[oracle@rac1 ~]$ cd /u01/app/patches/
[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph 14275605 -oh $ORACLE_HOME
节点2操作相同
Oracle用户执行2
$ opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /14275572/custom/server/14275572 –oh $DB_HOME
[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir 14275572/custom/server/14275572 -oh $ORACLE_HOME
节点2操作相同
停止EM服务(oracle用户执行)
[oracle@rac1 patches]$ emctl stop dbconsole
Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.
[oracle@rac1 patches]$ env |grep ORACLE
ORACLE_SID=enmo1
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
[oracle@rac1 patches]$ export ORACLE_UNQNAME=enmo
[oracle@rac1 patches]$ emctl stop dbconsole
节点2操作相同
升级操作
1.停止应用补丁节点DB(oracle用户执行)
$ /bin/srvctl stop home -o -s -n
[oracle@rac1 ~]$ srvctl stop home -o $ORACLE_HOME -s /home/oracle/state_file.txt -n rac1
节点2操作相同
[oracle@rac2 ~]$ srvctl stop home -o $ORACLE_HOME -s /home/oracle/state_file.txt -n rac2
2.停止crs集群(使用root用户执行)
# /crs/install/rootcrs.pl -unlock
[root@rac1 ~]# $ORACLE_HOME/crs/install/rootcrs.pl –unlock
节点2操作相同
注:停止集群后使用ps –ef | grep ora确保所有oracle进程已经停止,否则会出现文件占用报错,无法应用补丁。
3.应用crs补丁(grid用户执行)
$ /OPatch/opatch napply -oh -local /14275572
[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /u01/app/patches/14275572
应用crs补丁2(grid用户执行)
$ /OPatch/opatch apply -oh -local /14275605
[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local /u01/app/patches/14275605
节点2操作相同
4.应用db组件补丁前执行脚本(oracle用户执行)
$ /14275572/custom/server/14275572/custom/scripts/prepatch.sh -dbhome
[oracle@rac1 ~]$ cd /u01/app/patches
[oracle@rac1 patches]$ 14275572/custom/server/14275572/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME
节点2操作相同
5. 应用DB补丁(oracle用户执行)
$ /OPatch/opatch napply -oh -local /14275572/custom/server/14275572
[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local 14275572/custom/server/14275572
节点2操作相同
应用DB补丁2(oracle用户执行)
$ /OPatch/opatch apply -oh -local /14275605
[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local 14275605
节点2操作相同
6. 应用DB补丁后执行脚本(oracle用户执行)
$ /14275572/custom/server/14275572/custom/scripts/postpatch.sh -dbhome
[oracle@rac1 patches]$ 14275572/custom/server/14275572/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME
节点2操作相同
7.使用root用户执行脚本
# /rdbms/install/rootadd_rdbms.sh
[root@rac1 ~]# $ORACLE_HOME/rdbms/install/rootadd_rdbms.sh
节点2操作相同
使用root用户执行脚本2启动crs
# /crs/install/rootcrs.pl -patch
[root@rac1 ~]# $ORACLE_HOME/crs/install/rootcrs.pl –patch
节点2操作相同
注:如果提示“A system reboot is recommended before using ACFS”需要重启。
8. 开启应用补丁节点DB(oracle用户执行)
$ /bin/srvctl start home -o -s -n
[oracle@rac1 ~]$ $ORACLE_HOME/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/state_file.txt -n rac1
节点2操作相同
[oracle@rac2 ~]$ $ORACLE_HOME/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/state_file.txt -n rac2
9.执行脚本更新DB补丁记录(sysdba用户登录实例)
SQL> @?/rdbms/admin/catbundle.sql psu apply
10.检查补丁状态
查询DB补丁记录
SQL> col action_time for a30
SQL> col version for a15
SQL> col id for 99
SQL> col action for a10
SQL> col namespace for a10
SQL> col COMMENTS for a20
SQL> col BUNDLE_SERIES for a15
SQL> select * from registry$history;
查询补丁状态grid用户执行
[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lspatches
[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lsinventory
节点2操作相同
查询补丁状态oracle用户执行
[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lspatches
[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lsinventory
节点2操作相同
回退操作
1. 停止节点DB(oracle用户执行)
$ /bin/srvctl stop home -o -s -n
[oracle@rac1 ~]$ $ORACLE_HOME/bin/srvctl stop home -o $ORACLE_HOME -s /home/oracle/state_file_rollback.txt -n rac1
节点2操作相同
[oracle@rac2 ~]$ $ORACLE_HOME/bin/srvctl stop home -o $ORACLE_HOME -s /home/oracle/state_file_rollback.txt -n rac2
2. 停止crs集群(root用户执行脚本)
# /crs/install/rootcrs.pl -unlock
[root@rac1 ~]# $ORACLE_HOME/crs/install/rootcrs.pl –unlock
节点2操作相同
注:停止集群后使用ps –ef | grep ora确保所有oracle进程已经停止,否则会出现文件占用报错,无法应用补丁。
3. 回退crs 补丁(grid用户执行)
回退crs补丁1
$ /OPatch/opatch rollback -local -id 14275572 -oh
[grid@rac1 ~]$ $ORACLE_HOME/OPatch/opatch rollback -local -id 14275572 -oh $ORACLE_HOME
节点2操作相同
回退crs补丁2
$ /OPatch/opatch rollback -local -id 14275605 -oh
[grid@rac1 ~]$ $ORACLE_HOME/OPatch/opatch rollback -local -id 14275605 -oh $ORACLE_HOME
节点2操作相同
4. DB补丁回退前执行脚本(使用oracle用户执行)
$ /14275572/custom/server/14275572/custom/scripts/prepatch.sh -dbhome
[oracle@rac1 ~]$ cd /u01/app/oracle/patches
[oracle@rac1 patches]$ 14275572/custom/server/14275572/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME
节点2操作相同
5.回退DB补丁(oracle用户执行)
回退DB补丁1
$ /OPatch/opatch rollback -local -id 14275572 -oh
[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch rollback -local -id 14275572 -oh $ORACLE_HOME
节点2操作相同
回退DB补丁2
$ /OPatch/opatch rollback -local -id 14275605 -oh
[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch rollback -local -id 14275605 -oh $ORACLE_HOME
节点2操作相同
6.回退DB补丁后执行脚本(oracle用户执行)
$ /14275572/custom/server/14275572/custom/scripts/postpatch.sh -dbhome
[oracle@rac1 patches]$ 14275572/custom/server/14275572/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME
节点2操作相同
7.root用户执行脚本
# /rdbms/install/rootadd_rdbms.sh
[root@rac1 ~]# $ORACLE_HOME/rdbms/install/rootadd_rdbms.sh
节点2操作相同
Root用户执行启动crs脚本
# /crs/install/rootcrs.pl -patch
[root@rac1 ~]# $ORACLE_HOME/crs/install/rootcrs.pl –patch
工节点2操作相同
注:如出现信息 "A system reboot is recommended before using ACFS”,需要重启。
8.开启节点DB(使用oracle用户)
[oracle@rac1 ~]$ $ORACLE_HOME/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/state_file_rollback.txt -n rac1
节点2操作相同
[oracle@rac2 ~]$ $ORACLE_HOME/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/state_file_rollback.txt -n rac2
9.执行脚本catbundle.sql(sysdba用户登录实例)
@catbundle_PSU__ROLLBACK.sql
SQL> @?/rdbms/admin/catbundle_PSU_ENMO_ROLLBACK.sql
10.查询回退状态
查询DB补丁记录
SQL> col action_time for a30
SQL> col version for a15
SQL> col id for 99
SQL> col action for a10
SQL> col namespace for a10
SQL> col COMMENTS for a20
SQL> col BUNDLE_SERIES for a15
SQL> select * from registry$history;
查询补丁状态grid用户执行
[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lspatches
[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lsinventory
节点2操作相同
查询补丁状态oracle用户执行
[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lspatches
[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lsinventory
节点2操作相同
----------------end-------------------
DBA_建瑾
2014.8.30
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29324876/viewspace-1260758/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29324876/viewspace-1260758/