zoukankan      html  css  js  c++  java
  • GoldenGate 传统抽取进程随 DataGuard 主备快速切换的方案(ADG 模式)

    环境描述:

    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.拓扑结构

     
    方案描述:
    假设 11.6.76.221 最初为 DataGuard 主节点,则接下来通过描述 DataGuard 主备快速切换的完整过程,实现方案描述。
    1.断开应用于数据库连接(GG抽取端 / DG 主库)
    假设数据库配置了专门用于应用连接的 Service,且应用均通过 Service 连接数据库,则快速安全的操作步骤如下。
    (1).停止应用系统;
    (2).停止应用连接的 Service;
    (3).Kill 应用会话;
    (4).停止数据库计划作业
    操作后,拓扑结构如下图所示。
    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 抽取全部完成。
    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 目标端。
    主备切换后,拓扑结构如下所示。

    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 抽取模式后,拓扑结构如下所示。
    6.启用并启动备库 Service(DG 现主库)
    启用切换后 DG 主库 Service,并启动 Service 进程,准备应用接入。
    7.重启应用
    基于 DNS 解析,切换应用连接至 DG 切换后的主库。重启应用及数据库作业,完成完整切换
    重启应用后,拓扑结构如下所示。

     
    参考文档:
    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
  • 相关阅读:
    iostream、printf/wprintf和中文输出【转】
    java命令行运行错误:ClassNotFoundException【转】
    一致性代码段和非一致性代码段【转】
    Winform disign tips(转)
    WinForm下多层架构的实现(转)
    如何在GPU上产生随机数
    最快速度找到内存泄漏
    给定单链表的头结点,如何快速的找到倒数的第n个节点?
    DX11_基于GPU_GeometryShader的3D精确拾取
    Directx11:基于GPU_GeometryShader的Billboard公告板绘制
  • 原文地址:https://www.cnblogs.com/autopenguin/p/7809200.html
Copyright © 2011-2022 走看看