Oracle RAC 手动升级 11.2.0.3.4


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

 

节点2操作相同

 

应用crs补丁2grid用户执行)

$ /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补丁2oracle用户执行)

$ /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. 开启应用补丁节点DBoracle用户执行)

$ /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.     停止节点DBoracle用户执行)

$ /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.sqlsysdba用户登录实例)

@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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值