Oracle 11g RAC手动打补丁详细步骤

备份:

节点1:
root用户备份GI_home

tar cvf Ghome_backup.tar /oracle/grid/crs

oracle用户备份ORACLE_HOME

tar cvf ohome_backup.tar $ORACLE_HOME

节点2:
root用户备份GI_home

tar cvf Ghome_backup.tar /oracle/grid/crs

oracle用户备份ORACLE_HOME

tar cvf ohome_backup.tar $ORACLE_HOME

GI_PSU信息:
|OCW Comp_Patch# | 29938455 |
|-|-|-|
|ACFS Comp_Patch# | 29509309 |
|DB_PSU_Patch# | 31103343 |

开始打补丁:

1.oracle用户

$ <ORACLE_HOME>/bin/srvctl stop home -o <ORACLE_HOME> -s <status file location> -n <node name>                                                
[oracle@rac1 ~]$ /oracle/app/product/11.2.0/db_1/bin/srvctl stop home -o $ORACLE_HOME -s /home/oracle/status1 -n rac1
[oracle@rac2 ~]$ /oracle/app/product/11.2.0/db_1/bin/srvctl stop home -o $ORACLE_HOME -s /home/oracle/status1 -n rac2

2.root用户

[root@rac1 ~]# /oracle/grid/crs_1/crs/install/rootcrs.pl -unlock
[root@rac2 ~]# /oracle/grid/crs_1/crs/install/rootcrs.pl -unlock

3.grid用户

$ <GI_HOME>/OPatch/opatch napply -oh <GI_HOME> -local <UNZIPPED_PATCH_LOCATION>/<GI_PSU_number>/<OCW Components_number>
$ <GI_HOME>/OPatch/opatch napply -oh <GI_HOME> -local <UNZIPPED_PATCH_LOCATION>/<GI_PSU_number>/<ACFS Components_number>
$ <GI_HOME>/OPatch/opatch apply -oh <GI_HOME> -local <UNZIPPED_PATCH_LOCATION>/<GI_PSU_number>/<DB_PSU_number>
[grid@rac1 ~]$ /oracle/grid/crs_1/OPatch/opatch napply -oh /oracle/grid/crs_1/ -local /oracle/soft/31305209/29938455
[grid@rac1 ~]$ /oracle/grid/crs_1/OPatch/opatch napply -oh /oracle/grid/crs_1/ -local /oracle/soft/31305209/29509309
[grid@rac1 ~]$ /oracle/grid/crs_1/OPatch/opatch napply -oh /oracle/grid/crs_1/ -local /oracle/soft/31305209/31103343
[grid@rac2 ~]$ /oracle/grid/crs_1/OPatch/opatch napply -oh /oracle/grid/crs_1/ -local /oracle/soft/31305209/29938455
[grid@rac2 ~]$ /oracle/grid/crs_1/OPatch/opatch napply -oh /oracle/grid/crs_1/ -local /oracle/soft/31305209/29509309
[grid@rac2 ~]$ /oracle/grid/crs_1/OPatch/opatch napply -oh /oracle/grid/crs_1/ -local /oracle/soft/31305209/31103343

4.oracle用户:

$ <UNZIPPED_PATCH_LOCATION>/<GI_PSU_number>/<OCW Components_number>/custom/server/<OCW Components_number>/custom/scripts/prepatch.sh -dbhome <ORACLE_HOME>
[oracle@rac1 soft]$ /oracle/soft/31305209/29938455/custom/server/29938455/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME
[oracle@rac2 soft]$ /oracle/soft/31305209/29938455/custom/server/29938455/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME

5.oracle用户

