1. 首页 > Oracle教程 > 正文

Oracle教程FG222-GoldenGate架构

本文档详细介绍Oracle GoldenGate的架构设计和核心组件,风哥教程参考Oracle官方文档GoldenGate部分。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 架构概述

Oracle GoldenGate采用模块化架构,由多个组件组成,共同完成数据复制和集成功能。学习交流加群风哥微信: itpux-com

架构的主要特点:

  • 模块化设计:各组件独立运行,便于管理和扩展
  • 跨平台支持:支持不同操作系统和数据库
  • 实时数据复制:几乎零延迟的数据复制
  • 高可用性:支持故障转移和负载均衡
  • 可扩展性:支持大规模数据复制

1.2 核心组件详解

GoldenGate的核心组件包括:

1.2.1 Manager进程

  • 作用:管理和监控GoldenGate进程
  • 功能:启动和停止进程,监控进程状态,生成报警信息
  • 配置:通过GGSCI命令或参数文件配置

1.2.2 Extract进程

  • 作用:从源数据库提取变更数据
  • 类型:
    • 初始加载Extract:用于初始数据同步
    • 变更数据捕获Extract:用于实时数据复制
  • 工作原理:从重做日志或归档日志中读取变更数据,写入Trail文件

1.2.3 Data Pump进程

  • 作用:将Trail文件从源系统传输到目标系统
  • 特点:可选组件,提供额外的错误处理和数据过滤功能
  • 工作原理:从本地Trail文件读取数据,通过网络传输到目标系统

1.2.4 Replicat进程

  • 作用:将变更数据应用到目标数据库
  • 类型:
    • 初始加载Replicat:用于初始数据同步
    • 变更数据应用Replicat:用于实时数据复制
  • 工作原理:从Trail文件读取数据,应用到目标数据库

1.2.5 Trail文件

  • 作用:存储变更数据的文件
  • 特点:二进制格式,优化了数据传输和存储
  • 位置:源系统和目标系统都有Trail文件

1.2.6 Checkpoint文件

  • 作用:记录进程的位置信息
  • 功能:确保数据复制的连续性,支持断点续传
  • 位置:存储在GoldenGate安装目录中

1.3 数据流动过程

GoldenGate的数据流动过程:

  1. 源数据库产生变更数据,写入重做日志
  2. Extract进程从重做日志中提取变更数据
  3. Extract进程将提取的数据写入本地Trail文件
  4. Data Pump进程(可选)将本地Trail文件传输到目标系统
  5. 目标系统的Replicat进程从Trail文件中读取数据
  6. Replicat进程将数据应用到目标数据库
  7. Checkpoint文件记录进程的位置信息,确保数据复制的连续性

Part02-生产环境规划与建议

2.1 架构设计

GoldenGate架构设计建议:

  • 单源单目标:适用于简单的灾备场景
  • 单源多目标:适用于数据分发场景
  • 多源单目标:适用于数据集成场景
  • 级联复制:适用于跨地域数据复制
  • 双向复制:适用于主主架构场景

2.2 网络规划

网络规划建议:

  • 带宽要求:根据数据变更量确定,建议至少1Gbps
  • 网络延迟:尽量减少网络延迟,建议使用专线连接
  • 网络冗余:配置多个网络路径,提高可靠性
  • 安全措施:使用加密传输,保护数据安全

2.3 存储规划

存储规划建议:

  • Trail文件存储:分配足够的存储空间,建议使用高性能存储
  • Checkpoint文件存储:使用稳定的存储介质
  • 日志文件存储:分配足够的存储空间,定期清理
  • 备份策略:定期备份GoldenGate配置和Trail文件

Part03-生产环境项目实施方案

GoldenGate架构实施步骤:

  1. 需求分析:了解业务需求和数据复制要求
  2. 架构设计:根据需求设计GoldenGate架构
  3. 环境准备:准备源和目标系统环境
  4. 软件安装:安装GoldenGate软件
  5. 组件配置:配置Manager、Extract、Data Pump和Replicat进程
  6. 测试验证:测试数据复制功能
  7. 监控部署:部署监控和告警系统

Part04-生产案例与实战讲解

4.1 单源单目标架构配置

# 配置Manager进程
./ggsci
EDIT PARAMS MGR

# 添加以下内容
PORT 7809
DYNAMICPORTLIST 7810-7909
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 3
AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 3
PURGEOLDEXTRACTS /oracle/gg19/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 7

# 保存并退出

# 启动Manager进程
START MANAGER

# 输出日志
Manager started.

4.2 配置Extract进程

# 创建Extract进程参数文件
EDIT PARAMS EXT1

# 添加以下内容
EXTRACT EXT1
USERID ggsadmin, PASSWORD ggsadmin
EXTTRAIL /oracle/gg19/dirdat/et
TABLE fgedu.*;

# 保存并退出

# 添加Extract进程
ADD EXTRACT EXT1, TRANLOG, BEGIN NOW

# 输出日志
EXTRACT added.

