1. 首页 > Oracle教程 > 正文

Oracle教程FG245-Oracle GoldenGate Extract进程配置实战

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

Part01-基础概念与理论知识

1.1 Oracle GoldenGate Extract进程概念

Oracle GoldenGate Extract进程是GoldenGate数据复制的核心组件之一,负责从源数据库捕获数据变更。Extract进程读取数据库的重做日志或事务日志,捕获DML和DDL操作,并将这些变更写入到Trail文件中。更多视频教程www.fgedu.net.cn

Oracle GoldenGate Extract进程的主要功能:

  • 捕获源数据库的数据变更(DML和DDL)
  • 读取数据库重做日志或事务日志
  • 将捕获的变更写入Trail文件
  • 支持初始数据加载和增量数据同步
  • 提供数据过滤和转换功能

1.2 Oracle GoldenGate Extract进程类型

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

  • 经典Extract(Classic Extract):直接从数据库重做日志读取变更
  • 集成Extract(Integrated Extract):使用Oracle LogMiner读取变更,支持更复杂的功能
  • 初始加载Extract:用于初始数据加载,捕获表的全部数据
  • 数据泵Extract(Data Pump):用于在源端和目标端之间传输Trail文件

1.3 Oracle GoldenGate Extract架构原理

Oracle GoldenGate Extract架构工作原理:

  • 日志读取:Extract进程读取Oracle重做日志或归档日志
  • 变更捕获:捕获INSERT、UPDATE、DELETE等DML操作
  • 事务处理:维护事务边界,确保数据一致性
  • Trail文件写入:将变更数据写入本地Trail文件
  • 检查点管理:记录读取位置,支持断点续传
风哥提示:在生产环境中,建议使用集成Extract(Integrated Extract),因为它提供更好的性能、更低的日志读取延迟,并且支持更多的Oracle特性。学习交流加群风哥微信: itpux-com

Part02-生产环境规划与建议

2.1 Oracle GoldenGate Extract进程规划

Oracle GoldenGate Extract进程规划要点:

# Extract进程命名规范
– 经典Extract:EXT开头,如EXT01、EXT02
– 集成Extract:IE开头,如IE01、IE02
– 数据泵Extract:DP开头,如DP01、DP02

# Extract进程数量规划
– 小型系统:1-2个Extract进程
– 中型系统:2-4个Extract进程
– 大型系统:4-8个Extract进程
– 超大型系统:按业务模块分组

# Trail文件规划
– 存储位置:独立的磁盘或文件系统
– 文件大小:默认100MB,可调整为500MB-1GB
– 保留策略:根据磁盘空间和业务需求设置

2.2 Oracle GoldenGate Extract参数配置建议

Oracle GoldenGate Extract参数配置建议:

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

USERIDALIAS fgedu_ggadmin
EXTTRAIL /oracle/goldengate/dirdat/et

# 性能参数
CACHEMGR CACHESIZE 2GB
FLUSHSECS 1
FLUSHCSECS 100

# 事务处理参数
TRANLOGOPTIONS MINEFROMACTIVEDG
TRANLOGOPTIONS INTEGRATEDPARAMS (max_sga_size 256)

# DDL捕获参数
DDL INCLUDE ALL
DDLOPTIONS ADDTRANDATA

2.3 Oracle GoldenGate Extract最佳实践

Oracle GoldenGate Extract最佳实践:

  • 使用集成Extract:Oracle 11.2.0.4及以上版本推荐使用
  • 启用DDL捕获:根据业务需求决定是否捕获DDL
  • 配置心跳表:用于监控复制延迟
  • 定期检查:监控Extract进程状态和性能
  • 备份配置:定期备份GoldenGate参数文件
生产环境建议:Extract进程配置要考虑业务峰值、数据量、网络带宽等因素。建议在生产环境部署前进行充分的性能测试。学习交流加群风哥QQ113257174

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

3.1 Oracle GoldenGate创建Extract进程

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.net.cn) 1>

3.1.2 创建Extract进程

# 查看当前Extract进程列表
GGSCI (fgedu.net.cn) 1> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING

# 创建集成Extract进程
GGSCI (fgedu.net.cn) 2> dblogin useridalias fgedu_ggadmin
Successfully logged into database.

GGSCI (fgedu.net.cn) 3> register extract ext01 database
Extract EXT01 successfully registered with database at SCN 12345678.

GGSCI (fgedu.net.cn) 4> add extract ext01, integrated tranlog, begin now
Extract EXT01 added.

GGSCI (fgedu.net.cn) 5> add exttrail /oracle/goldengate/dirdat/et, extract ext01, megabytes 500
EXTTRAIL added.

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

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
EXTRACT STOPPED EXT01 00:00:00 00:00:00

