GoldenGate教程FG006-Extract进程配置与增量数据捕获实战解析
本文档详细介绍Oracle GoldenGate中Extract进程的配置与增量数据捕获的实战解析,风哥教程参考GoldenGate官方文档Extract进程相关内容,适合数据库管理员和技术人员学习和参考。更多视频教程www.fgedu.net.cn
Part01-基础概念与理论知识
1.1 Extract进程概念
Extract进程是Oracle GoldenGate的核心组件之一,负责从源数据库捕获数据变更。它通过读取数据库的事务日志,捕获DML和DDL操作,然后将这些变更写入到Trail文件中。
- 数据捕获:从源数据库捕获数据变更
- 数据过滤:根据配置过滤不需要的表或操作
- 数据转换:对捕获的数据进行转换
- 数据写入:将捕获的数据写入到Trail文件
1.2 增量数据捕获原理
增量数据捕获是指只捕获数据库中的变更数据,而不是全量数据。GoldenGate通过以下方式实现增量数据捕获:
## 1. 日志读取
– Extract进程读取源数据库的事务日志( redo log 或 archive log)
– 解析日志中的事务信息
– 识别数据变更操作
## 2. 数据捕获
– 捕获INSERT、UPDATE、DELETE操作
– 捕获DDL操作(如果配置)
– 记录操作的详细信息
## 3. 数据处理
– 应用过滤条件
– 执行数据转换
– 构建数据记录
## 4. 数据写入
– 将处理后的数据写入到Trail文件
– 维护检查点信息
– 确保数据一致性
1.3 Extract进程类型
GoldenGate支持两种类型的Extract进程:
- 经典Extract(Classic Extract):传统的Extract进程,直接读取数据库日志
- 集成Extract(Integrated Extract):与Oracle数据库紧密集成,使用数据库的日志挖掘功能
学习交流加群风哥微信: itpux-com
Part02-生产环境规划与建议
2.1 Extract进程规划
在规划Extract进程时,需要考虑以下因素:
## 1. 进程数量规划
– 根据源数据库的大小和事务量确定Extract进程数量
– 大型数据库可以使用多个Extract进程分担负载
– 不同的表或 schema 可以使用不同的Extract进程
## 2. 命名规范
– 使用有意义的名称,如EXT_<source>或EXT_<schema>
– 保持命名一致性,便于管理和监控
## 3. Trail文件规划
– 为每个Extract进程分配独立的Trail文件前缀
– 规划Trail文件的大小和轮转策略
– 确保Trail文件存储有足够的空间
## 4. 过滤规则规划
– 确定需要捕获的表和操作
– 配置适当的过滤条件
– 避免捕获不需要的数据
2.2 性能考虑
为了提高Extract进程的性能,需要考虑以下因素:
- 硬件资源:确保有足够的CPU、内存和I/O资源
- 网络带宽:确保源端和目标端之间有足够的网络带宽
- 数据库性能:确保源数据库性能良好,避免日志堆积
- 参数调优:根据实际情况调整Extract进程的参数
- 并行处理:使用并行Extract进程提高处理能力
2.3 规划最佳实践
Extract进程规划的最佳实践:
## 1. 分离热点表
– 将热点表单独分配一个Extract进程
– 避免热点表影响其他表的同步
## 2. 合理设置Trail文件大小
– 根据网络带宽和数据量设置合适的Trail文件大小
– 避免Trail文件过大或过小
## 3. 配置适当的过滤条件
– 只捕获必要的数据
– 减少不必要的数据传输和处理
## 4. 定期监控和维护
– 定期检查Extract进程状态
– 及时处理出现的问题
– 优化配置参数
from GoldenGate视频:www.itpux.com
Part03-生产环境项目实施方案
3.1 Extract进程配置
Extract进程的配置步骤:
## 1. 登录GGSCI
GGSCI
## 2. 创建Extract进程
GGSCI> add extract EXT1, tranlog, begin now
## 3. 创建Trail文件
GGSCI> add exttrail /GoldenGate/fgdata/dirdat/et, extract EXT1, megabytes 100
## 4. 编辑Extract参数文件
GGSCI> edit param EXT1
EXTRACT EXT1
USERID fgedu, PASSWORD fgedu123
EXTTRAIL /GoldenGate/fgdata/dirdat/et
TABLE fgedu.*;
## 5. 启动Extract进程
GGSCI> start EXT1
## 6. 验证Extract进程状态
GGSCI> info EXT1
3.2 参数设置
Extract进程的重要参数设置:
## 1. 基本参数
EXTRACT EXT1 # Extract进程名称
USERID fgedu, PASSWORD fgedu123 # 数据库连接信息
EXTTRAIL /GoldenGate/fgdata/dirdat/et # Trail文件路径
TABLE fgedu.*; # 要捕获的表
## 2. 性能参数
PARALLELISM 4 # 并行处理度
TRANLOGOPTIONS EXTRACTTHROUGHput 100000 # 提取吞吐量
CACHEMGR CACHESIZE 1G # 缓存大小
## 3. 过滤参数
TABLE fgedu.emp, FILTER (COLUMN status = ‘ACTIVE’); # 基于列值过滤
TABLE fgedu.*, EXCEPT fgedu.temp*; # 排除临时表
## 4. 其他参数
DDL INCLUDE ALL # 包含DDL操作
LOGALLSUPCOLS # 记录所有补充列
NOCOMPRESSDELETES # 不压缩DELETE操作
3.3 启动与监控
Extract进程的启动与监控:
## 1. 启动Extract进程
GGSCI> start EXT1
## 2. 查看Extract进程状态
GGSCI> info EXT1
## 3. 查看Extract进程详细信息
GGSCI> info EXT1, detail
## 4. 查看Extract进程报告
GGSCI> view report EXT1
## 5. 停止Extract进程
GGSCI> stop EXT1
## 6. 重启Extract进程
GGSCI> start EXT1
## 7. 监控Extract进程延迟
GGSCI> lag EXT1
## 8. 查看Extract进程统计信息
GGSCI> stats EXT1
Part04-生产案例与实战讲解
4.1 基础Extract配置案例
以下是基础Extract配置的实战案例:
## 环境信息
源数据库:fgedudb (Oracle 19c)
OGG版本:21.3.0.0.0
## 配置步骤
### 1. 创建Extract进程
GGSCI> add extract EXT1, tranlog, begin now
EXTRACT added.
### 2. 创建Trail文件
GGSCI> add exttrail /GoldenGate/fgdata/dirdat/et, extract EXT1, megabytes 100
EXTTRAIL added.
### 3. 编辑Extract参数文件
GGSCI> edit param EXT1
EXTRACT EXT1
USERID fgedu, PASSWORD fgedu123
EXTTRAIL /GoldenGate/fgdata/dirdat/et
TABLE fgedu.*;
### 4. 启动Extract进程
GGSCI> start EXT1
Sending START request to MANAGER …
EXTRACT EXT1 starting
### 5. 验证Extract进程状态
GGSCI> info EXT1
EXTRACT RUNNING EXT1 00:00:00 00:00:05
### 6. 查看Extract进程详细信息
GGSCI> info EXT1, detail
EXTRACT RUNNING EXT1 Last Started 2026-04-10 10:00:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:02 ago)
Log Read Checkpoint Oracle Redo Logs
2026-04-10 10:00:05 Seqno 123, RBA 456789
SCN 0.123456 (123456)
### 7. 查看Extract进程报告
GGSCI> view report EXT1
*********************************************************************
Oracle GoldenGate Capture 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 **
*********************************************************************
EXTRACT EXT1
USERID fgedu, PASSWORD ***
EXTTRAIL /GoldenGate/fgdata/dirdat/et
TABLE 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 Capture for Oracle, ext1.prm: EXTRACT EXT1 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 EXTRACT EXT1: GGSCI_CHECKPOINT.EXT1.
2026-04-10 10:00:00 INFO OGG-01851 File /GoldenGate/fgdata/dirdat/et000000 is being created.
2026-04-10 10:00:00 INFO OGG-00993 EXTRACT EXT1 started.
4.2 集成模式Extract配置案例
以下是集成模式Extract配置的实战案例:
## 环境信息
源数据库:fgedudb (Oracle 19c)
OGG版本:21.3.0.0.0
## 配置步骤
### 1. 为集成Extract创建数据库用户
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. 创建集成Extract进程
GGSCI> add extract EXT_INT, integrated tranlog, begin now
EXTRACT added.
### 3. 创建Trail文件
GGSCI> add exttrail /GoldenGate/fgdata/dirdat/it, extract EXT_INT, megabytes 100
EXTTRAIL added.
### 4. 编辑Extract参数文件
GGSCI> edit param EXT_INT
EXTRACT EXT_INT
USERID c##ggadmin, PASSWORD ggadmin123
EXTTRAIL /GoldenGate/fgdata/dirdat/it
TABLE fgedu.*;
### 5. 启动Extract进程
GGSCI> start EXT_INT
Sending START request to MANAGER …
EXTRACT EXT_INT starting
### 6. 验证Extract进程状态
GGSCI> info EXT_INT
EXTRACT RUNNING EXT_INT 00:00:00 00:00:03
### 7. 查看Extract进程详细信息
GGSCI> info EXT_INT, detail
EXTRACT RUNNING EXT_INT Last Started 2026-04-10 10:10:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint Oracle Integrated Redo Logs
2026-04-10 10:10:03 Seqno 124, RBA 789012
SCN 0.123456 (123456)
### 8. 查看Extract进程报告
GGSCI> view report EXT_INT
*********************************************************************
Oracle GoldenGate Capture 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 **
*********************************************************************
EXTRACT EXT_INT
USERID c##ggadmin, PASSWORD ***
EXTTRAIL /GoldenGate/fgdata/dirdat/it
TABLE 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 Capture for Oracle, ext_int.prm: EXTRACT EXT_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-02003 Integrated capture selected from database version 19.0.0.
2026-04-10 10:10:00 INFO OGG-02005 Integrated capture initialized.
2026-04-10 10:10:00 INFO OGG-01851 File /GoldenGate/fgdata/dirdat/it000000 is being created.
2026-04-10 10:10:00 INFO OGG-00993 EXTRACT EXT_INT started.
4.3 常见问题与解决
Extract进程常见问题及解决方案:
## 1. Extract进程启动失败
问题:Extract进程启动失败,提示权限不足
解决:检查数据库用户权限
SQL> grant select any dictionary to fgedu;
SQL> grant select any table to fgedu;
## 2. 数据捕获延迟
问题:Extract进程捕获数据出现延迟
解决:检查系统资源和网络状况,调整Extract参数
GGSCI> edit param EXT1
PARALLELISM 4
TRANLOGOPTIONS EXTRACTTHROUGHPUT 100000
## 3. 日志读取错误
问题:Extract进程无法读取数据库日志
解决:检查数据库归档模式和补充日志设置
SQL> alter database add supplemental log data;
SQL> alter database force logging;
## 4. Trail文件写入失败
问题:Extract进程无法写入Trail文件
解决:检查目录权限和磁盘空间
chown -R ogg:ogg /GoldenGate/fgdata
df -h
## 5. 进程异常终止
问题:Extract进程异常终止
解决:查看进程报告,分析错误原因
GGSCI> view report EXT1
Part05-风哥经验总结与分享
5.1 Extract配置最佳实践
根据实际经验,总结以下最佳实践:
- 选择合适的Extract类型:根据数据库版本和需求选择经典Extract或集成Extract
- 合理规划进程数量:根据数据量和事务量规划Extract进程数量
- 优化参数设置:根据实际情况调整Extract参数,提高性能
- 配置适当的过滤条件:只捕获必要的数据,减少处理开销
- 定期监控和维护:定期检查Extract进程状态,及时处理问题
5.2 性能优化建议
Extract进程性能优化建议:
- 并行处理:使用PARALLELISM参数启用并行处理
- 增加缓存:调整CACHEMGR参数增加缓存大小
- 优化日志读取:使用TRANLOGOPTIONS参数优化日志读取
- 合理设置Trail文件大小:根据网络带宽和数据量设置合适的Trail文件大小
- 避免不必要的转换:只进行必要的数据转换,减少处理开销
5.3 风哥经验分享
在多次Extract进程配置和增量数据捕获的经验中,我总结了以下几点心得:
1. 理解业务需求:在配置Extract进程前,一定要了解业务需求,确定需要捕获的数据范围。
2. 测试充分:在生产环境部署前,一定要在测试环境进行充分的测试,验证配置的有效性。
3. 监控到位:建立完善的监控体系,及时发现和解决Extract进程的问题。
4. 参数调优:根据实际运行情况,不断调整Extract进程的参数,提高性能。
5. 文档完善:记录Extract进程的配置和维护过程,便于后续参考。
更多学习教程公众号风哥教程itpux_com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