# 添加Trail文件
ADD EXTTRAIL /oracle/gg19/dirdat/et, EXTRACT EXT1, MEGABYTES 100

# 输出日志
EXTTRAIL added.

4.3 配置Data Pump进程

# 创建Data Pump进程参数文件
EDIT PARAMS DP1

# 添加以下内容
EXTRACT DP1
USERID ggsadmin, PASSWORD ggsadmin
RMTHOST 192.168.1.2, MGRPORT 7809
RMTTRAIL /oracle/gg19/dirdat/rt
TABLE fgedu.*;

# 保存并退出

# 添加Data Pump进程
ADD EXTRACT DP1, EXTTRAILSOURCE /oracle/gg19/dirdat/et

# 输出日志
EXTRACT added.

# 添加远程Trail文件
ADD RMTTRAIL /oracle/gg19/dirdat/rt, EXTRACT DP1, MEGABYTES 100

# 输出日志
RMTTRAIL added.

4.4 配置Replicat进程

# 在目标系统上创建Replicat进程参数文件
./ggsci
EDIT PARAMS REP1

# 添加以下内容
REPLICAT REP1
USERID ggsadmin, PASSWORD ggsadmin
ASSUMETARGETDEFS
MAP fgedu.*, TARGET fgedu.*;

# 保存并退出

# 添加Replicat进程
ADD REPLICAT REP1, EXTTRAIL /oracle/gg19/dirdat/rt, BEGIN NOW

# 输出日志
REPLICAT added.

4.5 启动所有进程

# 在源系统上启动Extract和Data Pump进程
./ggsci
START EXT1

# 输出日志
Sending START request to MANAGER …
EXTRACT EXT1 starting

START DP1

# 输出日志
Sending START request to MANAGER …
EXTRACT DP1 starting

# 在目标系统上启动Replicat进程
./ggsci
START REP1

# 输出日志
Sending START request to MANAGER …
REPLICAT REP1 starting

4.6 监控架构状态

# 监控源系统进程状态
./ggsci
INFO ALL

# 输出日志
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 00:00:05
EXTRACT RUNNING DP1 00:00:00 00:00:03

# 监控目标系统进程状态
./ggsci
INFO ALL

# 输出日志
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP1 00:00:00 00:00:02

# 查看Extract进程详细信息
INFO EXT1 DETAIL

# 输出日志
EXTRACT EXT1 Last Started 2026-04-01 10:00:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:05 ago)
Process ID 12345
Log Read Checkpoint Oracle Redo Logs
2026-04-01 10:05:00 Seqno 1234, RBA 12345678

# 查看Replicat进程详细信息
INFO REP1 DETAIL

# 输出日志
REPLICAT REP1 Last Started 2026-04-01 10:00:30 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:02 ago)
Process ID 67890
Log Read Checkpoint File /oracle/gg19/dirdat/rt000001
2026-04-01 10:05:00 RBA 1234567

4.7 测试数据复制

# 在源系统上创建测试表并插入数据
sqlplus ggsadmin/ggsadmin
CREATE TABLE fgedu.test_table (
id NUMBER(10) PRIMARY KEY,
name VARCHAR2(50),
value NUMBER(10)
);

# 输出日志
Table created.

INSERT INTO fgedu.test_table VALUES (1, ‘Test1’, 100);
INSERT INTO fgedu.test_table VALUES (2, ‘Test2’, 200);
INSERT INTO fgedu.test_table VALUES (3, ‘Test3’, 300);
COMMIT;

# 输出日志
1 row created.
1 row created.
1 row created.
Commit complete.

# 在目标系统上验证数据
sqlplus ggsadmin/ggsadmin
SELECT * FROM fgedu.test_table;

# 输出日志
ID NAME VALUE
— ———- ———-
1 Test1 100
2 Test2 200
3 Test3 300

Part05-风哥经验总结与分享

5.1 架构设计最佳实践

  • 根据业务需求选择合适的架构:单源单目标、单源多目标、多源单目标或级联复制
  • 合理规划网络和存储:确保网络带宽足够,存储性能良好
  • 配置适当的进程参数:根据数据量和系统资源调整参数
  • 使用Data Pump进程:提供额外的错误处理和数据过滤功能
  • 定期监控和维护:确保系统正常运行

5.2 常见架构问题与解决方案

  • 网络带宽不足:增加网络带宽,使用压缩传输
  • 存储性能不足:使用高性能存储,优化存储配置
  • 进程失败:检查日志文件,分析失败原因,及时修复
  • 数据延迟:优化Extract和Replicat进程参数,增加系统资源
  • 冲突解决:配置适当的冲突检测和解决策略

5.3 经验分享

  • 提前规划:在实施前充分了解业务需求和系统要求
  • 测试验证:在测试环境中充分测试,确保方案的可行性
  • 文档管理:建立完善的文档,记录架构设计和配置步骤
  • 培训人员:对运维人员进行培训,提高技术水平
  • 持续优化:根据业务需求和系统运行情况,持续优化架构

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息