1. 首页 > Oracle教程 > 正文

Oracle教程FG246-Oracle GoldenGate Replicat进程配置实战

本文档风哥主要介绍Oracle GoldenGate Replicat进程配置的实战操作,包括Oracle GoldenGate Replicat进程的概念、类型、架构原理、参数配置、创建管理等内容,由风哥教程参考Oracle官方文档GoldenGate文档,适合DBA人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。

Part01-基础概念与理论知识

1.1 Oracle GoldenGate Replicat进程概念

Oracle GoldenGate Replicat进程是GoldenGate数据复制的目标端核心组件,负责读取Trail文件中的变更数据,并将这些变更应用到目标数据库。Replicat进程确保源端和目标端数据的一致性,是数据复制链路的最后一环。更多视频教程www.fgedu.net.cn

Oracle GoldenGate Replicat进程的主要功能:

  • 读取Trail文件中的变更数据
  • 将DML操作应用到目标数据库
  • 执行DDL操作到目标数据库
  • 维护数据一致性和事务完整性
  • 提供数据转换和过滤功能
  • 支持冲突检测和解决

1.2 Oracle GoldenGate Replicat进程类型

Oracle GoldenGate Replicat进程主要有以下几种类型:

  • 经典Replicat(Classic Replicat):使用SQL语句直接应用到目标数据库
  • 集成Replicat(Integrated Replicat):使用Oracle内部API应用变更,性能更高
  • 并行Replicat(Parallel Replicat):支持多线程并行应用,适合大规模数据同步
  • 协调Replicat(Coordinated Replicat):支持跨分区的并行处理

1.3 Oracle GoldenGate Replicat架构原理

Oracle GoldenGate Replicat架构工作原理:

  • Trail文件读取:Replicat进程读取远程或本地Trail文件
  • 事务解析:解析Trail文件中的事务记录
  • 数据映射:根据映射规则转换数据格式
  • 冲突检测:检测并处理数据冲突
  • 数据应用:将变更应用到目标数据库
  • 检查点记录:记录应用位置,支持断点续传
风哥提示:在Oracle 12c及以上版本中,强烈建议使用集成Replicat(Integrated Replicat),它可以显著提高数据应用性能,特别是在高并发场景下。学习交流加群风哥微信: itpux-com

Part02-生产环境规划与建议

2.1 Oracle GoldenGate Replicat进程规划

Oracle GoldenGate Replicat进程规划要点:

# Replicat进程命名规范
– 经典Replicat:REP开头,如REP01、REP02
– 集成Replicat:IR开头,如IR01、IR02
– 并行Replicat:PR开头,如PR01、PR02

# Replicat进程数量规划
– 小型系统:1-2个Replicat进程
– 中型系统:2-4个Replicat进程
– 大型系统:按业务模块分组,每组1-2个进程
– 超大型系统:使用并行Replicat

# 检查点表规划
– 每个Replicat使用独立的检查点表
– 检查点表存储在目标数据库中
– 定期清理历史检查点数据

2.2 Oracle GoldenGate Replicat参数配置建议

Oracle GoldenGate Replicat参数配置建议:

# 关键参数配置建议
REPLICAT rep01
SETENV (NLS_LANG=”AMERICAN_AMERICA.AL32UTF8″)
SETENV (ORACLE_HOME=/oracle/app/oracle/product/19c/dbhome_1)
SETENV (ORACLE_SID=fgedudb_target)

USERIDALIAS fgedu_ggadmin_target
DISCARDFILE /oracle/goldengate/dirdat/rep01.dsc, APPEND, MEGABYTES 100

# 性能参数
BATCHSQL
BATCHTRANS 1000
MAXTRANS 500

# 错误处理参数
HANDLECOLLISIONS
REPERror DEFAULT, ABEND
REPERror 1403, IGNORE

# DDL应用参数
DDL INCLUDE ALL
DDLOPTIONS REPORT