3.2 Oracle GoldenGate配置Extract参数

3.2.1 编辑Extract参数文件

# 编辑Extract参数文件
GGSCI (fgedu.net.cn) 7> edit params ext01

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

USERIDALIAS fgedu_ggadmin
EXTTRAIL /oracle/goldengate/dirdat/et

# 捕获参数
TRANLOGOPTIONS INTEGRATEDPARAMS (max_sga_size 256, parallelism 2)

# DDL捕获
DDL INCLUDE ALL
DDLOPTIONS ADDTRANDATA, REPORT

# 表映射
TABLE fgedu.fgedu_orders;
TABLE fgedu.fgedu_customers;
TABLE fgedu.fgedu_products;

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

3.2.2 验证参数配置

# 查看Extract参数文件
GGSCI (fgedu.net.cn) 8> view params ext01

EXTRACT ext01
SETENV (NLS_LANG=”AMERICAN_AMERICA.AL32UTF8″)
SETENV (ORACLE_HOME=/oracle/app/oracle/product/19c/dbhome_1)
SETENV (ORACLE_SID=fgedudb)

USERIDALIAS fgedu_ggadmin
EXTTRAIL /oracle/goldengate/dirdat/et

TRANLOGOPTIONS INTEGRATEDPARAMS (max_sga_size 256, parallelism 2)

DDL INCLUDE ALL
DDLOPTIONS ADDTRANDATA, REPORT

TABLE fgedu.fgedu_orders;
TABLE fgedu.fgedu_customers;
TABLE fgedu.fgedu_products;

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

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

3.3 Oracle GoldenGate启动和管理Extract

3.3.1 启动Extract进程

# 启动Extract进程
GGSCI (fgedu.net.cn) 10> start extract ext01

Sending START request to MANAGER …
EXTRACT EXT01 starting

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

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
EXTRACT RUNNING EXT01 00:00:00 00:00:05

# 查看Extract详细信息
GGSCI (fgedu.net.cn) 12> info extract ext01, detail

EXTRACT EXT01 Last Started 2026-04-03 10:30:15 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:05 ago)
Process ID 12345
Log Read Checkpoint Oracle Integrated Redo Logs
2026-04-03 10:30:15 SCN 12345678
Target Extract Trails:

Trail Name Seqno RBA Max MB Trail Type
/oracle/goldengate/dirdat/et 0 1234 500 EXTTRAIL

Integrated Extract outbound server status:
Extract database user name: GGADMIN
Extract process name: EXT01
Outbound server name: OGG$EXT01
Outbound server current log position: 12345678

3.3.2 监控Extract进程

# 查看Extract统计信息
GGSCI (fgedu.net.cn) 13> stats extract ext01

Sending STATS request to EXTRACT EXT01 …

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

Extracting from FGEDU.FGEDU_ORDERS to FGEDU.FGEDU_ORDERS:

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

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

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

End of Statistics.

# 查看Extract报告
GGSCI (fgedu.net.cn) 14> view report ext01

2026-04-03 10:30:15 INFO OGG-01057 Oracle GoldenGate Capture for Oracle, ext01.prm: EXTRACT starting.
2026-04-03 10:30:15 INFO OGG-01226 Oracle GoldenGate Capture for Oracle, ext01.prm: Connected to database fgedudb.
2026-04-03 10:30:15 INFO OGG-01635 Oracle GoldenGate Capture for Oracle, ext01.prm: BOUNDED RECOVERY: recovery start position: Seqno 100, RBA 12345678.
2026-04-03 10:30:15 INFO OGG-01517 Oracle GoldenGate Capture for Oracle, ext01.prm: Position of first record processed Seq 100, RBA 12345678.

风哥提示:Extract进程启动后,要定期检查其状态和统计信息,确保数据捕获正常。如果发现延迟过高或错误,需要及时处理。更多学习教程公众号风哥教程itpux_com

Part04-生产案例与实战讲解

4.1 Oracle GoldenGate单表Extract配置案例

以下是一个单表Extract配置的完整案例:

# 场景:只同步fgedu_orders表

# 1. 添加补充日志
GGSCI (fgedu.net.cn) 15> dblogin useridalias fgedu_ggadmin
Successfully logged into database.

GGSCI (fgedu.net.cn) 16> add trandata fgedu.fgedu_orders
Logging of supplemental redo data enabled for table FGEDU.FGEDU_ORDERS.

# 2. 创建Extract进程
GGSCI (fgedu.net.cn) 17> register extract ext_orders database
Extract EXT_ORDERS successfully registered with database at SCN 12345700.