$ <ORACLE_HOME>/OPatch/opatch napply -oh <ORACLE_HOME> -local <UNZIPPED_PATCH_LOCATION>/<GI_PSU_number>/<OCW Components_number>/custom/server/<OCW Components_number>
[oracle@rac1 ~]$ /oracle/app/product/11.2.0/db_1/OPatch/opatch napply -oh $ORACLE_HOME -local /oracle/soft/31305209/29938455/custom/server/29938455/
[oracle@rac2 ~]$ /oracle/app/product/11.2.0/db_1/OPatch/opatch napply -oh $ORACLE_HOME -local /oracle/soft/31305209/29938455/custom/server/29938455/
$ <ORACLE_HOME>/OPatch/opatch apply -oh <ORACLE_HOME> -local <UNZIPPED_PATCH_LOCATION>/<GI_PSU_number>/<DB_PSU_number>
[oracle@rac1 ~]$ /oracle/app/product/11.2.0/db_1/OPatch/opatch apply -oh $ORACLE_HOME -local /oracle/soft/31305209/31103343/
[oracle@rac2 ~]$ /oracle/app/product/11.2.0/db_1/OPatch/opatch apply -oh $ORACLE_HOME -local /oracle/soft/31305209/31103343/

6.oracle用户

$ <UNZIPPED_PATCH_LOCATION>/<GI_PSU_number>/<OCW Components_number>/custom/server/<OCW Components_number>/custom/scripts/postpatch.sh -dbhome <ORACLE_HOME>
[oracle@rac1 ~]$ /oracle/soft/31305209/29938455/custom/server/29938455/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME
[oracle@rac2 ~]$ /oracle/soft/31305209/29938455/custom/server/29938455/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME

7.root用户

[root@rac1 ~]# /oracle/grid/crs_1/rdbms/install/rootadd_rdbms.sh
[root@rac2 ~]# /oracle/grid/crs_1/rdbms/install/rootadd_rdbms.sh

[root@rac1 ~]# /oracle/grid/crs_1/crs/install/rootcrs.pl -patch
[root@rac2 ~]# /oracle/grid/crs_1/crs/install/rootcrs.pl -patch

8.oracle用户

$ <ORACLE_HOME>/bin/srvctl start home -o <ORACLE_HOME> -s <status file location> -n <node name>
[oracle@rac1 ~]$ /oracle/app/product/11.2.0/db_1/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/status1 -n rac1
[oracle@rac2 ~]$ /oracle/app/product/11.2.0/db_1/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/status1 -n rac2

9.将修改后的SQL文件加载到数据库中

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT

10.编译无效对象:

cd $ ORACLE_HOME / rdbms / admin 
sqlplus / nolog 
SQL> CONNECT / AS SYSDBA 
SQL> @ utlrp.sql

11.查看补丁信息:

[grid@rac1 ~]$opatch lsinv
[grid@rac2 ~]$opatch lsinv

完全回退方案:

1.oracle用户

$ <ORACLE_HOME>/bin/srvctl stop home -o <ORACLE_HOME> -s <status file location> -n <node name>
[oracle@rac1 ~]$ /oracle/app/product/11.2.0/db_1/bin/srvctl stop home -o $ORACLE_HOME -s /home/oracle/status1 -n rac1
[oracle@rac2 ~]$ /oracle/app/product/11.2.0/db_1/bin/srvctl stop home -o $ORACLE_HOME -s /home/oracle/status1 -n rac2

2.root用户

[root@rac1 ~]# /oracle/grid/crs_1/crs/install/rootcrs.pl -unlock
[root@rac2 ~]# /oracle/grid/crs_1/crs/install/rootcrs.pl -unlock

3.grid用户

