大家好,我是 JiekeXu,江湖人称“强哥”,青学会MOP技术社区主席,荣获Oracle ACE Pro称号,OpenTenBase ACE,金仓社区最具价值倡导者KVA,崖山最具价值专家YVP,IvorySQL开源社区专家顾问委员会成员,KWDB社区MVP,墨天轮MVP,墨天轮连续多年度“墨力之星”,拥有Oracle OCP/OCM认证,MySQL 5.7/8.0 OCP认证以及金仓KCA、KCP、KCM、KCSM证书,TiDB PCTA/PCTP证书、PCA、OBCA、OGCA等众多国产数据库认证证书,专注于数据库技术、系统架构及大数据运维,致力于分享最纯粹、最接地气的 DBA 实战与前沿技术洞察。如果你也对数据技术充满热忱,欢迎关注我的微信公众号“JiekeXu DBA之路”点赞、转发与评论,谢谢!

前 言
如果你还对 Oracle GoldenGate 不是很了解,也不知道他是干嘛用的,建议先查看如下三篇文章。
适用版本:Oracle GoldenGate 19c (Classic Capture & Integrated Capture) 本文适用于非微服务架构。
目 录
- 一、GGSCI 基础与连接命令(#1 ~ #10)
- 二、Manager 进程管理命令(#11 ~ #18)
- 三、Extract 进程管理命令(#19 ~ #35)
- 四、Replicat 进程管理命令(#36 ~ #50)
- 五、Trail 文件管理命令(#51 ~ #58)
- 六、补充日志与检查点管理命令(#59 ~ #70)
- 七、SEND 交互命令(#71 ~ #80)
- 八、Logdump 命令(#81 ~ #95)
- 九、其他工具命令(#96 ~ #100)
- 附录 A:经典模式 vs 集成模式对比
- 附录 B:OGG 19c 完整配置流程
- 附录 C:常用排错流程
一、GGSCI 基础与连接命令(#1 ~ #10)
#1 — 进入 GGSCI 交互界面
# 在 OGG 安装目录下
cd /goldengate/ogg19c
-- 查看 OGG 版本
./ggsci -v
--进入 OGG
./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 19.31.0.0.260421 OGGCORE_19.31.0.0.0OGGRU_PLATFORMS_260409.1230_FBO
Linux, x64, 64bit (optimized), Oracle 19c on Apr 10 2026 06:03:52
Operating system character set identified as UTF-8.
Copyright (C) 1995, 2025, Oracle and/or its affiliates. All rights reserved.
GGSCI (jieke-rac-1) 1> HELP --查看所有帮助命令
进入后提示符变为 GGSCI (hostname) X>。
#2 — 查看所有进程状态
GGSCI> INFO ALL Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING DPEU1 00:00:00 00:00:01 EXTRACT RUNNING EXTU1 00:00:02 00:00:08
输出 Program / Status / Group / Lag at Chkpt / Time Since Chkpt 五列信息,是 DBA 日常巡检的第一条命令。
#3 — 登录数据库(明文密码)
GGSCI> DBLOGIN USERID ggs_admin, PASSWORD your_password
GGSCI> DBLOGIN USERID OGG@TNS, PASSWORD ogg_19c123
--登录到 PDB
GGSCI> DBLOGIN USERID ogg@192.168.217.87:11521/jiekexupdb password ogg_19c123
#4 — 免密登录数据库(使用 Credential Store 别名)
GGSCI> DBLOGIN USERIDALIAS ggs_alias
推荐方式:避免在命令行暴露明文密码,使用
USERIDALIAS引用凭证存储中的别名。
#5 — 登录 CDB/PDB 环境
-- 登录 CDB Root
GGSCI> DBLOGIN USERIDALIAS cdb_alias
-- 登录 PDB
GGSCI> DBLOGIN USERIDALIAS pdb_alias
#6 — 查看数据库及操作系统版本
--密文登录到数据库
GGSCI> DBLOGIN USERIDALIAS alias_ogg
Successfully logged into database.
GGSCI> VERSIONS
Operating System:
Linux
Version #1 SMP PREEMPT_DYNAMIC Fri Apr 4 10:41:31 EDT 2025, Release 5.14.0-570.12.1.el9_6.x86_64
Node: jieke-rac-1
Machine: Linux
Database:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.23.0.0.0
#7 — 设置默认编辑器
GGSCI> SET EDITOR vi
设置后 EDIT PARAMS 将使用 vi 打开参数文件。默认为 ed,可设为 vi、vim、nano 等。
#8 — 在 GGSCI 中执行操作系统命令
GGSCI> SHELL ls -l ./dirdat/ GGSCI> SHELL cat /etc/hosts
#9 — 执行 OBEY 脚本文件
GGSCI> OBEY ./dirprm/setup.oby
OBEY 类似 SQL*Plus 的 @script.sql,按顺序执行脚本中的 GGSCI 命令,适合批量部署。
#10 — 查看命令历史 / 退出
GGSCI> HISTORY -- 查看最近执行的命令
GGSCI> FC -- 编辑上一条命令
GGSCI> EXIT -- 退出 GGSCI(或 QUIT)
二、Manager 进程管理命令(#11 ~ #18)
#11 — 编辑 Manager 参数文件
GGSCI> EDIT PARAMS MGR
--查看 Manager 参数文件
GGSCI> VIEW PARAMS MGR
Manager 参数文件示例:
PORT 7709
DYNAMICPORTLIST 7710-7729
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *
PURGEOLDEXTRACTS /goldengate/ogg19c/dirdat/*,usecheckpoints, minkeepdays 4
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
PURGEDDLHISTORY MINKEEPDAYS 15, MAXKEEPDAYS 60
PURGEMARKERHISTORY MINKEEPDAYS 15, MAXKEEPDAYS 60
#12 — 启动 Manager
GGSCI> START MGR
--停止 Manager
GGSCI> STOP MGR
⚠️ 停止 Manager 前,应先停止所有 Extract / Replicat 进程。
#13 — 查看 Manager 状态
GGSCI> INFO MGR
Manager is running (IP port TCP:jieke-rac-1.7709, Process ID 1600797).
--查看 Manager 详细信息
GGSCI> INFO MGR, DETAIL
--获取MGR实时运行状态
GGSCI> STATUS MGR
#14 — 查看 Manager 运行日志
GGSCI> VIEW REPORT MGR
#15 — 强制杀死 Manager
GGSCI> STOP MGR
--强制杀死 MGR 进程,异常 hang 住场景使用,优先 stop
GGSCI> KILL MGR
#16 — SEND MANAGER 获取 MGR 进程状态
使用 SEND MANAGER 可获取活动 Manager 进程的状态,或获取 Manager 参数文件中配置的动态端口信息
SEND MANAGER
[CHILDSTATUS [DEBUG]]
[GETPORTINFO [DETAIL]
[GETPURGEOLDEXTRACTS]
GGSCI> SEND MANAGER DETAIL
--SEND MANAGER CHILDSTATUS DEBUG 会返回类似如下的子进程状态。基础的 CHILDSTATUS 选项返回的显示内容与之相同,但不包含端口列。
GGSCI> SEND MANAGER CHILDSTATUS DEBUG
Sending CHILDSTATUS request to MANAGER ...
Child Process Status - 2 Entries
ID Group Process Retry Retry Time Start Time Port
---- -------- --------- ----- ------------------- ------------------- ----
0 DPEU1 1603005 0 None 2026/07/31 18:43:19 /goldengate/ogg19c/dirtmp/DPEU1.s
1 EXTU1 3011083 0 None 2026/07/31 18:43:19 /goldengate/ogg19c/dirtmp/EXTU1.s
#17 — 删除 Manager
GGSCI> DELETE MGR
#18 — 查看 GoldenGate 事件日志
GGSCI> VIEW GGSEVT
ggserr.log 的 GGSCI 内查看方式,包含所有进程的启动、停止、错误等事件。
三、Extract 进程管理命令(#19 ~ #35)
#19 — 添加经典模式 Extract(Classic Capture)
GGSCI> ADD EXTRACT ext1, TRANLOG, BEGIN NOW
经典模式直接读取 Oracle redo log 文件,无需注册到数据库。
#20 — 添加集成模式 Extract(Integrated Capture)
GGSCI> ADD EXTRACT ext1, INTEGRATED TRANLOG, BEGIN NOW
集成模式通过数据库 LogMiner Server 读取 redo,需先 REGISTER EXTRACT ext1 DATABASE。
#21 — 注册集成模式 Extract 到数据库
GGSCI> DBLOGIN USERIDALIAS ggs_alias GGSCI> REGISTER EXTRACT ext1, DATABASE
⚠️ 仅 Integrated Capture 需要,Classic Capture 不需要且不能执行此命令。注册后数据库创建
OGG$EXT1Capture 进程,可在DBA_CAPTURE视图中查看。
#22 — CDB/PDB 环境下注册 Extract
GGSCI> REGISTER EXTRACT ext1, DATABASE CONTAINER (pdb1, pdb2)
#23 — 取消注册 Extract
GGSCI> UNREGISTER EXTRACT ext1, DATABASE
从 Classic 切换到 Integrated 或完全删除时使用。
#24 — 添加初始加载 Extract(Initial Load)
GGSCI> ADD EXTRACT init1, SOURCEISTABLE
SOURCEISTABLE 模式直接从源表查询数据,不读取 redo log。
#25 — 添加 Data Pump Extract
GGSCI> ADD EXTRACT pump1, EXTTRAILSOURCE ./dirdat/jk, BEGIN NOW
Data Pump 是第二层 Extract,从本地 Trail 读取并推送到目标端。
#26 — 指定 Extract 起始 SCN
GGSCI> ADD EXTRACT ext1, INTEGRATED TRANLOG, SCN 12345678
#27 — 启动 Extract
GGSCI> START EXTRACT ext1
#28 — 停止 Extract
GGSCI> STOP EXTRACT ext1
#29 — 强制停止 Extract
GGSCI> STOP EXTRACT ext1, FORCE
当正常停止超时或进程无响应时使用。
#30 — 修改 Extract 起始位置
-- 修改起始时间为当前
GGSCI> ALTER EXTRACT ext1, BEGIN NOW
-- 修改起始 SCN
GGSCI> ALTER EXTRACT ext1, SCN 12345678
-- 修改起始序列号(redo log)
GGSCI> ALTER EXTRACT ext1, THREAD 1, SEQUENCE 1234, RBA 0
#31 — 查看 Extract 基本信息
GGSCI> INFO EXTRACT ext1
#32 — 查看 Extract 详细信息
GGSCI> INFO EXTRACT ext1, DETAIL
显示 Extract 的完整配置,包括 Trail 文件、Checkpoint、参数等。
#33 — 查看 Extract Checkpoint 信息
GGSCI> INFO EXTRACT ext1, SHOWCH

显示当前读取的 redo log 序列号、RBA、SCN 等关键位置信息。
#34 — 查看 Extract 统计信息
GGSCI> STATS EXTRACT ext1 GGSCI> STATS EXTRACT ext1, TOTAL, DAILY, HOURLY GGSCI> STATS EXTRACT ext1, TABLE schema.table, TOTALSONLY schema.table
#35 — 查看 Extract 延迟
GGSCI> LAG EXTRACT ext1 GGSCI (edwrac) 6> dblogin USERIDALIAS alias_ogg Successfully logged into database. GGSCI (edwrac as ogg@edw1) 7> LAG EXTRACT ext1 Sending GETLAG request to EXTRACT EXT1 ... Last record lag 3 seconds. At EOF, no more records to process
输出 Extract 的延迟时间和检查点时间。
四、Replicat 进程管理命令(#36 ~ #50)
#36 — 添加经典模式 Replicat
GGSCI> ADD REPLICAT rep1, EXTTRAIL ./dirdat/jk, BEGIN NOW
#37 — 添加集成模式 Replicat(Integrated Replicat)
GGSCI> ADD REPLICAT rep1, INTEGRATED, EXTTRAIL ./dirdat/rt, BEGIN NOW
集成模式 Replicat 使用数据库内置的 inbound server 进行应用。
#38 — 添加带检查点表的 Replicat
GGSCI> ADD REPLICAT rep1, INTEGRATED, EXTTRAIL ./dirdat/rt,
CHECKPOINTTABLE ggs.checkpoint, BEGIN NOW
推荐:使用检查点表而非文件存储 checkpoint,更可靠且支持 RAC 环境。
#39 — 注册集成模式 Replicat 到数据库
GGSCI> DBLOGIN USERIDALIAS ggs_alias GGSCI> REGISTER REPLICAT rep1, DATABASE
#40 — 添加初始加载 Replicat
GGSCI> ADD REPLICAT initrep1, SPECIALRUN, EXTTRAIL ./dirdat/jk
SPECIALRUN 模式运行一次即结束,用于初始加载。
#41 — 启动 Replicat
GGSCI> START REPLICAT rep1
#42 — 从指定 SCN 启动 Replicat
GGSCI> START REPLICAT rep1, ATCSN 12345678
GGSCI> START REPLICAT rep1, AFTERCSN 12345678
ATCSN:从指定 SCN 开始应用(包含该 SCN)AFTERCSN:从指定 SCN 之后开始应用
#43 — 停止 Replicat
GGSCI> STOP REPLICAT rep1
#44 — 强制停止 Replicat
GGSCI> STOP REPLICAT rep1, FORCE
#45 — 修改 Replicat 起始位置
GGSCI> ALTER REPLICAT rep1, BEGIN NOW
GGSCI> ALTER REPLICAT rep1, SCN 12345678
#46 — 查看 Replicat 基本信息
GGSCI> INFO REPLICAT rep1
#47 — 查看 Replicat 详细信息
GGSCI> INFO REPLICAT rep1, DETAIL
#48 — 查看 Replicat Checkpoint
GGSCI> INFO REPLICAT rep1, SHOWCH
#49 — 查看 Replicat 统计信息
GGSCI> STATS REPLICAT rep1 GGSCI> STATS REPLICAT rep1, TOTAL, DAILY, HOURLY GGSCI> STATS REPLICAT rep1, TABLE schema.table
#50 — 查看 Replicat 延迟
GGSCI> LAG REPLICAT rep1
五、Trail 文件管理命令(#51 ~ #58)
#51 — 添加本地 Trail 文件
GGSCI> ADD EXTTRAIL ./dirdat/jk, EXTRACT ext1, MEGABYTES 1000
MEGABYTES 指定单个 Trail 文件大小, 1000 MB。
#52 — 添加远程 Trail 文件
GGSCI> ADD RMTTRAIL ./dirdat/jk, EXTRACT pump1, MEGABYTES 1000
用于 Data Pump 向目标端推送数据的 Trail。
#53 — 查看本地 Trail 信息
GGSCI> INFO EXTTRAIL * Extract Trail: /soft/dirdat/dw Seqno Length: 9 Flip Seqno Length: no Extract: DPE1 Seqno: 8 RBA: 184607325 File Size: 1024M Extract Trail: /ogg19c/dirdat/ss Seqno Length: 9 Flip Seqno Length: no Extract: EXT1 Seqno: 7 RBA: 184607287 File Size: 1024M GGSCI> INFO EXTTRAIL ./dirdat/jk
#54 — 查看远程 Trail 信息
GGSCI> INFO RMTTRAIL * GGSCI> INFO RMTTRAIL ./dirdat/rt
#55 — 修改 Trail 文件大小
--先停掉进程
GGSCI> ALTER EXTTRAIL ./dirdat/lt, EXTRACT ext1, MEGABYTES 2000
GGSCI> ALTER EXTTRAIL /goldengate/ogg19c/dirdat/pr,EXTRACT EXTU1,MEGABYTES 2000
GGSCI> ALTER RMTTRAIL ./dirdat/rt, EXTRACT pump1, MEGABYTES 2000
#56 — 删除 Trail 文件定义
GGSCI> DELETE EXTTRAIL ./dirdat/lt
GGSCI> DELETE RMTTRAIL ./dirdat/rt
#57 — 清理旧 Trail 文件
-- Manager 参数中自动清理
PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 3
-- 手动清理(在 GGSCI 中)
GGSCI> SHELL rm ./dirdat/aa000000*
⚠️ 手动删除前确认所有进程已不再需要该 Trail 文件。
#58 — 查看 Trail 文件中的数据内容(概览)
GGSCI> SEND EXTRACT ext1, REPORT
该命令会生成当前 Extract 的详细报告,包含 Trail 文件信息。
六、补充日志与检查点管理命令(#59 ~ #70)
#59 — 添加表级补充日志
GGSCI> DBLOGIN USERIDALIAS ggs_alias GGSCI> ADD TRANDATA schema.table
为表添加无条件补充日志(Unconditional Supplemental Log),确保 UPDATE 操作能捕获所有列的旧值。
#60 — 添加表级补充日志(带主键指定)
GGSCI> ADD TRANDATA schema.table, COLS (col1, col2) GGSCI> ADD TRANDATA schema.table, NOKEY
COLS:指定补充日志列NOKEY:不记录主键列
#61 — 删除表级补充日志
GGSCI> DELETE TRANDATA schema.table
#62 — 查看表级补充日志
GGSCI> INFO TRANDATA schema.table GGSCI> INFO TRANDATA schema.*
#63 — 添加 Schema 级补充日志
GGSCI> ADD SCHEMATRANDATA schema
推荐:Schema 级补充日志自动覆盖新增表,减少运维成本。在 Integrated Capture 模式下优先使用。
#64 — 删除 Schema 级补充日志
GGSCI> DELETE SCHEMATRANDATA schema
#65 — 查看 Schema 级补充日志
GGSCI> INFO SCHEMATRANDATA schema
#66 — 添加检查点表
GGSCI> DBLOGIN USERIDALIAS ogg_alias GGSCI> ADD CHECKPOINTTABLE ogg.checkpoint
#67 — 删除检查点表
GGSCI> DELETE CHECKPOINTTABLE ogg.checkpoint
#68 — 查看检查点表信息
GGSCI> INFO CHECKPOINTTABLE ogg.checkpoint
#69 — 刷新检查点
GGSCI> FLUSH EXTRACT ext1
GGSCI> FLUSH REPLICAT rep1
#70 — 查看数据库端补充日志状态(SQL)
-- 数据库级别
SQL> SELECT supplemental_log_data_min, supplemental_log_data_pk,
supplemental_log_data_ui FROM v$database;
-- 表级别
SQL> SELECT * FROM dba_log_groups WHERE owner = 'SCHEMA';
七、SEND 交互命令(#71 ~ #80)
SEND 命令用于与运行中的进程交互,获取实时状态或执行控制操作。
#71 — 获取 Extract 延迟
GGSCI> SEND EXTRACT ext1, GETLAG
#72 — 获取 Replicat 延迟
GGSCI> SEND REPLICAT rep1, GETLAG
#73 — 查看 Extract 详细状态
GGSCI> SEND EXTRACT ext1, STATUS
#74 — 查看 Replicat 详细状态
GGSCI> SEND REPLICAT rep1, STATUS
#75 — 显示 Extract 正在处理的未提交事务
GGSCI> SEND EXTRACT ext1, SHOWTRANS
GGSCI> SEND EXTRACT ext1, SHOWTRANS COUNT 20
Sending SHOWTRANS request to EXTRACT EXT1 ...
------------------------------------------------------------
XID: 0.25.20.3546359
Items: 0
Extract: EXT1
Redo Thread: 1
Start Time: 2026-08-11:15:38:29
SCN: 9.1092428992 (39747134656)
Redo Seq: 254309
Redo RBA: 404144788
Status: Running
输出长事务的 XID、SCN 范围、Redo 块数等信息,是排查 Extract 延迟的利器。
#76 — 跳过异常事务
-- 跳过当前事务
GGSCI> SEND EXTRACT ext1, SKIPTRANS
-- 跳过指定事务
GGSCI> SEND EXTRACT ext1, SKIPTRANS 5.4.1234
⚠️ 跳过事务会导致数据不一致,仅在确认事务可丢弃时使用。
#77 — 强制提交长事务
GGSCI> SEND EXTRACT ext1, FORCETRANS
强制 Extract 将当前未提交的事务写入 Trail,可能导致部分数据不一致。
#78 — 获取 Extract 事务日志信息
GGSCI> SEND EXTRACT ext1, GETTRANSLOGINFO
显示 Extract 当前读取的 redo log 详细信息(序列号、SCN、线程等)。
#79 — 获取 TCP 传输统计
GGSCI> SEND EXTRACT DPE1, GETTCPSTATS
Sending GETTCPSTATS request to EXTRACT DPE1 ...
RMTTRAIL /soft/dirdat/dw000000008, RBA 218543055
Session Index 0
Stats started 2026/08/04 17:35:36.367715 22:06:13.894590
Local address 192.168.221.86:27444 Remote address 192.168.217.125:7812
Buffer Size <auto> Flush Size 27985 Socket SND Size <auto>
Streaming Yes
Inbound Msgs 59889 Bytes 832139, 1 bytes/second
Outbound Msgs 711495 Bytes 910984018, 1523 bytes/second
Recvs 119778
Sends 711495
Avg bytes per recv 6, per msg 13
Avg bytes per send 1280, per msg 1280
Recv Wait Time 100440616, per msg 1677, per recv 838
Send Wait Time 7061859, per msg 9, per send 9
Data compression is enabled
Compress CPU Time 0:00:00.000000
Compress time 0:00:34.343968, Threshold 1000
Uncompressed bytes 2083966019
Compressed bytes 888226182
Compression ratio 86%, 185741877 bytes/second
用于 Data Pump 进程,查看网络传输统计。
#80 — 查看 Replicat 丢弃文件
GGSCI> VIEW DISCARD rep1.dsc
查看 Replicat 丢弃(discard)文件,记录了无法应用的操作。如果 GGSCI 中没有 VIEW DISCARD 命令,丢弃文件(.dsc)需通过以下方式查看:
-- 方式 1:通过 SHELL 查看(推荐)
GGSCI> SHELL cat ./dirrpt/rep1.dsc
GGSCI> SHELL tail -100 ./dirrpt/rep1.dsc
-- 方式 2:通过 SEND 获取丢弃统计
GGSCI> SEND REPLICAT rep1, STATUS
-- 方式 3:直接在操作系统层面查看
$ cat /goldengate/ogg19c/dirrpt/rep1.dsc
八、Logdump 命令(#81 ~ #95)
Logdump 是 OGG 内置的 Trail 文件分析工具,用于查看、过滤和诊断 Trail 文件中的数据记录。
#81 — 启动 Logdump
cd /goldengate/ogg19c
./logdump
进入后提示符变为 Logdump>。
#82 — 打开 Trail 文件
Logdump> OPEN ./dirdat/jk000000018


#83 — 关闭当前文件
Logdump> CLOSE
#84 — 切换到下一个 Trail 文件
Logdump> NEXTTRAIL
#85 — 查看文件头信息
Logdump> FILEHEADER
Logdump> GHDR ON -- 开启记录头显示
Logdump> GHDR OFF -- 关闭记录头显示
#86 — 设置记录显示级别
Logdump> DETAIL ON -- 显示记录头信息
Logdump> DETAIL DATA -- 显示记录头 + 数据内容
Logdump> DETAIL OFF -- 最小化显示
#87 — 显示/设置用户 Token
Logdump> USERTOKEN ON -- 显示用户 Token
Logdump> USERTOKEN OFF -- 关闭 Token 显示
#88 — 定位到指定 RBA
Logdump> POS 0 -- 定位到文件开头
Logdump> POS 1234567 -- 定位到指定 RBA
#89 — 浏览记录
Logdump> NEXT -- 下一条记录
Logdump> PREV -- 上一条记录
Logdump> NEXT 10 -- 向后跳 10 条
Logdump> PREV 5 -- 向前跳 5 条
#90 — 扫描记录头
Logdump> SCANFORHEADER -- 扫描下一个记录头(缩写 SFH)
Logdump> SFH -- 等同于 SCANFORHEADER
在 Trail 文件损坏时可用于定位有效记录。
#91 — 扫描 Marker 记录
Logdump> SCANFORMARKER
Marker 记录通常为 DDL 操作或事务边界标记。
#92 — 过滤记录
-- 按表名过滤
Logdump> FILTER INCLUDE FILE SCOTT.EMP
Logdump> FILTER EXCLUDE FILE SCOTT.BONUS
-- 按操作类型过滤
Logdump> FILTER INCLUDE OP_TYPE INSERT
Logdump> FILTER INCLUDE OP_TYPE UPDATE
-- 按记录类型过滤
Logdump> FILTER INCLUDE RECTYPE 5
-- 查看当前过滤条件
Logdump> FILTER SHOW
-- 清除所有过滤条件
Logdump> FILTER CLEAR
#93 — 统计记录数量
Logdump> COUNT -- 统计记录总数(受 FILTER 影响)
Logdump> COUNT DETAIL -- 按类型详细统计
#94 — 设置记录显示长度
Logdump> RECLEN 2048 -- 设置显示长度为 2048 字节
#95 — 将 Logdump 输出记录到文件
Logdump> LOG /tmp/logdump_output.txt -- 开始记录
Logdump> LOG CLOSE -- 关闭记录
九、其他工具命令(#96 ~ #100)
#96 — defgen — 生成表定义文件
# 创建参数文件 dirprm/defgen.prm
cat > dirprm/defgen.prm << 'EOF'
DEFSFILE /ogg19c/dirdef/goldengate.def,FORMAT RELEASE 12.2,PURGE
USERIDALIAS ggs_alias
TABLE SCOTT.EMP;
TABLE SCOTT.DEPT;
EOF
# 执行 defgen
./defgen paramfile dirprm/defgen.prm
用途:当源端和目标端数据库类型不同(如 Oracle → MySQL)或表结构不同时,需在源端生成 .def 定义文件,复制到目标端供 Replicat 使用。不过 OGG19c 已经将表结构定义文件包含在 trail 文件中了,可以不用单独生成传递了。
参数文件中关键字段:
| 参数 | 说明 |
|---|---|
DEFSFILE |
输出定义文件路径 |
USERIDALIAS |
数据库连接别名 |
TABLE |
需要生成定义的表 |
SOURCEISTARGET |
源端和目标端为同一数据库时使用 |
#97 — checkprm — 参数文件语法校验
# 校验 Extract 参数文件
./checkprm dirprm/ext1.prm
2026-08-11 16:21:58 INFO OGG-02095 Successfully set environment variable NLS_LANG=AMERICAN_AMERICA.AL32UTF8.
2026-08-11 16:21:58 INFO OGG-10183 Parameter file dirprm/ext1.prm: Validity check: PASS.
Runtime parameter validation is not reflected in the above check.
# 校验 Replicat 参数文件
./checkprm dirprm/rep1.prm
用途:在不启动进程的情况下验证参数文件语法,检查拼写错误、无效参数、缺失必需参数等。修改参数文件后强烈建议先运行 checkprm。
⚠️
checkprm只验证语法,不检查数据库连通性。
#98 — keygen — 生成加密密钥
# 生成 128 位密钥
./keygen 128 1
# 生成 256 位密钥
./keygen 256 1
# 生成 3 个 192 位密钥
./keygen 192 3
输出示例:
0xA1B2C3D4E5F6071829304A5B6C7D8E9F
使用场景:
-
Trail 文件加密(Extract/Replicat 参数文件中):
ENCRYPT TRAIL AES128 KEY 0xA1B2C3D4E5F6071829304A5B6C7D8E9F -
密码加密(配合
encrypt工具):./encrypt password mypwd ALGORITHM AES128 KEY 0xA1B2C3D4E5F6071829304A5B6C7D8E9F -
参数文件中引用:
ENCRYPTKEY 0xA1B2C3D4E5F6071829304A5B6C7D8E9F
#99 — encrypt — 密码加密工具
# 使用 AES128 加密密码
./encrypt password mypwd ALGORITHM AES128 ENCRYPTKEY mykey
# 使用生成的密钥加密
./keygen 128 1
# 假设输出: 0xA1B2C3D4E5F6071829304A5B6C7D8E9F
./encrypt password mypwd ALGORITHM AES128 KEY 0xA1B2C3D4E5F6071829304A5B6C7D8E9F
加密后的密码可在参数文件中使用:
USERID ggs_admin, PASSWORD AACAAAAAAAAAAAJAUCEQCEQGGBZAAEE, ENCRYPTKEY mykey
#100 — convchk — 检查点文件转换工具
# 转换检查点文件格式(OGG 升级时使用)
./convchk ./dirchk/ext1.cpr ./dirchk/ext1.cpr
# 从检查点文件转换为检查点表
./convchk paramfile dirprm/convchk.prm
典型 convchk 参数文件:
CHECKPOINTFILE ./dirchk/ext1.cpr
CHECKPOINTTABLE ggs.checkpoint
USERIDALIAS ggs_alias
使用场景:
- OGG 版本升级后检查点文件格式不兼容
- 从文件检查点迁移到表检查点(推荐用于 RAC 环境)
- 检查点文件损坏时恢复
附录 A:经典模式 vs 集成模式对比
| 特性 | Classic Capture | Integrated Capture |
|---|---|---|
| 添加 Extract | ADD EXTRACT ext1, TRANLOG, BEGIN NOW |
ADD EXTRACT ext1, INTEGRATED TRANLOG, BEGIN NOW |
| 添加 Replicat | ADD REPLICAT rep1, EXTTRAIL ./dirdat/rt |
ADD REPLICAT rep1, INTEGRATED, EXTTRAIL ./dirdat/rt |
| 注册数据库 | 不需要 | REGISTER EXTRACT ext1, DATABASE |
| 日志读取方式 | OGG 直接读取 redo log 文件 | 数据库 LogMiner Server 提供 |
| 数据类型支持 | 部分受限(LOB、SecureFile 等) | 全面支持 |
| DDL 支持 | 需额外配置 trigger | 原生支持 |
| RAC 支持 | 需额外配置 | 原生支持 |
| 数据库版本要求 | 所有 Oracle 版本 | Oracle 11.2.0.4+ |
| 数据库端开销 | 较小 | 有一定开销(LogMiner) |
| 参数文件关键字 | TRANLOG |
INTEGRATED TRANLOG |
| 19c 状态 | 仍可用 | Oracle 推荐模式 |
附录 B:OGG 19c 完整配置流程
源端配置(Integrated Capture)
-- 1. 数据库准备
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER DATABASE FORCE LOGGING;
SQL> ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH;
SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(
grantee=>'GGS_ADMIN', privilege_type=>'CAPTURE',
grant_select_privileges=>TRUE, do_grants=>TRUE);
-- 2. GGSCI 操作
GGSCI> DBLOGIN USERIDALIAS ggs_alias
GGSCI> ADD SCHEMATRANDATA scott
GGSCI> ADD EXTRACT ext1, INTEGRATED TRANLOG, BEGIN NOW
GGSCI> REGISTER EXTRACT ext1, DATABASE
GGSCI> ADD EXTTRAIL ./dirdat/lt, EXTRACT ext1, MEGABYTES 1000
GGSCI> EDIT PARAMS ext1
ext1 参数文件:
EXTRACT ext1
USERIDALIAS ggs_alias
INTEGRATED TRANLOG
EXTTRAIL ./dirdat/lt
TABLE scott.*;
目标端配置(Integrated Replicat)
GGSCI> DBLOGIN USERIDALIAS ggs_alias
GGSCI> ADD CHECKPOINTTABLE ggs.checkpoint
GGSCI> ADD REPLICAT rep1, INTEGRATED, EXTTRAIL ./dirdat/rt,
CHECKPOINTTABLE ggs.checkpoint, BEGIN NOW
GGSCI> EDIT PARAMS rep1
rep1 参数文件:
REPLICAT rep1
USERIDALIAS ggs_alias
INTEGRATED
ASSUMETARGETDEFS
EXTTRAIL ./dirdat/rt
MAP scott.*, TARGET scott.*;
Data Pump 配置
GGSCI> ADD EXTRACT pump1, EXTTRAILSOURCE ./dirdat/lt, BEGIN NOW
GGSCI> ADD RMTTRAIL ./dirdat/rt, EXTRACT pump1, MEGABYTES 1000
GGSCI> EDIT PARAMS pump1
pump1 参数文件:
EXTRACT pump1
USERIDALIAS ggs_alias
RMTHOST target_host, MGRPORT 7809, COMPRESS
RMTTRAIL ./dirdat/rt
PASSTHRU
TABLE scott.*;
附录 C:常用排错流程
1. 日常巡检(每日)
GGSCI> INFO ALL -- 检查所有进程状态
GGSCI> LAG EXTRACT ext1 -- 检查 Extract 延迟
GGSCI> LAG REPLICAT rep1 -- 检查 Replicat 延迟
GGSCI> STATS EXTRACT ext1, TOTAL -- 检查 Extract 统计
GGSCI> STATS REPLICAT rep1, TOTAL -- 检查 Replicat 统计
2. 进程异常排查
-- Step 1: 查看进程状态
GGSCI> INFO ALL
-- Step 2: 查看进程报告(错误日志)
GGSCI> VIEW REPORT ext1
-- Step 3: 查看 GoldenGate 事件日志
GGSCI> VIEW GGSEVT
-- Step 4: 查看 Checkpoint 信息
GGSCI> INFO EXTRACT ext1, SHOWCH
-- Step 5: 查看丢弃文件
GGSCI> VIEW rep1.dsc
3. Extract 延迟排查
-- 检查延迟
GGSCI> LAG EXTRACT ext1
-- 查看未提交事务
GGSCI> SEND EXTRACT ext1, SHOWTRANS
-- 查看事务日志信息
GGSCI> SEND EXTRACT ext1, GETTRANSLOGINFO
-- 查看详细状态
GGSCI> SEND EXTRACT ext1, STATUS
4. Trail 文件数据验证(Logdump)
Logdump> OPEN ./dirdat/aa000000001 Logdump> GHDR ON Logdump> DETAIL DATA Logdump> USERTOKEN ON Logdump> FILTER INCLUDE FILE SCOTT.EMP Logdump> COUNT Logdump> POS 0 Logdump> NEXT Logdump> NEXT Logdump> CLOSE
5. 数据库端验证
-- 检查补充日志
SQL> SELECT supplemental_log_data_min FROM v$database;
-- 检查已注册的 Extract
SQL> SELECT capture_name, status FROM dba_capture WHERE capture_name LIKE 'OGG$%';
-- 检查已注册的 Replicat
SQL> SELECT apply_name, status FROM dba_apply WHERE apply_name LIKE 'OGG$%';
-- 检查 GoldenGate 相关等待事件
SQL> SELECT event, wait_class, total_waits
FROM v$system_event
WHERE event LIKE '%GoldenGate%';
命令速查索引
| 编号 | 命令 | 说明 |
|---|---|---|
| #1 | ./ggsci |
进入 GGSCI |
| #2 | INFO ALL |
查看所有进程状态 |
| #3 | VERSIONS |
查看数据库及操作系统版本 |
| #4 | DBLOGIN USERID ... PASSWORD ... |
明文登录 |
| #5 | DBLOGIN USERIDALIAS alias |
别名登录 |
| #6 | DBLOGIN USERIDALIAS pdb_alias |
PDB 登录 |
| #7 | SET EDITOR vi |
设置编辑器 |
| #8 | SHELL command |
执行 OS 命令 |
| #9 | OBEY file.oby |
执行脚本 |
| #10 | HISTORY / FC / EXIT |
历史与退出 |
| #11 | EDIT PARAMS MGR |
编辑 MGR 参数 |
| #12 | START MGR |
启动 MGR |
| #13 | STOP MGR |
停止 MGR |
| #14 | INFO MGR |
查看 MGR 状态 |
| #15 | INFO MGR, DETAIL |
MGR 详细信息 |
| #16 | VIEW REPORT MGR |
查看 MGR 运行日志 |
| #17 | DELETE MGR |
删除 MGR |
| #18 | VIEW GGSEVT |
查看事件日志 |
| #19 | ADD EXTRACT ext1, TRANLOG, BEGIN NOW |
添加经典 Extract |
| #20 | ADD EXTRACT ext1, INTEGRATED TRANLOG, BEGIN NOW |
添加集成 Extract |
| #21 | REGISTER EXTRACT ext1, DATABASE |
注册集成 Extract |
| #22 | REGISTER EXTRACT ext1, DATABASE CONTAINER (pdb1) |
PDB 注册 |
| #23 | UNREGISTER EXTRACT ext1, DATABASE |
取消注册 |
| #24 | ADD EXTRACT init1, SOURCEISTABLE |
初始加载 Extract |
| #25 | ADD EXTRACT pump1, EXTTRAILSOURCE ... |
添加 Data Pump |
| #26 | ADD EXTRACT ext1, ..., SCN 12345678 |
指定 SCN 启动 |
| #27 | START EXTRACT ext1 |
启动 Extract |
| #28 | STOP EXTRACT ext1 |
停止 Extract |
| #29 | STOP EXTRACT ext1, FORCE |
强制停止 |
| #30 | ALTER EXTRACT ext1, BEGIN NOW / SCN ... |
修改起始位置 |
| #31 | INFO EXTRACT ext1 |
查看 Extract 信息 |
| #32 | INFO EXTRACT ext1, DETAIL |
Extract 详细信息 |
| #33 | INFO EXTRACT ext1, SHOWCH |
查看 Checkpoint |
| #34 | STATS EXTRACT ext1 |
统计信息 |
| #35 | LAG EXTRACT ext1 |
延迟信息 |
| #36 | ADD REPLICAT rep1, EXTTRAIL ... |
添加经典 Replicat |
| #37 | ADD REPLICAT rep1, INTEGRATED, EXTTRAIL ... |
添加集成 Replicat |
| #38 | ADD REPLICAT rep1, ..., CHECKPOINTTABLE ... |
带检查点表 |
| #39 | REGISTER REPLICAT rep1, DATABASE |
注册集成 Replicat |
| #40 | ADD REPLICAT initrep1, SPECIALRUN |
初始加载 Replicat |
| #41 | START REPLICAT rep1 |
启动 Replicat |
| #42 | START REPLICAT rep1, ATCSN / AFTERCSN ... |
指定 SCN 启动 |
| #43 | STOP REPLICAT rep1 |
停止 Replicat |
| #44 | STOP REPLICAT rep1, FORCE |
强制停止 |
| #45 | ALTER REPLICAT rep1, BEGIN NOW / SCN ... |
修改起始位置 |
| #46 | INFO REPLICAT rep1 |
查看 Replicat 信息 |
| #47 | INFO REPLICAT rep1, DETAIL |
Replicat 详细信息 |
| #48 | INFO REPLICAT rep1, SHOWCH |
查看 Checkpoint |
| #49 | STATS REPLICAT rep1 |
统计信息 |
| #50 | LAG REPLICAT rep1 |
延迟信息 |
| #51 | ADD EXTTRAIL ./dirdat/lt, EXTRACT ext1 |
添加本地 Trail |
| #52 | ADD RMTTRAIL ./dirdat/rt, EXTRACT pump1 |
添加远程 Trail |
| #53 | INFO EXTTRAIL * |
查看本地 Trail |
| #54 | INFO RMTTRAIL * |
查看远程 Trail |
| #55 | ALTER EXTTRAIL ..., MEGABYTES 200 |
修改 Trail 大小 |
| #56 | DELETE EXTTRAIL / RMTTRAIL |
删除 Trail 定义 |
| #57 | PURGEOLDEXTRACTS / SHELL rm |
清理旧 Trail |
| #58 | SEND EXTRACT ext1, REPORT |
生成报告 |
| #59 | ADD TRANDATA schema.table |
添加表级补充日志 |
| #60 | ADD TRANDATA schema.table, COLS (...) |
指定补充日志列 |
| #61 | DELETE TRANDATA schema.table |
删除表级补充日志 |
| #62 | INFO TRANDATA schema.table |
查看表级补充日志 |
| #63 | ADD SCHEMATRANDATA schema |
添加 Schema 补充日志 |
| #64 | DELETE SCHEMATRANDATA schema |
删除 Schema 补充日志 |
| #65 | INFO SCHEMATRANDATA schema |
查看 Schema 补充日志 |
| #66 | ADD CHECKPOINTTABLE ggs.checkpoint |
添加检查点表 |
| #67 | DELETE CHECKPOINTTABLE ggs.checkpoint |
删除检查点表 |
| #68 | INFO CHECKPOINTTABLE ggs.checkpoint |
查看检查点表 |
| #69 | FLUSH EXTRACT / REPLICAT |
刷新检查点 |
| #70 | SELECT ... FROM v$database / dba_log_groups |
数据库端验证 |
| #71 | SEND EXTRACT ext1, GETLAG |
获取 Extract 延迟 |
| #72 | SEND REPLICAT rep1, GETLAG |
获取 Replicat 延迟 |
| #73 | SEND EXTRACT ext1, STATUS |
Extract 详细状态 |
| #74 | SEND REPLICAT rep1, STATUS |
Replicat 详细状态 |
| #75 | SEND EXTRACT ext1, SHOWTRANS |
显示未提交事务 |
| #76 | SEND EXTRACT ext1, SKIPTRANS |
跳过异常事务 |
| #77 | SEND EXTRACT ext1, FORCETRANS |
强制提交事务 |
| #78 | SEND EXTRACT ext1, GETTRANSLOGINFO |
获取事务日志信息 |
| #79 | SEND EXTRACT pump1, GETTCPSTATS |
TCP 传输统计 |
| #80 | VIEW DISCARD rep1.dsc |
查看丢弃文件 |
| #81 | ./logdump |
启动 Logdump |
| #82 | OPEN ./dirdat/aa000000001 |
打开 Trail 文件 |
| #83 | CLOSE |
关闭文件 |
| #84 | NEXTTRAIL |
切换到下一个 Trail |
| #85 | FILEHEADER / GHDR ON |
查看文件头 |
| #86 | DETAIL ON / DETAIL DATA / DETAIL OFF |
设置显示级别 |
| #87 | USERTOKEN ON / OFF |
显示用户 Token |
| #88 | POS 0 / POS <rba> |
定位到指定 RBA |
| #89 | NEXT / PREV / NEXT n / PREV n |
浏览记录 |
| #90 | SCANFORHEADER / SFH |
扫描记录头 |
| #91 | SCANFORMARKER |
扫描 Marker 记录 |
| #92 | FILTER INCLUDE/EXCLUDE ... |
过滤记录 |
| #93 | COUNT / COUNT DETAIL |
统计记录 |
| #94 | RECLEN 2048 |
设置显示长度 |
| #95 | LOG / LOG CLOSE |
输出到文件 |
| #96 | defgen paramfile dirprm/defgen.prm |
生成表定义文件 |
| #97 | checkprm dirprm/ext1.prm |
校验参数文件 |
| #98 | keygen 128 1 / keygen 256 1 |
生成加密密钥 |
| #99 | encrypt password ... ALGORITHM ... KEY ... |
加密密码 |
| #100 | convchk |
检查点文件转换 |
参考来源:
参考链接
https://docs.oracle.com/en/middleware/goldengate/core/19.1/logdump-ref/viewing-first-record.html https://docs.oracle.com/en/middleware/goldengate/core/19.1/gclir/command-line-interfaces.html
全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~
欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
——————————————————————————