# 报告参数
REPORTCOUNT EVERY 10000 RECORDS, RATE
REPORT AT 00:00

2.3 Oracle GoldenGate Replicat最佳实践

Oracle GoldenGate Replicat最佳实践:

  • 使用集成Replicat:Oracle 12c及以上版本推荐使用
  • 启用BATCHSQL:提高批量插入性能
  • 配置错误处理:合理处理重复记录和冲突
  • 监控延迟:实时监控复制延迟
  • 定期维护:清理Discard文件和报告文件
生产环境建议:Replicat进程配置要考虑目标数据库的性能、网络带宽、数据一致性要求等因素。建议配置合理的错误处理策略,避免因为单条记录错误导致整个进程停止。学习交流加群风哥QQ113257174

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

3.1 Oracle GoldenGate创建Replicat进程

3.1.1 登录目标端GoldenGate管理控制台

# 切换到GoldenGate用户
$ su – oracle

# 进入GoldenGate安装目录
$ cd /oracle/goldengate

# 启动GoldenGate命令行界面
$ ./ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 19.1.0.0.4 OGGCORE_19.1.0.0.0_PLATFORMS_191017.1054_FBO
Linux, x64, 64bit (optimized), Oracle 19c on Oct 18 2019 03:14:54
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved.

GGSCI (fgedu-target.net.cn) 1>

3.1.2 创建检查点表

# 登录目标数据库
GGSCI (fgedu-target.net.cn) 2> dblogin useridalias fgedu_ggadmin_target
Successfully logged into database.

# 创建检查点表
GGSCI (fgedu-target.net.cn) 3> add checkpointtable fgedu.ggcheckpoint

Successfully created checkpoint table FGEDU.GGCHECKPOINT.

# 验证检查点表创建
SQL> desc fgedu.ggcheckpoint
Name Null? Type
—————————————– ——– —————————-
GROUP_NAME NOT NULL VARCHAR2(8)
GROUP_KEY NOT NULL NUMBER(19)
LOG_CMPLX_CSN NUMBER(22)
LOG_CMPLX_XID_SEQ NUMBER(5)
LOG_CMPLX_XID_USN NUMBER(5)
LOG_CMPLX_XID_SLT NUMBER(5)
LOG_CMPLX_XID_SQL NUMBER(5)
LOG_CSN NUMBER(22)
LOG_XID_SEQ NUMBER(5)
LOG_XID_USN NUMBER(5)
LOG_XID_SLT NUMBER(5)
LOG_XID_SQL NUMBER(5)
AUDIT_TS TIMESTAMP(6)
CREATE_TS TIMESTAMP(6)
CURRENT_DIR VARCHAR2(255)

3.1.3 创建Replicat进程

# 查看当前Replicat进程列表
GGSCI (fgedu-target.net.cn) 4> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING

# 创建集成Replicat进程
GGSCI (fgedu-target.net.cn) 5> add replicat rep01, integrated, exttrail /oracle/goldengate/dirdat/et, checkpointtable fgedu.ggcheckpoint
REPLICAT added.

# 验证Replicat进程创建
GGSCI (fgedu-target.net.cn) 6> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
REPLICAT STOPPED REP01 00:00:00 00:00:00

3.2 Oracle GoldenGate配置Replicat参数

3.2.1 编辑Replicat参数文件

# 编辑Replicat参数文件
GGSCI (fgedu-target.net.cn) 7> edit params rep01

# 输入以下内容
REPLICAT rep01
SETENV (NLS_LANG=”AMERICAN_AMERICA.AL32UTF8″)
SETENV (ORACLE_HOME=/oracle/app/oracle/product/19c/dbhome_1)
SETENV (ORACLE_SID=fgedudb_target)

USERIDALIAS fgedu_ggadmin_target
DISCARDFILE /oracle/goldengate/dirdat/rep01.dsc, APPEND, MEGABYTES 100

# 性能参数
BATCHSQL
BATCHTRANS 1000
MAXTRANS 500