GGSCI (fgedu.net.cn) 18> add extract ext_orders, integrated tranlog, begin now
Extract EXT_ORDERS added.

GGSCI (fgedu.net.cn) 19> add exttrail /oracle/goldengate/dirdat/et, extract ext_orders, megabytes 500
EXTTRAIL added.

# 3. 配置参数文件
GGSCI (fgedu.net.cn) 20> edit params ext_orders

EXTRACT ext_orders
SETENV (NLS_LANG=”AMERICAN_AMERICA.AL32UTF8″)
SETENV (ORACLE_HOME=/oracle/app/oracle/product/19c/dbhome_1)
SETENV (ORACLE_SID=fgedudb)

USERIDALIAS fgedu_ggadmin
EXTTRAIL /oracle/goldengate/dirdat/et

# 只捕获单表
TABLE fgedu.fgedu_orders;

# 4. 启动Extract
GGSCI (fgedu.net.cn) 21> start extract ext_orders

Sending START request to MANAGER …
EXTRACT EXT_ORDERS starting

# 5. 验证状态
GGSCI (fgedu.net.cn) 22> info extract ext_orders

EXTRACT EXT_ORDERS Last Started 2026-04-03 10:40:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:02 ago)
Log Read Checkpoint Oracle Integrated Redo Logs
2026-04-03 10:40:00 SCN 12345700

4.2 Oracle GoldenGate多表Extract配置案例

以下是一个多表Extract配置的完整案例,包含表过滤和列映射:

# 场景:同步多个表,并进行数据过滤

# 1. 添加补充日志
GGSCI (fgedu.net.cn) 23> dblogin useridalias fgedu_ggadmin
Successfully logged into database.

GGSCI (fgedu.net.cn) 24> add trandata fgedu.fgedu_orders
GGSCI (fgedu.net.cn) 25> add trandata fgedu.fgedu_customers
GGSCI (fgedu.net.cn) 26> add trandata fgedu.fgedu_products
GGSCI (fgedu.net.cn) 27> add trandata fgedu.fgedu_order_items

# 2. 创建Extract进程
GGSCI (fgedu.net.cn) 28> register extract ext_erp database
Extract EXT_ERP successfully registered with database at SCN 12345800.

GGSCI (fgedu.net.cn) 29> add extract ext_erp, integrated tranlog, begin now
Extract EXT_ERP added.

GGSCI (fgedu.net.cn) 30> add exttrail /oracle/goldengate/dirdat/er, extract ext_erp, megabytes 1000
EXTTRAIL added.

# 3. 配置参数文件
GGSCI (fgedu.net.cn) 31> edit params ext_erp

EXTRACT ext_erp
SETENV (NLS_LANG=”AMERICAN_AMERICA.AL32UTF8″)
SETENV (ORACLE_HOME=/oracle/app/oracle/product/19c/dbhome_1)
SETENV (ORACLE_SID=fgedudb)

USERIDALIAS fgedu_ggadmin
EXTTRAIL /oracle/goldengate/dirdat/er

# 性能参数
CACHEMGR CACHESIZE 2GB
FLUSHSECS 1

# DDL捕获
DDL INCLUDE MAPPED OBJNAME fgedu.*
DDLOPTIONS ADDTRANDATA

# 表映射,带过滤条件
TABLE fgedu.fgedu_orders, FILTER (ON INSERT, ON UPDATE, ON DELETE, order_amount > 1000);
TABLE fgedu.fgedu_customers;
TABLE fgedu.fgedu_products;
TABLE fgedu.fgedu_order_items;

# 4. 启动Extract
GGSCI (fgedu.net.cn) 32> start extract ext_erp

Sending START request to MANAGER …
EXTRACT EXT_ERP starting

# 5. 验证统计信息
GGSCI (fgedu.net.cn) 33> stats extract ext_erp

Sending STATS request to EXTRACT EXT_ERP …

Start of Statistics at 2026-04-03 10:45:00.

Extracting from FGEDU.FGEDU_ORDERS to FGEDU.FGEDU_ORDERS:
Total inserts 500.00
Total updates 200.00
Total deletes 50.00
Total operations 750.00

Extracting from FGEDU.FGEDU_CUSTOMERS to FGEDU.FGEDU_CUSTOMERS:
Total inserts 300.00
Total updates 150.00
Total deletes 30.00
Total operations 480.00

Extracting from FGEDU.FGEDU_PRODUCTS to FGEDU.FGEDU_PRODUCTS:
Total inserts 100.00
Total updates 80.00
Total deletes 10.00
Total operations 190.00

