GoldenGate教程FG009-Replicat进程配置与数据应用
本文档详细介绍Oracle GoldenGate中Replicat进程的配置与数据应用,风哥教程参考GoldenGate官方文档Replicat进程相关内容,适合数据库管理员和技术人员学习和参考。更多视频教程www.fgedu.net.cn
Part01-基础概念与理论知识
1.1 Replicat进程概念
Replicat进程是Oracle GoldenGate的核心组件之一,负责将Extract进程捕获的数据变更应用到目标数据库。它通过读取Trail文件中的数据变更,然后将这些变更应用到目标数据库中。
- 数据读取:从Trail文件读取数据变更
- 数据转换:对读取的数据进行转换
- 数据应用:将数据变更应用到目标数据库
- 错误处理:处理应用过程中的错误
- 一致性保证:确保数据应用的一致性
1.2 数据应用原理
Replicat进程的数据应用原理:
## 1. 数据读取
– Replicat进程从Trail文件读取数据变更
– 解析Trail文件中的记录
– 识别操作类型(INSERT、UPDATE、DELETE)
## 2. 数据处理
– 应用数据转换规则
– 执行过滤条件
– 构建SQL语句
## 3. 数据应用
– 将SQL语句应用到目标数据库
– 处理约束和依赖关系
– 确保事务完整性
## 4. 错误处理
– 处理应用过程中的错误
– 根据配置进行错误处理
– 记录错误信息
## 5. 检查点管理
– 维护检查点信息
– 确保数据不重复应用
– 支持故障恢复
1.3 Replicat进程类型
GoldenGate支持两种类型的Replicat进程:
- 经典Replicat(Classic Replicat):传统的Replicat进程,使用SQL语句应用数据
- 集成Replicat(Integrated Replicat):与Oracle数据库紧密集成,使用数据库的应用接口
学习交流加群风哥微信: itpux-com
Part02-生产环境规划与建议
2.1 Replicat进程规划
在规划Replicat进程时,需要考虑以下因素:
## 1. 进程数量规划
– 根据目标数据库的大小和事务量确定Replicat进程数量
– 大型数据库可以使用多个Replicat进程分担负载
– 不同的表或 schema 可以使用不同的Replicat进程
## 2. 命名规范
– 使用有意义的名称,如REP_<target>或REP_<schema>
– 保持命名一致性,便于管理和监控
## 3. Trail文件规划
– 为每个Replicat进程分配独立的Trail文件
– 确保Trail文件存储有足够的空间
## 4. 应用模式规划
– 选择合适的Replicat类型(经典或集成)
– 配置适当的应用模式(批量或单行)
## 5. 错误处理规划
– 配置合理的错误处理策略
– 确定是否需要暂停或继续处理错误
2.2 性能考虑
为了提高Replicat进程的性能,需要考虑以下因素:
- 硬件资源:确保目标数据库有足够的CPU、内存和I/O资源
- 数据库性能:确保目标数据库性能良好,避免应用瓶颈
- 参数调优:根据实际情况调整Replicat进程的参数
- 批量应用:启用批量应用功能,提高应用速度
- 并行处理:使用并行Replicat进程提高处理能力
2.3 规划最佳实践
Replicat进程规划的最佳实践:
## 1. 分离热点表
– 将热点表单独分配一个Replicat进程
– 避免热点表影响其他表的同步
## 2. 合理设置批量应用
– 根据目标数据库性能设置合适的批量大小
– 避免批量过大导致数据库压力过大
## 3. 配置适当的错误处理
– 根据业务需求配置合理的错误处理策略
– 确保数据一致性的同时,减少人工干预
## 4. 定期监控和维护
– 定期检查Replicat进程状态
– 及时处理出现的问题
– 优化配置参数
## 5. 考虑目标数据库的特性
– 根据目标数据库的特性调整Replicat配置
– 充分利用目标数据库的性能优势
from GoldenGate视频:www.itpux.com
Part03-生产环境项目实施方案
3.1 Replicat进程配置
Replicat进程的配置步骤:
## 1. 登录GGSCI
GGSCI
## 2. 创建Replicat进程
GGSCI> add replicat REP1, exttrail /GoldenGate/fgdata/dirdat/et
## 3. 编辑Replicat参数文件
GGSCI> edit param REP1
REPLICAT REP1
USERID fgedu, PASSWORD fgedu123
ASSUMETARGETDEFS
MAP fgedu.*, TARGET fgedu.*;
## 4. 启动Replicat进程
GGSCI> start REP1
## 5. 验证Replicat进程状态
GGSCI> info REP1
3.2 参数设置
Replicat进程的重要参数设置:
## 1. 基本参数
REPLICAT REP1 # Replicat进程名称
USERID fgedu, PASSWORD fgedu123 # 数据库连接信息
ASSUMETARGETDEFS # 假设目标表结构与源表相同
MAP fgedu.*, TARGET fgedu.*; # 表映射
## 2. 性能参数
BATCHSQL # 启用批量SQL
GROUPTRANSOPS 1000 # 批量操作大小
MAXTRANSOPS 5000 # 最大事务操作数
PARALLELISM 4 # 并行处理度
## 3. 错误处理参数
REPERROR DEFAULT, ABEND # 默认错误处理策略
REPERROR (1403, IGNORE) # 忽略特定错误
DISCARDFILE /GoldenGate/fgdata/discards/rep1.dsc, PURGE # 丢弃文件
## 4. 数据转换参数
COLMAP # 列映射
FILTER # 数据过滤
SQLEXEC # 执行SQL语句
## 5. 其他参数
HANDLECOLLISIONS # 处理冲突
NOCOMPRESSDELETES # 不压缩DELETE操作
LOGALLSUPCOLS # 记录所有补充列
3.3 启动与监控
Replicat进程的启动与监控:
## 1. 启动Replicat进程
GGSCI> start REP1
## 2. 查看Replicat进程状态
GGSCI> info REP1
## 3. 查看Replicat进程详细信息
GGSCI> info REP1, detail
## 4. 查看Replicat进程报告
GGSCI> view report REP1
## 5. 停止Replicat进程
GGSCI> stop REP1
## 6. 重启Replicat进程
GGSCI> start REP1
## 7. 监控Replicat进程延迟
GGSCI> lag REP1
## 8. 查看Replicat进程统计信息
GGSCI> stats REP1
## 9. 查看Replicat进程错误
GGSCI> view error REP1
Part04-生产案例与实战讲解
4.1 基础Replicat配置案例
以下是基础Replicat配置的实战案例:
## 环境信息
目标数据库:fgedudb01 (Oracle 19c)
OGG版本:21.3.0.0.0
## 配置步骤
### 1. 创建Replicat进程
GGSCI> add replicat REP1, exttrail /GoldenGate/fgdata/dirdat/et
REPLICAT added.
### 2. 编辑Replicat参数文件
GGSCI> edit param REP1
REPLICAT REP1
USERID fgedu, PASSWORD fgedu123
ASSUMETARGETDEFS
MAP fgedu.*, TARGET fgedu.*;
### 3. 启动Replicat进程
GGSCI> start REP1
Sending START request to MANAGER …
REPLICAT REP1 starting
### 4. 验证Replicat进程状态
GGSCI> info REP1
REPLICAT RUNNING REP1 00:00:00 00:00:05
### 5. 查看Replicat进程详细信息
GGSCI> info REP1, detail
REPLICAT RUNNING REP1 Last Started 2026-04-10 10:00:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:02 ago)
Log Read Checkpoint File /GoldenGate/fgdata/dirdat/et000000
First Record RBA 0
### 6. 查看Replicat进程报告
GGSCI> view report REP1
*********************************************************************
Oracle GoldenGate Delivery for Oracle
*********************************************************************
Version 21.3.0.0.0 OGGCORE_21.3.0.0.0_PLATFORMS_210728.1047
Starting at 2026-04-10 10:00:00
*********************************************************************
** Running with the following parameters **
*********************************************************************
REPLICAT REP1
USERID fgedu, PASSWORD ***
ASSUMETARGETDEFS
MAP fgedu.*, TARGET fgedu.*;
*********************************************************************
** Run Time Messages **
*********************************************************************
2026-04-10 10:00:00 INFO OGG-03059 Operating system character set identified as UTF-8. Locale: en_US, LC_ALL: .
2026-04-10 10:00:00 INFO OGG-02695 ANSI SQL parameter syntax is used for parameter parsing.
2026-04-10 10:00:00 INFO OGG-03035 Operating system information: Linux, Release 4.18.0-348.el8.x86_64, Version #1 SMP Mon Oct 4 12:17:22 EDT 2021, Machine x86_64.
2026-04-10 10:00:00 INFO OGG-01632 Processor architecture: X86_64.
2026-04-10 10:00:00 INFO OGG-00955 Oracle GoldenGate Delivery for Oracle, rep1.prm: REPLICAT REP1 starting.
2026-04-10 10:00:00 INFO OGG-03522 Setting session time zone to source database time zone ‘Asia/Shanghai’.
2026-04-10 10:00:00 INFO OGG-00975 CHECKPOINT table created for REPLICAT REP1: GGSCI_CHECKPOINT.REP1.
2026-04-10 10:00:00 INFO OGG-00993 REPLICAT REP1 started.
4.2 集成模式Replicat配置案例
以下是集成模式Replicat配置的实战案例:
## 环境信息
目标数据库:fgedudb01 (Oracle 19c)
OGG版本:21.3.0.0.0
## 配置步骤
### 1. 为集成Replicat创建数据库用户
SQL> create user c##ggadmin identified by ggadmin123;
SQL> grant dba to c##ggadmin;
SQL> exec dbms_goldengate_auth.grant_admin_privilege(‘c##ggadmin’);
### 2. 创建集成Replicat进程
GGSCI> add replicat REP_INT, integrated, exttrail /GoldenGate/fgdata/dirdat/et
REPLICAT added.
### 3. 编辑Replicat参数文件
GGSCI> edit param REP_INT
REPLICAT REP_INT
USERID c##ggadmin, PASSWORD ggadmin123
ASSUMETARGETDEFS
MAP fgedu.*, TARGET fgedu.*;
### 4. 启动Replicat进程
GGSCI> start REP_INT
Sending START request to MANAGER …
REPLICAT REP_INT starting
### 5. 验证Replicat进程状态
GGSCI> info REP_INT
REPLICAT RUNNING REP_INT 00:00:00 00:00:03
### 6. 查看Replicat进程详细信息
GGSCI> info REP_INT, detail
REPLICAT RUNNING REP_INT Last Started 2026-04-10 10:10:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File /GoldenGate/fgdata/dirdat/et000000
First Record RBA 0
### 7. 查看Replicat进程报告
GGSCI> view report REP_INT
*********************************************************************
Oracle GoldenGate Delivery for Oracle
*********************************************************************
Version 21.3.0.0.0 OGGCORE_21.3.0.0.0_PLATFORMS_210728.1047
Starting at 2026-04-10 10:10:00
*********************************************************************
** Running with the following parameters **
*********************************************************************
REPLICAT REP_INT
USERID c##ggadmin, PASSWORD ***
ASSUMETARGETDEFS
MAP fgedu.*, TARGET fgedu.*;
*********************************************************************
** Run Time Messages **
*********************************************************************
2026-04-10 10:10:00 INFO OGG-03059 Operating system character set identified as UTF-8. Locale: en_US, LC_ALL: .
2026-04-10 10:10:00 INFO OGG-02695 ANSI SQL parameter syntax is used for parameter parsing.
2026-04-10 10:10:00 INFO OGG-03035 Operating system information: Linux, Release 4.18.0-348.el8.x86_64, Version #1 SMP Mon Oct 4 12:17:22 EDT 2021, Machine x86_64.
2026-04-10 10:10:00 INFO OGG-01632 Processor architecture: X86_64.
2026-04-10 10:10:00 INFO OGG-00955 Oracle GoldenGate Delivery for Oracle, rep_int.prm: REPLICAT REP_INT starting.
2026-04-10 10:10:00 INFO OGG-03522 Setting session time zone to source database time zone ‘Asia/Shanghai’.
2026-04-10 10:10:00 INFO OGG-02001 Integrated Replicat selected.
2026-04-10 10:10:00 INFO OGG-02004 Integrated Replicat initialized.
2026-04-10 10:10:00 INFO OGG-00975 CHECKPOINT table created for REPLICAT REP_INT: GGSCI_CHECKPOINT.REP_INT.
2026-04-10 10:10:00 INFO OGG-00993 REPLICAT REP_INT started.
4.3 常见问题与解决
Replicat进程常见问题及解决方案:
## 1. Replicat进程启动失败
问题:Replicat进程启动失败,提示权限不足
解决:检查数据库用户权限
SQL> grant select any dictionary to fgedu;
SQL> grant select any table to fgedu;
SQL> grant insert, update, delete on fgedu.* to fgedu;
## 2. 数据应用延迟
问题:Replicat进程应用数据出现延迟
解决:检查系统资源和数据库性能,调整Replicat参数
GGSCI> edit param REP1
BATCHSQL
GROUPTRANSOPS 1000
MAXTRANSOPS 5000
## 3. 约束错误
问题:Replicat进程遇到约束错误
解决:检查源端和目标端的数据一致性,调整错误处理策略
GGSCI> edit param REP1
REPERROR (2291, IGNORE)
## 4. 数据类型不匹配
问题:Replicat进程遇到数据类型不匹配错误
解决:检查源端和目标端的表结构,配置适当的列映射
GGSCI> edit param REP1
MAP fgedu.emp, TARGET fgedu.emp,
COLMAP (
id = id,
name = name,
salary = salary,
hire_date = hire_date
);
## 5. 进程异常终止
问题:Replicat进程异常终止
解决:查看进程报告,分析错误原因
GGSCI> view report REP1
Part05-风哥经验总结与分享
5.1 Replicat配置最佳实践
根据实际经验,总结以下最佳实践:
- 选择合适的Replicat类型:根据数据库版本和需求选择经典Replicat或集成Replicat
- 合理规划进程数量:根据数据量和事务量规划Replicat进程数量
- 优化参数设置:根据实际情况调整Replicat参数,提高性能
- 配置适当的错误处理:根据业务需求配置合理的错误处理策略
- 定期监控和维护:定期检查Replicat进程状态,及时处理问题
5.2 性能优化建议
Replicat进程性能优化建议:
- 启用批量应用:使用BATCHSQL参数启用批量应用
- 调整批量大小:根据目标数据库性能设置合适的批量大小
- 使用并行处理:启用PARALLELISM参数提高并行处理能力
- 优化数据库性能:确保目标数据库性能良好,避免应用瓶颈
- 减少网络延迟:确保源端和目标端之间网络连接稳定
5.3 风哥经验分享
在多次Replicat进程配置和数据应用的经验中,我总结了以下几点心得:
1. 理解业务需求:在配置Replicat进程前,一定要了解业务需求,确定数据应用的要求和优先级。
2. 测试充分:在生产环境部署前,一定要在测试环境进行充分的测试,验证配置的有效性。
3. 监控到位:建立完善的监控体系,及时发现和解决Replicat进程的问题。
4. 参数调优:根据实际运行情况,不断调整Replicat进程的参数,提高性能。
5. 错误处理:配置合理的错误处理策略,确保数据一致性的同时,减少人工干预。
更多学习教程公众号风哥教程itpux_com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