# 错误处理
HANDLECOLLISIONS
REPERror DEFAULT, ABEND
REPERror 1403, IGNORE
REPERror 1, IGNORE

# DDL应用
DDL INCLUDE ALL
DDLOPTIONS REPORT

# 报告参数
REPORTCOUNT EVERY 10000 RECORDS, RATE
REPORT AT 00:00

# 表映射
MAP fgedu.fgedu_orders, TARGET fgedu.fgedu_orders;
MAP fgedu.fgedu_customers, TARGET fgedu.fgedu_customers;
MAP fgedu.fgedu_products, TARGET fgedu.fgedu_products;

# 保存并退出
# 按Esc键,输入:wq保存

3.2.2 验证参数配置

# 查看Replicat参数文件
GGSCI (fgedu-target.net.cn) 8> view params rep01

REPLICAT rep01
SETENV (NLS_LANG=”AMERICAN_AMERICA.AL32UTF8″)
SETENV (ORACLE_HOME=/oracle/app/oracle/product/19c/dbhome_1)
SETENV (ORACLE_SID=fgedudb_target)

USERIDALIAS fgedu_ggadmin_target
DISCARDFILE /oracle/goldengate/dirdat/rep01.dsc, APPEND, MEGABYTES 100

BATCHSQL
BATCHTRANS 1000
MAXTRANS 500

HANDLECOLLISIONS
REPERror DEFAULT, ABEND
REPERror 1403, IGNORE
REPERror 1, IGNORE

DDL INCLUDE ALL
DDLOPTIONS REPORT

REPORTCOUNT EVERY 10000 RECORDS, RATE
REPORT AT 00:00

MAP fgedu.fgedu_orders, TARGET fgedu.fgedu_orders;
MAP fgedu.fgedu_customers, TARGET fgedu.fgedu_customers;
MAP fgedu.fgedu_products, TARGET fgedu.fgedu_products;

# 检查参数语法
GGSCI (fgedu-target.net.cn) 9> checkprm rep01

Parameter file check successful.
No errors found in parameter file.

3.3 Oracle GoldenGate启动和管理Replicat

3.3.1 启动Replicat进程

# 启动Replicat进程
GGSCI (fgedu-target.net.cn) 10> start replicat rep01

Sending START request to MANAGER …
REPLICAT REP01 starting

# 验证Replicat进程状态
GGSCI (fgedu-target.net.cn) 11> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
REPLICAT RUNNING REP01 00:00:00 00:00:03

# 查看Replicat详细信息
GGSCI (fgedu-target.net.cn) 12> info replicat rep01, detail

REPLICAT REP01 Last Started 2026-04-03 11:30:00 Status RUNNING
INTEGRATED
Checkpoint Lag 00:00:00 (updated 00:00:03 ago)
Process ID 23456
Log Read Checkpoint File /oracle/goldengate/dirdat/et000000
2026-04-03 11:30:00 RBA 123456

Integrated Replicat inbound server statistics:
Replicat database user name: GGADMIN
Replicat process name: REP01
Inbound server name: OGG$REP01
Inbound server apply rate: 1000 TPS

3.3.2 监控Replicat进程

# 查看Replicat统计信息
GGSCI (fgedu-target.net.cn) 13> stats replicat rep01

Sending STATS request to REPLICAT REP01 …

Start of Statistics at 2026-04-03 11:35:00.

Replicating from FGEDU.FGEDU_ORDERS to FGEDU.FGEDU_ORDERS:

*** Total statistics since 2026-04-03 11:30:00 ***
Total inserts 150.00
Total updates 80.00
Total deletes 20.00
Total discards 0.00
Total operations 250.00

Replicating from FGEDU.FGEDU_CUSTOMERS to FGEDU.FGEDU_CUSTOMERS:
Total inserts 100.00
Total updates 50.00
Total deletes 10.00
Total discards 0.00
Total operations 160.00

