DBAtlas · 数据库运维图谱

Oracle GoldenGate Microservices:Oracle → Oracle 单向复制

Oracle难度: 高级耗时: 3–5 小时

使用 GoldenGate 21c 或 23ai/26ai Microservices,将一个 PDB schema 持续(延迟为秒级)复制到另一个数据库。完成后,源端运行 Integrated Extract 和 Distribution Path,目标端运行 Parallel Replicat;目标 schema 从一致的 SCN 通过初始加载填充,并用 heartbeat 测量端到端延迟。与 Data Guard 的区别:这是行级(逻辑)复制,不是物理副本;目标库处于打开且可写状态,可以是不同的版本/平台。源和目标可以是单实例或 RAC;日常运维和故障处理请使用 GoldenGate 运维指南。

架构: 源 DB 服务器(OGG 源 deployment)+ 目标 DB 服务器(OGG 目标 deployment);RAC 环境下 GoldenGate 位于节点 1(或通过 XAG 作为集群资源)

开始之前

  • 已具备 GoldenGate 许可以及 My Oracle Support/eDelivery 访问权限。两台服务器上都已准备好 …/…(适用于 Oracle Database 的 Microservices 软件);版本认证(OGG 版本 ↔ DB 版本 ↔ 操作系统)已在 MOS 认证矩阵中核实。
  • 服务器运行 …Oracle Linux / RHEL 7.9…Oracle Linux / RHEL ……;存在 oracle 用户和 oinstall 组(数据库服务器),已安装 unzip(如未安装,以 root 执行 … -y install unzip)。GoldenGate 至少有 4 GB 空闲内存,软件约需 2 GB,trail 文件的磁盘空间按 redo 生成量估算(每天生成的 redo × 保留天数)。
  • 源数据库是 CDB 且处于 ARCHIVELOG 模式(如果不是,本指南会开启);归档日志在 Extract 处理之前不得删除(RMAN 删除策略)。源和目标 PDB 已打开,其服务已在 listener 中注册。
  • 要复制的 … schema 中的表都有 primary key(或非空的 unique key)。没有键的表会把所有列视为键;更新变慢,并有匹配到错误行的风险。
  • 已检查 schema 中 GoldenGate 不支持或需要特殊处理的数据类型/对象(DBA_GOLDENGATE_SUPPORT_MODE)。
  • 源到目标的 …/tcp(Receiver Server)已开放;为便于管理,两台服务器上的 …–…/tcp 已对管理网络开放。服务器之间可按名称解析…,SCAN 名称(…………,…………)可在 DNS 中解析…;时钟已通过 NTP 同步。
  • 在 Integrated Extract 首次注册和初始加载期间,源端不应有长时间运行的未提交事务;已为初始加载规划一个低负载时间窗口。
  • RAC 端 Clusterware 状态正常,srvctl 可以 oracle 用户运行;GoldenGate 软件和 deployment 将安装在一个节点上(…………,…………)。如需在节点丢失时自动接管,已规划 XAG + 共享(ACFS)目录(见注释)。

指南阶段

  • 源数据库准备 — 检查源数据库状态 · 开启 ARCHIVELOG 模式(如需要) · GoldenGate 数据库设置(源) · 创建 GoldenGate 捕获用户(源) · 创建 GoldenGate 服务(源 RAC) · 定义 Data Pump 目录(源 PDB)
  • 目标数据库准备 — GoldenGate 数据库设置(目标) · 创建 ggadmin 用户(目标 PDB) · 创建 GoldenGate 服务(目标 RAC) · 定义 Data Pump 目录(目标 PDB)
  • 安装 GoldenGate 软件(两台服务器) — 创建目录 · 解压安装介质 · 从模板准备 oggcore.rsp · 安装 GoldenGate 软件(静默) · 定义 OGG_HOME 环境变量
  • Service Manager 和 deployment(oggca) — 编写 oggca response file(源) · 创建 deployment(oggca,源) · 将 Service Manager 注册为 systemd 服务(源) · 编写 oggca response file(目标) · 创建 deployment(oggca,目标) · 将 Service Manager 注册为 systemd 服务(目标) …
  • 源端:credential、trandata、heartbeat、Extract、Distribution Path — 准备 credential store 和数据库连接(源) · 开启 schema 级 supplemental logging · 创建 heartbeat 表(源) · 注册并添加 Integrated Extract · 编写 Extract 参数文件 · 启动 Extract …
  • 目标端:credential、checkpoint、Parallel Replicat — 准备 credential store 和数据库连接(目标) · 创建 heartbeat 和 checkpoint 表(目标) · 添加 Parallel Replicat · 编写 Replicat 参数文件
  • 初始加载并启动 Replicat — 检查未提交事务(源) · 获取初始加载 SCN 并导出(expdp) · 将 dump 文件复制到目标端 · 导入目标端(impdp) · 从 SCN 之后启动 Replicat · 启动 Replicat
  • 验证和监控 — 检查所有进程的状态(源) · 检查所有进程的状态(目标) · 端到端测试:插入行(源) · 端到端测试:检查行和延迟(目标) · 监控和维护
按您的环境打开分步计划 →