$ <GI_HOME>/OPatch/opatch rollback -local -id <OCW Components_number> -oh <GI_HOME> 
$ <GI_HOME>/OPatch/opatch rollback -local -id <ACFS Components_number> -oh <GI_HOME> 
$ <GI_HOME>/OPatch/opatch rollback -local -id <DB_PSU_number> -oh <GI_HOME> 
[grid@rac1 ~]$ /oracle/grid/crs_1/OPatch/opatch rollback -local -id 29938455 -oh $ORACLE_HOME
[grid@rac1 ~]$ /oracle/grid/crs_1/OPatch/opatch rollback -local -id 29509309 -oh $ORACLE_HOME
[grid@rac1 ~]$ /oracle/grid/crs_1/OPatch/opatch rollback -local -id 31103343 -oh $ORACLE_HOME
[grid@rac2 ~]$ /oracle/grid/crs_1/OPatch/opatch rollback -local -id 29938455 -oh $ORACLE_HOME
[grid@rac2 ~]$ /oracle/grid/crs_1/OPatch/opatch rollback -local -id 29509309 -oh $ORACLE_HOME
[grid@rac2 ~]$ /oracle/grid/crs_1/OPatch/opatch rollback -local -id 31103343 -oh $ORACLE_HOME

4.oracle用户

$ <UNZIPPED_PATCH_LOCATION>/<GI_PSU_number>/<OCW Components_number>/custom/server/<OCW Components_number>/custom/scripts/prepatch.sh -dbhome <ORACLE_HOME>

[oracle@rac1 soft]$ /oracle/soft/31305209/29938455/custom/server/29938455/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME
[oracle@rac2 soft]$ /oracle/soft/31305209/29938455/custom/server/29938455/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME

5.oracle用户

$ <ORACLE_HOME>/OPatch/opatch rollback -local -id <OCW Components_number> -oh <ORACLE_HOME> 
$ <ORACLE_HOME>/OPatch/opatch rollback -local -id <DB_PSU_number> -oh <ORACLE_HOME>

[oracle@rac1 ~]$ $ORACLE_HOME/OPatch/opatch rollback -local -id 29938455 -oh $ORACLE_HOME
[oracle@rac2 ~]$ $ORACLE_HOME/OPatch/opatch rollback -local -id 31103343 -oh $ORACLE_HOME

6.oracle用户

$ <UNZIPPED_PATCH_LOCATION>/<GI_PSU_number>/<OCW Components_number>/custom/server/<OCW Components_number>/custom/scripts/postpatch.sh -dbhome <ORACLE_HOME>

[oracle@rac1 ~]$ /oracle/soft/31305209/29938455/custom/server/29938455/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME
[oracle@rac2 ~]$ /oracle/soft/31305209/29938455/custom/server/29938455/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME

7.root用户

# <GI_HOME>/rdbms/install/rootadd_rdbms.sh
# <GI_HOME>/crs/install/rootcrs.pl -patch

[root@rac1 ~]# /oracle/grid/crs_1/rdbms/install/rootadd_rdbms.sh
[root@rac2 ~]# /oracle/grid/crs_1/rdbms/install/rootadd_rdbms.sh
[root@rac1 ~]# /oracle/grid/crs_1/crs/install/rootcrs.pl -patch
[root@rac2 ~]# /oracle/grid/crs_1/crs/install/rootcrs.pl -patch

8.

$ <ORACLE_HOME>/bin/srvctl start home -o <ORACLE_HOME> -s <status file location> -n <node name>
[oracle@rac1 ~]$ /oracle/app/product/11.2.0/db_1/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/status1 -n rac1
[oracle@rac2 ~]$ /oracle/app/product/11.2.0/db_1/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/status1 -n rac2

9.将加载到数据库中的SQL文件回滚

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle_PSU_<database SID PREFIX>_ROLLBACK.sql
SQL> QUIT

10.编译无效对象:

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql

11.查看是否回退完成

[grid@rac1 ~]$opatch lsinv
[grid@rac2 ~]$opatch lsinv

未将SQL文件加载到数据库时的回退方案:
将两节点补丁安装前备份的GI_HOME以及ORACLE_HOME重新解压覆盖当前的GI_HOME和ORACLE_HOME即可

tar xf Ghome_backup.tar -d $ORACLE_HOME
tar xf ohome_backup.tar -d $ORACLE_HOME

hhh6.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值