1. 首页 > GoldenGate教程 > 正文

GoldenGate教程FG006-Extract进程配置与增量数据捕获实战解析

本文档详细介绍Oracle GoldenGate中Extract进程的配置与增量数据捕获的实战解析,风哥教程参考GoldenGate官方文档Extract进程相关内容,适合数据库管理员和技术人员学习和参考。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 Extract进程概念

Extract进程是Oracle GoldenGate的核心组件之一,负责从源数据库捕获数据变更。它通过读取数据库的事务日志,捕获DML和DDL操作,然后将这些变更写入到Trail文件中。

Extract进程的作用:

  • 数据捕获:从源数据库捕获数据变更
  • 数据过滤:根据配置过滤不需要的表或操作
  • 数据转换:对捕获的数据进行转换
  • 数据写入:将捕获的数据写入到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进程时,需要考虑以下因素:

# 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进程的配置步骤:

# 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进程的重要参数设置:

# 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进程的启动与监控:

# 启动与监控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配置的实战案例:

# 基础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配置的实战案例:

# 集成模式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进程常见问题及解决方案:

# 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

风哥提示:Extract进程是GoldenGate的核心组件之一,其配置和性能直接影响数据同步的效率和可靠性。建议在配置Extract进程时,充分考虑业务需求和系统资源,选择合适的配置方案。

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

联系我们

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

微信号:itpux-com

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