GoldenGate 传统抽取进程随 DataGuard 主备快速切换的方案(ADG 模式)

时间:2021-08-28 18:55:50

环境描述:

1.节点描述
节点 IP 节点描述
11.6.76.221 GG 抽取端 / DG 节点,数据库版本号为 Oracle-11.2.0.3,与 11.6.76.222 组成 DataGuard。
11.6.76.222 DG 节点,数据库版本号为 Oracle-11.2.0.3,与 11.6.76.221 组成 DataGuard。
192.168.87.221 GG 复制端,数据库版本号为 Oracle-11.2.0.4
2.拓扑结构
GoldenGate 传统抽取进程随 DataGuard 主备快速切换的方案(ADG 模式)
方案描述:
假设 11.6.76.221 最初为 DataGuard 主节点,则接下来通过描述 DataGuard 主备快速切换的完整过程,实现方案描述。
1.断开应用于数据库连接(GG抽取端 / DG 主库)
假设数据库配置了专门用于应用连接的 Service,且应用均通过 Service 连接数据库,则快速安全的操作步骤如下。
(1).停止应用系统;
(2).停止应用连接的 Service;
(3).Kill 应用会话;
(4).停止数据库计划作业
操作后,拓扑结构如下图所示。
GoldenGate 传统抽取进程随 DataGuard 主备快速切换的方案(ADG 模式)
2.禁用备库 Service(DG 备库)
停止备库 Service,防止 DataGuard 主备角色切换后,Service 自动启动。
注意:在 Service 启动的状态下,应用系统将能够连接数据库,而此时 GG 切换仍未完成,很可能造成数据丢失
3.检查 GG 抽取全部完成(GG 抽取端 / DG 主库)
随着数据库上应用连接的断开、定时作业的停止,此时数据库的数据处于静止状态
注意:倘若 DataGuard 切换的整个过程均能保证数据静止,那么 DG 切换后,只需重置 GG 抽取点即可实现 GG 快速切换。否则,直接基于 GG 官方方案切换,抽取进程需搜索 DG 切换点,其过程十分耗时,且难以实现自动化。具体参见《GoldenGate Installing and Configuring Oracle GoldenGate for Oracle Database》-11.6.4 Handling Role Changes In an ADG Configuration
因此,检查 GG 抽取全部完成是关键步骤,如下所示。
a.切换日志组
由于此时数据库已经处于静止状态,因此切换日志组后,最新日志组上并没有实际的 Redo 信息。因此倘若抽取进程已对最新日志组进行抽取,便可以确认 GG 抽取全部完成。
b.检查 GG 抽取进程当前 Seqno 状态
通过 GGSCI> info [process_name] 方式,检查 GG 抽取进程当前的 Seqno 状态。
假设切换后最新在线日志组 Sequence 号为 22753,则进程抽取 Seqno 也为 22753 时,则证明 GG 抽取全部完成。
GoldenGate 传统抽取进程随 DataGuard 主备快速切换的方案(ADG 模式)
4.DG 切换(GG 抽取端 / DG 主库、DG 备库)
进行 DataGuard 主备切换后,拓扑内各节点的状态如下。
节点 IP 节点状态
11.6.76.221 仍为 GG 抽取端,DataGuard 角色由 Primary -> Standby。由于角色发生了变化,因此将导致传统抽取模式下的抽取进程挂起,处于 Abend 状态。
11.6.76.222 DataGuard 角色由 Standby-> Primary。
192.168.87.221 仍为 GG 目标端。
主备切换后,拓扑结构如下所示。

GoldenGate 传统抽取进程随 DataGuard 主备快速切换的方案(ADG 模式)

5.切换 GG 抽取模式(GG 抽取端 / DG 现备库)
为保证 DG 角色切换后,传统抽取进程能正常对 Standby Redo 进行抽取,需要切换 GG 抽取模式为 ADG 模式。具体通过在抽取参数文件中新增如下参数。
TRANLOGOPTIONS MINEFROMACTIVEDG
注意:由于数据库处于静止状态,新增抽取参数后,可直接重置抽取点为当前,并重启进程,实现 GG 模块快速切换。操作步骤如下所示:
GGSCI> alter extract [process_name], tranlog, begin now
start [process_name]
例如:切换名为 EIVR 的 GG 抽取进程操作如下。
GGSCI> alter extract EIVR, tranlog, begin now
start EIVR
切换 GG 抽取模式后,拓扑结构如下所示。
GoldenGate 传统抽取进程随 DataGuard 主备快速切换的方案(ADG 模式)
6.启用并启动备库 Service(DG 现主库)
启用切换后 DG 主库 Service,并启动 Service 进程,准备应用接入。
7.重启应用
基于 DNS 解析,切换应用连接至 DG 切换后的主库。重启应用及数据库作业,完成完整切换
重启应用后,拓扑结构如下所示。
GoldenGate 传统抽取进程随 DataGuard 主备快速切换的方案(ADG 模式)
参考文档:
1.《GoldenGate 传统抽取进程的 ADG 模式》
2.《GoldenGate Installing and Configuring Oracle GoldenGate for Oracle Database》
      -11.6 Configuring Classic Capture in Oracle Active Data Guard Only Mode

html,body { font-size: 12pt }
body { font-family: Helvetica, "Hiragino Sans GB", "微软雅黑", "Microsoft YaHei UI", SimSun, SimHei, arial, sans-serif; line-height: 1.6; margin: 0 auto; padding: 1.25rem 1rem }
h1,h2,h3,h4,h5,h6 { margin: 1.25rem 0 0.625rem; padding: 0; font-weight: bold }
h1 { font-size: 1.67rem }
h2 { font-size: 1.5rem }
h3 { font-size: 1.25rem }
h4 { font-size: 1.17rem }
h5 { font-size: 1rem }
h6 { font-size: 1rem; color: #777777; margin: 1rem 0 }
div,p,ul,ol,dl,li { margin: 0 }
blockquote,table,pre,code { margin: 8px 0 }
ul,ol { padding-left: 2rem }
ol.wiz-list-level1>li { list-style-type: decimal }
ol.wiz-list-level2>li { list-style-type: lower-latin }
ol.wiz-list-level3>li { list-style-type: lower-roman }
blockquote { padding: 0 0.75rem }
blockquote>:first-child { margin-top: 0 }
blockquote>:last-child { margin-bottom: 0 }
img { border: 0; max-width: 100%; height: auto !important; margin: 2px 0 }
table { border-collapse: collapse; border: 1px solid #bbbbbb }
td,th { padding: 4px 8px; border-collapse: collapse; border: 1px solid #bbbbbb; min-height: 28px }
.wiz-hide { display: none !important }