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
相关推荐
数据库知识分享者小北1 天前
安全可靠数据库选型之阿里云 PolarDB MySQL 版V2.0
数据库·mysql·阿里云·国产数据库·polardb·安全可靠数据库·polardb-m
一只fish1 天前
Oracle官方文档翻译《Database Concepts 26ai》第16章-数据库实例
数据库·oracle
艾莉丝努力练剑1 天前
【Linux:文件】库的制作与原理进阶
linux·运维·服务器·网络·数据库·c++·人工智能
深念Y1 天前
DeepSeek/MiMo 推理链缓存代理:从内存到 SQLite 的两级缓存架构实战
数据库·缓存·架构·sqlite·内存·优化·分层
一点事1 天前
oracle:手动同步数据库
数据库·oracle
努力攻坚操作系统1 天前
ClickHouse详细教程
大数据·数据库·clickhouse
admin and root1 天前
Blade站点的渗透测试到MySQL数据库权限接管
数据库·mysql·web安全·渗透测试·移动安全·培训·src赏金
Elastic 中国社区官方博客1 天前
Elasticsearch:跨数据库与业务系统进行搜索
大数据·数据库·人工智能·elasticsearch·搜索引擎·全文检索
Lao A(zhou liang)的菜园1 天前
深入理解Oracle Checkpoint
数据库·oracle
Lao A(zhou liang)的菜园1 天前
Oracle 增量检查点(Incremental Checkpoint)I/O 优化方案
数据库·oracle