Replicating from FGEDU.FGEDU_PRODUCTS to FGEDU.FGEDU_PRODUCTS:
Total inserts 50.00
Total updates 30.00
Total deletes 5.00
Total discards 0.00
Total operations 85.00

End of Statistics.

# 查看Replicat延迟
GGSCI (fgedu-target.net.cn) 14> lag replicat rep01

Sending LAG request to REPLICAT REP01 …

Last record lag: 2 seconds.
At EOF, no more records to process.

风哥提示:Replicat进程启动后,要密切关注其延迟情况。如果延迟持续增长,可能是目标数据库性能不足或网络问题,需要及时排查。更多学习教程公众号风哥教程itpux_com

Part04-生产案例与实战讲解

4.1 Oracle GoldenGate经典Replicat配置案例

以下是一个经典Replicat配置的完整案例:

# 场景:使用经典Replicat同步数据

# 1. 创建检查点表
GGSCI (fgedu-target.net.cn) 15> dblogin useridalias fgedu_ggadmin_target
Successfully logged into database.

GGSCI (fgedu-target.net.cn) 16> add checkpointtable fgedu.ggcheckpoint_classic
Successfully created checkpoint table FGEDU.GGCHECKPOINT_CLASSIC.

# 2. 创建经典Replicat进程
GGSCI (fgedu-target.net.cn) 17> add replicat rep_classic, exttrail /oracle/goldengate/dirdat/et, checkpointtable fgedu.ggcheckpoint_classic
REPLICAT added.

# 3. 配置参数文件
GGSCI (fgedu-target.net.cn) 18> edit params rep_classic

REPLICAT rep_classic
SETENV (NLS_LANG=”AMERICAN_AMERICA.AL32UTF8″)
SETENV (ORACLE_HOME=/oracle/app/oracle/product/19c/dbhome_1)
SETENV (ORACLE_SID=fgedudb_target)

USERIDALIAS fgedu_ggadmin_target
DISCARDFILE /oracle/goldengate/dirdat/rep_classic.dsc, APPEND, MEGABYTES 100

# 经典Replicat参数
BATCHSQL
BATCHTRANS 500
MAXTRANS 200

# 错误处理
HANDLECOLLISIONS
REPERror DEFAULT, ABEND
REPERror 1403, IGNORE

# 表映射
MAP fgedu.fgedu_orders, TARGET fgedu.fgedu_orders;
MAP fgedu.fgedu_customers, TARGET fgedu.fgedu_customers;

# 4. 启动Replicat
GGSCI (fgedu-target.net.cn) 19> start replicat rep_classic

Sending START request to MANAGER …
REPLICAT REP_CLASSIC starting

# 5. 验证状态
GGSCI (fgedu-target.net.cn) 20> info replicat rep_classic

REPLICAT REP_CLASSIC Last Started 2026-04-03 11:45:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:02 ago)
Log Read Checkpoint File /oracle/goldengate/dirdat/et000000
2026-04-03 11:45:00 RBA 234567

4.2 Oracle GoldenGate集成Replicat配置案例

以下是一个集成Replicat配置的完整案例,包含数据转换:

# 场景:使用集成Replicat同步数据,并进行列转换

# 1. 创建检查点表
GGSCI (fgedu-target.net.cn) 21> dblogin useridalias fgedu_ggadmin_target
Successfully logged into database.

GGSCI (fgedu-target.net.cn) 22> add checkpointtable fgedu.ggcheckpoint_int
Successfully created checkpoint table FGEDU.GGCHECKPOINT_INT.

# 2. 创建集成Replicat进程
GGSCI (fgedu-target.net.cn) 23> add replicat rep_int, integrated, exttrail /oracle/goldengate/dirdat/et, checkpointtable fgedu.ggcheckpoint_int
REPLICAT added.

# 3. 配置参数文件
GGSCI (fgedu-target.net.cn) 24> edit params rep_int

