Oracle GoldenGate 经典架构详解
Oracle GoldenGate 经典架构详解
适用版本:Oracle GoldenGate 12c / 19c / 21c 文档版本:v1.0 / 2026-07
1. 概述
GoldenGate 经典架构是实时数据复制的核心[1]:
详细见:Oracle GoldenGate 全集。
2. 架构
2.1 组件
- Manager:管理进程
- Extract:抽取源端变更
- Pump:传输到目标
- Collector:接收
- Replicat:应用
- Trail File:变更文件
- Checkpoint Table:检查点
2.2 数据流
Source DB → Extract → Local Trail → Pump →
Network → Remote Trail → Replicat → Target DB
3. Manager
3.1 启动
ggsci
> START MANAGER
3.2 配置
# mgr.prm
PORT 7809
PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 3
AUTOSTART ER *
AUTORESTART ER *, RETRIES 5, WAITMINUTES 3
4. Extract
4.1 配置
# ext1.prm
EXTRACT ext1
USERIDALIAS src
EXTTRAIL ./dirdat/lt
TABLE scott.*;
4.2 启动
> ADD EXTRACT ext1, TRANLOG, BEGIN NOW
> ADD EXTTRAIL ./dirdat/lt, EXTRACT ext1, MEGABYTES 50
> START EXTRACT ext1
4.3 模式
- TRANLOG:在线日志
- INTEGRATED TRANLOG(12c+):集成
- INITIALLOAD:初始化
5. Pump
5.1 配置
# pump1.prm
EXTRACT pump1
USERIDALIAS src
RMTHOST target, MGRPORT 7809
RMTTRAIL ./dirdat/rt
TABLE scott.*;
5.2 启动
> ADD EXTRACT pump1, EXTTRAILSOURCE ./dirdat/lt
> ADD RMTTRAIL ./dirdat/rt, EXTRACT pump1, MEGABYTES 50
> START EXTRACT pump1
6. Replicat
6.1 配置
# rep1.prm
REPLICAT rep1
USERIDALIAS tgt
ASSUMETARGETDEFS
MAP scott.*, TARGET scott.*;
6.2 启动
> ADD REPLICAT rep1, EXTTRAIL ./dirdat/rt
> START REPLICAT rep1
6.3 模式
- CLASSIC:经典
- INTEGRATED(12c+):集成
- COORDINATED:协调
7. Checkpoint
7.1 表
CREATE TABLE ggchkpt (
group_name VARCHAR2(8),
group_key NUMBER,
seqno NUMBER,
rba NUMBER,
...
);
7.2 添加
> ADD CHECKPOINTTABLE scott.ggchkpt
7.3 重要性
- 记录位置
- 重启不丢
- 必须配置
8. 参数文件
8.1 位置
# 老版本:dirprm
# 12c+:参数文件
GGSCHEMA scott
8.2 别名
# 数据库连接别名
> ADD CREDENTIALSTORE
> ALTER CREDENTIALSTORE ADD USER scott@src PASSWORD xxx ALIAS src
> ALTER CREDENTIALSTORE ADD USER scott@tgt PASSWORD xxx ALIAS tgt
9. DDL 支持
9.1 启用
# ext1.prm
DDL INCLUDE ALL
DDLERROR DEFAULT IGNORE RETRYOP
# rep1.prm
DDL INCLUDE ALL
9.2 限制
- 部分 DDL 不支持
- 复杂对象
- 测试
10. 数据初始化
10.1 方法
- Data Pump
- TTS
- GoldenGate Initial Load
- RMAN
10.2 GoldenGate
# initial load extract
EXTRACT init1
USERIDALIAS src
RMTHOST target, MGRPORT 7809
RMTTASK REPLICAT, GROUP init1
TABLE scott.*;
详细见:Oracle Data Pump 全集。
11. 监控
11.1 GGSCI
> INFO ALL
> INFO EXTRACT ext1, DETAIL
> STATS EXTRACT ext1
> STATS REPLICAT rep1
> LAG EXTRACT ext1
> LAG REPLICAT rep1
11.2 数据库
SELECT * FROM ggschema.ggchkpt;
SELECT process_name, status FROM v$goldengate_capture;
12. 故障处理
12.1 重复
- REPERROR
- DISCARD
- 异常表
# rep1.prm
REPERROR (DEFAULT, DISCARD)
DISCARDFILE ./dirrpt/rep1.dsc, APPEND, MEGABYTES 10
12.2 跳过
> ALTER REPLICAT rep1, SKIPTRANSACTION
13. 应用场景
13.1 实时复制
- 异地容灾
- 报表分流
- 零停机迁移
13.2 数据库迁移
- 跨平台
- 跨版本
- 零停机
13.3 数据集成
- 多源汇聚
- 实时数据仓库
- ETL
14. 常见坑与排错
14.1 Lag 大
- 性能
- 网络瓶颈
- Replicat 慢
14.2 Abend
- 检查日志
- 跳过或修复
- 重启
14.3 数据不一致
- 校验
- 重新同步
15. 最佳实践
- Checkpoint:必须
- Credential Store:安全
- Pump:传输
- 监控 Lag:及时
- DISCARD:异常
- DDL 谨慎:测试
- 初始化:正确
- 监控:GGSCI
- 文档:配置
- 演练:故障
16. 参考资料
[1] Oracle GoldenGate Classic Architecture 19c https://docs.oracle.com/en/middleware/goldengate/core/19.1/