「这是我参与11月更文挑战的第23天,活动详情查看:2021最后一次更文挑战」
一、前言
随着Oracle ADG技术的逐渐成熟,大多数数据库环境都使用ADG作为灾备和报表数据库,可以说是标配。
那么如果主数据库由于BUG或者维护,需要更新补丁,该如何去操作呢?
\*本文参考MOS文档:How do you apply a Patchset,PSU or CPU in a Data Guard Physical Standby configuration (Doc ID 278641.1) ***
环境准备:
主机名 | ip | DB Version | db_name | db_unique_name | |
---|---|---|---|---|---|
主库 | orcl | 192.168.56.120 | 11.2.0.4 | orcl | orcl |
备库 | orcl_stby | 192.168.56.121 | 11.2.0.4 | orcl | orcl_stby |
Notes:ADG环境已提前搭建好,并已配置好 DG Broker。
二、流程
主要步骤如下:
1 | bash复制代码1.主库停止日志传输。 |
详细操作步骤如下:
1.主库停止日志传输。
1 | bash复制代码##如果已配置DG Broker |
2.关闭备库,备库应用补丁程序,备库启动mount,不开启日志应用。
a.关闭备库实例,监听
1 | bash复制代码##Non-rac |
b.替换OPatch
1 | bash复制代码cd /u01/app/oracle/product/11.2.0/db/ |
c.应用补丁程序(根据Readme操作)
1 | bash复制代码unzip -q p31537677_112040_Linux-x86-64.zip |
如果opatch apply遇到warning,请参照:****11204打PSU时Warning:ins_emagent.mk nmosudo
d.开启备库到mount
1 | bash复制代码##已配置DG Broker,需要设置APPLY-OFF防止自动开启日志应用 |
3.关闭主库,主库应用补丁程序。
可参照备库补丁应用过程,此处略过。
4.开启主库,开启日志传输。
a.开启主库,开启监听
b.执行PSU升级脚本
_关于catbundle脚本可参考:Introduction To Oracle Database catbundle.sql (Doc ID 605795.1) _
1 | sql复制代码--执行catbundle脚本 |
c.开启日志传输
1 | bash复制代码edit database orcl set state='ONLINE'; |
5.备库开启日志应用。
这将使通过catupgrade/catbundle/catcpu脚本对数据库的改变被应用到备库。
1 | bash复制代码##已配置DG Broker,打开apply-on |
6.执行检查,确保补丁安装成功。
主库:
1 | bash复制代码opatch lspatches |
备库:
1 | bash复制代码opatch lspatches |
检查ADG同步情况:
1 | bash复制代码##已配置DG Broker |
主库删除test表一个记录:
备库查看是否同步:
备库已实时删除,ADG正常同步。
本文转载自: 掘金