REPLICAT rep_int
SETENV (NLS_LANG=”AMERICAN_AMERICA.AL32UTF8″)
SETENV (ORACLE_HOME=/oracle/app/oracle/product/19c/dbhome_1)
SETENV (ORACLE_SID=fgedudb_target)

USERIDALIAS fgedu_ggadmin_target
DISCARDFILE /oracle/goldengate/dirdat/rep_int.dsc, APPEND, MEGABYTES 100

# 集成Replicat参数
BATCHSQL
BATCHTRANS 1000
MAXTRANS 500

# 错误处理
HANDLECOLLISIONS
REPERror DEFAULT, ABEND
REPERror 1403, IGNORE
REPERror 1, IGNORE

# DDL应用
DDL INCLUDE ALL
DDLOPTIONS REPORT

# 表映射,带列转换
MAP fgedu.fgedu_orders, TARGET fgedu.fgedu_orders,
COLMAP (USEDEFAULTS,
order_status = @CASE(order_status, “P”, “Pending”, “C”, “Completed”, order_status),
sync_time = @DATENOW());

MAP fgedu.fgedu_customers, TARGET fgedu.fgedu_customers,
COLMAP (USEDEFAULTS,
customer_name = @UPPER(customer_name),
sync_time = @DATENOW());

MAP fgedu.fgedu_products, TARGET fgedu.fgedu_products;

# 4. 启动Replicat
GGSCI (fgedu-target.net.cn) 25> start replicat rep_int

Sending START request to MANAGER …
REPLICAT REP_INT starting

# 5. 验证统计信息
GGSCI (fgedu-target.net.cn) 26> stats replicat rep_int

Sending STATS request to REPLICAT REP_INT …

Start of Statistics at 2026-04-03 11:50:00.

Replicating from FGEDU.FGEDU_ORDERS to FGEDU.FGEDU_ORDERS:
Total inserts 200.00
Total updates 100.00
Total deletes 25.00
Total discards 0.00
Total operations 325.00

Replicating from FGEDU.FGEDU_CUSTOMERS to FGEDU.FGEDU_CUSTOMERS:
Total inserts 150.00
Total updates 75.00
Total deletes 15.00
Total discards 0.00
Total operations 240.00

End of Statistics.

4.3 Oracle GoldenGate Replicat常见问题处理

4.3.1 Replicat进程ABENDED

# 问题现象:Replicat进程异常终止
GGSCI (fgedu-target.net.cn) 27> info replicat rep01

REPLICAT REP01 Last Started 2026-04-03 12:00:00 Status ABENDED

# 查看错误报告
GGSCI (fgedu-target.net.cn) 28> view report rep01

2026-04-03 12:05:00 ERROR OGG-01296 Oracle GoldenGate Delivery for Oracle, rep01.prm: Error mapping from FGEDU.FGEDU_ORDERS to FGEDU.FGEDU_ORDERS.
2026-04-03 12:05:00 ERROR OGG-01161 Oracle GoldenGate Delivery for Oracle, rep01.prm: Bad column index (5) specified for table FGEDU.FGEDU_ORDERS, max columns = 4.

# 分析原因:表结构不一致
SQL> desc fgedu.fgedu_orders
Name Null? Type
—————————————– ——– —————————-
ORDER_ID NOT NULL NUMBER(10)
CUSTOMER_ID NUMBER(10)
ORDER_DATE DATE
ORDER_AMOUNT NUMBER(10,2)

# 解决方案1:修改目标表结构
SQL> ALTER TABLE fgedu.fgedu_orders ADD (order_status VARCHAR2(20));

# 解决方案2:跳过错误记录
GGSCI (fgedu-target.net.cn) 29> start replicat rep01, skiptransaction

# 解决方案3:重新初始化表
# 1. 停止Replicat
GGSCI (fgedu-target.net.cn) 30> stop replicat rep01

# 2. 重新同步表结构
# 3. 重新启动Replicat
GGSCI (fgedu-target.net.cn) 31> start replicat rep01