Extracting from FGEDU.FGEDU_ORDER_ITEMS to FGEDU.FGEDU_ORDER_ITEMS:
Total inserts 1200.00
Total updates 400.00
Total deletes 100.00
Total operations 1700.00

End of Statistics.

4.3 Oracle GoldenGate Extract常见问题处理

4.3.1 Extract进程无法启动

# 问题现象:Extract进程启动失败
GGSCI (fgedu.net.cn) 34> start extract ext01

Sending START request to MANAGER …
EXTRACT EXT01 starting

GGSCI (fgedu.net.cn) 35> info extract ext01

EXTRACT EXT01 Last Started 2026-04-03 10:50:00 Status ABENDED

# 查看错误报告
GGSCI (fgedu.net.cn) 36> view report ext01

2026-04-03 10:50:00 ERROR OGG-00664 Oracle GoldenGate Capture for Oracle, ext01.prm: OCI Error beginning session (status = 28009-ORA-28009: connection as SYS should be as SYSDBA or SYSOPER).

# 解决方案:检查数据库连接配置
GGSCI (fgedu.net.cn) 37> dblogin useridalias fgedu_ggadmin
Successfully logged into database.

# 重新注册Extract
GGSCI (fgedu.net.cn) 38> unregister extract ext01 database
GGSCI (fgedu.net.cn) 39> register extract ext01 database
GGSCI (fgedu.net.cn) 40> start extract ext01

4.3.2 Extract进程延迟过高

# 问题现象:Extract进程延迟过高
GGSCI (fgedu.net.cn) 41> info extract ext01

EXTRACT EXT01 Last Started 2026-04-03 11:00:00 Status RUNNING
Checkpoint Lag 00:30:00 (updated 00:00:05 ago)

# 分析原因
GGSCI (fgedu.net.cn) 42> stats extract ext01, latest

Sending STATS request to EXTRACT EXT01 …

# 解决方案1:增加并行度
GGSCI (fgedu.net.cn) 43> edit params ext01
# 修改参数:TRANLOGOPTIONS INTEGRATEDPARAMS (parallelism 4)

# 解决方案2:重启Extract进程
GGSCI (fgedu.net.cn) 44> stop extract ext01
GGSCI (fgedu.net.cn) 45> start extract ext01

# 解决方案3:检查数据库日志生成速度
SQL> SELECT thread#, sequence#, bytes/1024/1024 mb, first_time, next_time
FROM v$archived_log
WHERE first_time > sysdate – 1
ORDER BY first_time DESC;

THREAD# SEQUENCE# MB FIRST_TIME NEXT_TIME
———- ———- ———- ——————- ——————-
1 1234 500 2026-04-03 10:59:00 2026-04-03 11:00:00
1 1233 500 2026-04-03 10:58:00 2026-04-03 10:59:00
1 1232 500 2026-04-03 10:57:00 2026-04-03 10:58:00

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

Part05-风哥经验总结与分享

5.1 Oracle GoldenGate Extract配置总结

Oracle GoldenGate Extract配置的关键要点:

  • 进程规划:根据业务需求合理规划Extract进程数量和命名
  • 参数配置:根据数据量和性能要求调整参数
  • 补充日志:确保所有同步表都启用了补充日志
  • 监控管理:建立完善的监控体系,及时发现和处理问题
  • 备份恢复:定期备份GoldenGate配置,制定恢复方案

5.2 Oracle GoldenGate Extract检查清单

Oracle GoldenGate Extract部署检查清单:

# 部署前检查清单
□ 数据库版本是否支持集成Extract(11.2.0.4+)
□ GoldenGate用户权限是否足够
□ 同步表是否已启用补充日志
□ Trail文件存储路径是否存在且权限正确
□ 网络连接是否正常
□ 数据库字符集是否配置正确

# 部署后检查清单
□ Extract进程状态是否为RUNNING
□ 检查点是否正常更新
□ 统计信息是否正常增长
□ 报告文件是否有错误
□ 延迟是否在可接受范围内
□ Trail文件是否正常生成

5.3 Oracle GoldenGate管理工具推荐

Oracle GoldenGate Extract管理推荐工具:

  • GGSCI:GoldenGate命令行管理工具,功能最全面
  • Oracle Enterprise Manager:图形化管理界面,适合大规模部署
  • GoldenGate Monitor:实时监控工具
  • 自定义脚本:根据业务需求开发的自动化管理脚本
风哥提示:GoldenGate Extract配置是数据复制的基础,配置不当会导致数据丢失或延迟。建议在生产环境部署前,先在测试环境充分验证配置的正确性和性能。更多视频教程www.fgedu.net.cn

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

联系我们

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

微信号:itpux-com

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