4.3.2 Replicat进程延迟过高

# 问题现象:Replicat进程延迟过高
GGSCI (fgedu-target.net.cn) 32> info replicat rep01

REPLICAT REP01 Last Started 2026-04-03 12:10:00 Status RUNNING
Checkpoint Lag 01:30:00 (updated 00:00:05 ago)

# 查看统计信息
GGSCI (fgedu-target.net.cn) 33> stats replicat rep01, latest

Sending STATS request to REPLICAT REP01 …

# 分析原因:目标数据库性能不足
SQL> SELECT event, total_waits, time_waited
FROM v$system_event
ORDER BY time_waited DESC;

EVENT TOTAL_WAITS TIME_WAITED
—————————————- ———– ———–
db file scattered read 123456 1234567
db file sequential read 234567 2345678
log file sync 34567 345678

# 解决方案1:优化目标数据库
# – 增加目标数据库资源
# – 优化SQL执行计划
# – 增加索引

# 解决方案2:调整Replicat参数
GGSCI (fgedu-target.net.cn) 34> edit params rep01
# 增加以下参数:
BATCHTRANS 2000
MAXTRANS 1000

# 解决方案3:使用并行Replicat
GGSCI (fgedu-target.net.cn) 35> stop replicat rep01
GGSCI (fgedu-target.net.cn) 36> delete replicat rep01
GGSCI (fgedu-target.net.cn) 37> add replicat rep_para, parallel, exttrail /oracle/goldengate/dirdat/et, checkpointtable fgedu.ggcheckpoint
GGSCI (fgedu-target.net.cn) 38> start replicat rep_para

生产环境建议:Replicat进程问题处理要及时,避免数据积压。建议配置监控告警,当延迟超过阈值或进程异常时自动通知DBA。from oracle:www.itpux.com

Part05-风哥经验总结与分享

5.1 Oracle GoldenGate Replicat配置总结

Oracle GoldenGate Replicat配置的关键要点:

  • 进程类型选择:根据Oracle版本和业务需求选择合适的Replicat类型
  • 检查点表:每个Replicat使用独立的检查点表,便于管理和维护
  • 错误处理:配置合理的错误处理策略,避免单点故障影响整体复制
  • 性能优化:使用BATCHSQL、调整事务大小等参数优化性能
  • 监控告警:建立完善的监控体系,及时发现和处理问题

5.2 Oracle GoldenGate Replicat检查清单

Oracle GoldenGate Replicat部署检查清单:

# 部署前检查清单
□ 目标数据库版本是否支持集成Replicat(12c+)
□ GoldenGate用户权限是否足够
□ 目标表结构是否与源端一致
□ 检查点表是否已创建
□ Discard文件路径是否存在且权限正确
□ 网络连接是否正常

# 部署后检查清单
□ Replicat进程状态是否为RUNNING
□ 检查点是否正常更新
□ 统计信息是否正常增长
□ 报告文件是否有错误
□ 延迟是否在可接受范围内
□ 目标数据是否与源端一致

5.3 Oracle GoldenGate Replicat性能优化

Oracle GoldenGate Replicat性能优化建议:

  • 使用集成Replicat:比经典Replicat性能提升30-50%
  • 启用BATCHSQL:批量应用SQL语句,减少网络往返
  • 调整事务大小:根据业务特点调整BATCHTRANS和MAXTRANS
  • 优化目标数据库:确保目标数据库有足够的资源和良好的执行计划
  • 使用并行Replicat:对于大规模数据同步,使用并行Replicat提高吞吐量
  • 监控等待事件:定期检查目标数据库的等待事件,及时优化
风哥提示:GoldenGate Replicat配置是数据复制的关键环节,配置不当会导致数据延迟或丢失。建议在生产环境部署前,先在测试环境充分验证配置的正确性和性能。更多视频教程www.fgedu.net.cn

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

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

微信号:itpux-com

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