本文档详细介绍Oracle GoldenGate的监控与管理方法,风哥教程参考Oracle官方文档GoldenGate部分。更多视频教程www.fgedu.net.cn
Part01-基础概念与理论知识
1.1 监控概述
Oracle GoldenGate的监控与管理是确保数据复制系统稳定运行的关键环节,通过监控可以及时发现和解决问题,保证数据复制的连续性和一致性。学习交流加群风哥微信: itpux-com
监控的主要目标:
- 确保所有GoldenGate进程正常运行
- 监控数据复制的延迟情况
- 及时发现和解决错误
- 优化系统性能
- 确保数据一致性
1.2 监控工具
Oracle GoldenGate提供了多种监控工具:
- GGSCi命令行工具:用于基本的进程管理和监控
- Oracle GoldenGate Director:图形化管理工具
- Oracle Enterprise Manager:企业级监控解决方案
- 自定义监控脚本:根据业务需求编写的监控脚本
- 第三方监控工具:如Zabbix、Nagios等
1.3 监控指标
需要监控的关键指标:
- 进程状态:确保所有进程正常运行
- 复制延迟:监控数据复制的延迟情况
- 数据量:监控复制的数据量
- 错误率:监控复制过程中的错误率
- 系统资源:监控CPU、内存、磁盘等系统资源使用情况
- 网络状态:监控网络连接和带宽使用情况
Part02-生产环境规划与建议
2.1 监控策略
生产环境的监控策略:
- 实时监控:实时监控所有GoldenGate进程的状态
- 定期检查:定期检查复制延迟和数据一致性
- 日志分析:定期分析GoldenGate日志,发现潜在问题
- 性能监控:监控系统性能,及时发现性能瓶颈
- 容量规划:根据监控数据进行容量规划
2.2 告警设置
告警设置建议:
- 进程状态告警:当进程异常时触发告警
- 复制延迟告警:当复制延迟超过阈值时触发告警
- 错误告警:当复制过程中出现错误时触发告警
- 系统资源告警:当系统资源使用超过阈值时触发告警
- 网络状态告警:当网络连接异常时触发告警
2.3 日志管理
日志管理建议:
- 定期备份日志:确保日志的安全存储
- 日志轮转:定期轮转日志,避免日志文件过大
- 日志分析:定期分析日志,发现潜在问题
- 日志清理:定期清理过期日志,释放存储空间
- 日志监控:监控日志中的错误信息
Part03-生产环境项目实施方案
GoldenGate监控与管理的实施步骤:
- 配置监控工具
- 设置监控指标和告警
- 实施日志管理
- 定期检查和维护
- 优化监控策略
Part04-生产案例与实战讲解
4.1 使用GGSCi命令行工具监控
# 连接到GoldenGate
su – ggsuser
cd /oracle/gg19
./ggsci
# 输出日志
Oracle GoldenGate Command Interpreter for Oracle
Version 19.1.0.0.0 OGGCORE_19.1.0.0.0_PLATFORMS_190524.1007
Linux, x64, 64bit (optimized), Oracle 19c on May 24 2019 10:16:11
Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
GGSCI (fgedu.net.cn) 1>
# 查看所有进程状态
INFO ALL
# 输出日志
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 00:00:05
EXTRACT RUNNING DP1 00:00:00 00:00:03
REPLICAT RUNNING REP1 00:00:00 00:00:02
# 查看特定进程的详细信息
INFO EXT1 DETAIL
# 输出日志
EXTRACT EXT1 Last Started 2026-04-01 10:00:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:02 ago)
Process ID 12345
Log Read Checkpoint Oracle Redo Logs
2026-04-01 10:05:00 Seqno 1234, RBA 567890
SCN 1234567890 (0x4651234a)
# 查看进程报告
VIEW REPORT EXT1
# 查看当前参数
SHOW PARAMS EXT1
# 输出日志
EXTRACT EXT1
USERID ggsadmin, PASSWORD ********
EXTTRAIL /oracle/gg19/dirdat/et
TABLE fgedu.emp;
su – ggsuser
cd /oracle/gg19
./ggsci
# 输出日志
Oracle GoldenGate Command Interpreter for Oracle
Version 19.1.0.0.0 OGGCORE_19.1.0.0.0_PLATFORMS_190524.1007
Linux, x64, 64bit (optimized), Oracle 19c on May 24 2019 10:16:11
Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
GGSCI (fgedu.net.cn) 1>
# 查看所有进程状态
INFO ALL
# 输出日志
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 00:00:05
EXTRACT RUNNING DP1 00:00:00 00:00:03
REPLICAT RUNNING REP1 00:00:00 00:00:02
# 查看特定进程的详细信息
INFO EXT1 DETAIL
# 输出日志
EXTRACT EXT1 Last Started 2026-04-01 10:00:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:02 ago)
Process ID 12345
Log Read Checkpoint Oracle Redo Logs
2026-04-01 10:05:00 Seqno 1234, RBA 567890
SCN 1234567890 (0x4651234a)
# 查看进程报告
VIEW REPORT EXT1
# 查看当前参数
SHOW PARAMS EXT1
# 输出日志
EXTRACT EXT1
USERID ggsadmin, PASSWORD ********
EXTTRAIL /oracle/gg19/dirdat/et
TABLE fgedu.emp;
4.2 使用Oracle Enterprise Manager监控
# 登录Oracle Enterprise Manager
# 打开浏览器,访问https://fgedu.net.cn:7809/em
# 导航到GoldenGate监控页面
# 数据库 → 管理 → GoldenGate
# 查看GoldenGate实例状态
# 实例 → 状态
# 查看进程状态
# 进程 → 所有进程
# 查看复制延迟
# 性能 → 复制延迟
# 查看错误信息
# 告警 → 错误
# 打开浏览器,访问https://fgedu.net.cn:7809/em
# 导航到GoldenGate监控页面
# 数据库 → 管理 → GoldenGate
# 查看GoldenGate实例状态
# 实例 → 状态
# 查看进程状态
# 进程 → 所有进程
# 查看复制延迟
# 性能 → 复制延迟
# 查看错误信息
# 告警 → 错误
4.3 使用自定义脚本监控
# 创建监控脚本
vi /oracle/gg19/scripts/monitor_gg.sh
# 添加以下内容
#!/bin/bash
# monitor_gg.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
GG_HOME=/oracle/gg19
LOG_FILE=/oracle/gg19/logs/monitor_gg.log
echo “$(date) – GoldenGate监控开始” >> $LOG_FILE
# 检查所有进程状态
$GG_HOME/ggsci << EOF >> $LOG_FILE
INFO ALL
EOF
# 检查复制延迟
echo “复制延迟检查:” >> $LOG_FILE
$GG_HOME/ggsci << EOF >> $LOG_FILE
INFO REP1, DETAIL
EOF
# 检查错误信息
echo “错误信息检查:” >> $LOG_FILE
$GG_HOME/ggsci << EOF >> $LOG_FILE
VIEW REPORT REP1
EOF
echo “$(date) – GoldenGate监控结束” >> $LOG_FILE
echo “====================================” >> $LOG_FILE
# 保存并退出
# 给脚本添加执行权限
chmod +x /oracle/gg19/scripts/monitor_gg.sh
# 执行监控脚本
/oracle/gg19/scripts/monitor_gg.sh
# 输出日志
2026-04-01 10:00:00 – GoldenGate监控开始
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 00:00:05
EXTRACT RUNNING DP1 00:00:00 00:00:03
REPLICAT RUNNING REP1 00:00:00 00:00:02
复制延迟检查:
REPLICAT REP1 Last Started 2026-04-01 10:00:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Process ID 67890
Log Read Checkpoint File /oracle/gg19/dirdat/rt000001
2026-04-01 10:00:30 RBA 123456
错误信息检查:
***********************************************************************
* Oracle GoldenGate Delivery Report *
* *
* REP1 *
***********************************************************************
# 配置定时执行
crontab -e
# 添加以下内容
*/5 * * * * /oracle/gg19/scripts/monitor_gg.sh
# 保存并退出
vi /oracle/gg19/scripts/monitor_gg.sh
# 添加以下内容
#!/bin/bash
# monitor_gg.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
GG_HOME=/oracle/gg19
LOG_FILE=/oracle/gg19/logs/monitor_gg.log
echo “$(date) – GoldenGate监控开始” >> $LOG_FILE
# 检查所有进程状态
$GG_HOME/ggsci << EOF >> $LOG_FILE
INFO ALL
EOF
# 检查复制延迟
echo “复制延迟检查:” >> $LOG_FILE
$GG_HOME/ggsci << EOF >> $LOG_FILE
INFO REP1, DETAIL
EOF
# 检查错误信息
echo “错误信息检查:” >> $LOG_FILE
$GG_HOME/ggsci << EOF >> $LOG_FILE
VIEW REPORT REP1
EOF
echo “$(date) – GoldenGate监控结束” >> $LOG_FILE
echo “====================================” >> $LOG_FILE
# 保存并退出
# 给脚本添加执行权限
chmod +x /oracle/gg19/scripts/monitor_gg.sh
# 执行监控脚本
/oracle/gg19/scripts/monitor_gg.sh
# 输出日志
2026-04-01 10:00:00 – GoldenGate监控开始
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 00:00:05
EXTRACT RUNNING DP1 00:00:00 00:00:03
REPLICAT RUNNING REP1 00:00:00 00:00:02
复制延迟检查:
REPLICAT REP1 Last Started 2026-04-01 10:00:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Process ID 67890
Log Read Checkpoint File /oracle/gg19/dirdat/rt000001
2026-04-01 10:00:30 RBA 123456
错误信息检查:
***********************************************************************
* Oracle GoldenGate Delivery Report *
* *
* REP1 *
***********************************************************************
# 配置定时执行
crontab -e
# 添加以下内容
*/5 * * * * /oracle/gg19/scripts/monitor_gg.sh
# 保存并退出
4.4 监控复制延迟
# 使用GGSCi命令查看复制延迟
./ggsci
INFO REP1, LAG
# 输出日志
REPLICAT REP1 Last Started 2026-04-01 10:00:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
# 使用SQL查询复制延迟
sqlplus ggsadmin/ggsadmin
SELECT
group_name,
to_char(last_update_ts, ‘YYYY-MM-DD HH24:MI:SS’) as last_update,
lag_seconds
FROM
ggsadmin.gs$checkpoint
WHERE
group_name = ‘REP1’;
# 输出日志
GROUP_NAME LAST_UPDATE LAG_SECONDS
———- ——————- ———–
REP1 2026-04-01 10:05:00 0
./ggsci
INFO REP1, LAG
# 输出日志
REPLICAT REP1 Last Started 2026-04-01 10:00:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
# 使用SQL查询复制延迟
sqlplus ggsadmin/ggsadmin
SELECT
group_name,
to_char(last_update_ts, ‘YYYY-MM-DD HH24:MI:SS’) as last_update,
lag_seconds
FROM
ggsadmin.gs$checkpoint
WHERE
group_name = ‘REP1’;
# 输出日志
GROUP_NAME LAST_UPDATE LAG_SECONDS
———- ——————- ———–
REP1 2026-04-01 10:05:00 0
4.5 监控错误信息
# 查看错误日志
./ggsci
VIEW ERRORLOG
# 输出日志
2026-04-01 10:00:00 ERROR OGG-01234 Oracle GoldenGate Delivery, rep1.prm:
Oracle Error 1403 encountered.
ORA-01403: no data found
2026-04-01 10:00:01 INFO OGG-01024 Oracle GoldenGate Delivery, rep1.prm:
Repositioning to rba 12345 in seqno 123.
2026-04-01 10:00:02 INFO OGG-01025 Oracle GoldenGate Delivery, rep1.prm:
Repositioning completed successfully.
# 查看进程报告
VIEW REPORT REP1
# 输出日志
***********************************************************************
* Oracle GoldenGate Delivery Report *
* *
* REP1 *
***********************************************************************
2026-04-01 10:00:00 ERROR OGG-01234 Oracle GoldenGate Delivery, rep1.prm:
Oracle Error 1403 encountered.
ORA-01403: no data found
2026-04-01 10:00:01 INFO OGG-01024 Oracle GoldenGate Delivery, rep1.prm:
Repositioning to rba 12345 in seqno 123.
2026-04-01 10:00:02 INFO OGG-01025 Oracle GoldenGate Delivery, rep1.prm:
Repositioning completed successfully.
./ggsci
VIEW ERRORLOG
# 输出日志
2026-04-01 10:00:00 ERROR OGG-01234 Oracle GoldenGate Delivery, rep1.prm:
Oracle Error 1403 encountered.
ORA-01403: no data found
2026-04-01 10:00:01 INFO OGG-01024 Oracle GoldenGate Delivery, rep1.prm:
Repositioning to rba 12345 in seqno 123.
2026-04-01 10:00:02 INFO OGG-01025 Oracle GoldenGate Delivery, rep1.prm:
Repositioning completed successfully.
# 查看进程报告
VIEW REPORT REP1
# 输出日志
***********************************************************************
* Oracle GoldenGate Delivery Report *
* *
* REP1 *
***********************************************************************
2026-04-01 10:00:00 ERROR OGG-01234 Oracle GoldenGate Delivery, rep1.prm:
Oracle Error 1403 encountered.
ORA-01403: no data found
2026-04-01 10:00:01 INFO OGG-01024 Oracle GoldenGate Delivery, rep1.prm:
Repositioning to rba 12345 in seqno 123.
2026-04-01 10:00:02 INFO OGG-01025 Oracle GoldenGate Delivery, rep1.prm:
Repositioning completed successfully.
4.6 管理GoldenGate进程
# 启动进程
./ggsci
START EXT1
# 输出日志
Sending START request to MANAGER …
EXTRACT EXT1 starting
# 停止进程
STOP EXT1
# 输出日志
Sending STOP request to MANAGER …
EXTRACT EXT1 stopping
EXTRACT EXT1 stopped
# 重启进程
RESTART EXT1
# 输出日志
Sending RESTART request to MANAGER …
EXTRACT EXT1 starting
# 查看进程历史
INFO EXT1, HISTORY
# 输出日志
EXTRACT EXT1 Last Started 2026-04-01 10:00:00 Status RUNNING
Start Time Stop Time
2026-04-01 09:00:00 2026-04-01 09:30:00
2026-04-01 08:00:00 2026-04-01 08:30:00
./ggsci
START EXT1
# 输出日志
Sending START request to MANAGER …
EXTRACT EXT1 starting
# 停止进程
STOP EXT1
# 输出日志
Sending STOP request to MANAGER …
EXTRACT EXT1 stopping
EXTRACT EXT1 stopped
# 重启进程
RESTART EXT1
# 输出日志
Sending RESTART request to MANAGER …
EXTRACT EXT1 starting
# 查看进程历史
INFO EXT1, HISTORY
# 输出日志
EXTRACT EXT1 Last Started 2026-04-01 10:00:00 Status RUNNING
Start Time Stop Time
2026-04-01 09:00:00 2026-04-01 09:30:00
2026-04-01 08:00:00 2026-04-01 08:30:00
4.7 日志管理
# 查看日志目录
ls -la /oracle/gg19/dirrpt/
# 输出日志
total 16
-rw-r–r– 1 ggsuser oinstall 1024 Apr 1 10:00 ext1.rpt
-rw-r–r– 1 ggsuser oinstall 1024 Apr 1 10:00 dp1.rpt
-rw-r–r– 1 ggsuser oinstall 1024 Apr 1 10:00 rep1.rpt
# 清理过期日志
find /oracle/gg19/dirrpt/ -name “*.rpt” -mtime +7 -delete
# 配置Manager进程的日志轮转
EDIT PARAMS MGR
# 添加以下内容
PORT 7809
DYNAMICPORTLIST 7810-7909
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 3
AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 3
PURGEOLDEXTRACTS /oracle/gg19/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 7
# 保存并退出
# 重启Manager进程
STOP MANAGER
START MANAGER
# 输出日志
Manager stopped.
Manager started.
ls -la /oracle/gg19/dirrpt/
# 输出日志
total 16
-rw-r–r– 1 ggsuser oinstall 1024 Apr 1 10:00 ext1.rpt
-rw-r–r– 1 ggsuser oinstall 1024 Apr 1 10:00 dp1.rpt
-rw-r–r– 1 ggsuser oinstall 1024 Apr 1 10:00 rep1.rpt
# 清理过期日志
find /oracle/gg19/dirrpt/ -name “*.rpt” -mtime +7 -delete
# 配置Manager进程的日志轮转
EDIT PARAMS MGR
# 添加以下内容
PORT 7809
DYNAMICPORTLIST 7810-7909
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 3
AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 3
PURGEOLDEXTRACTS /oracle/gg19/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 7
# 保存并退出
# 重启Manager进程
STOP MANAGER
START MANAGER
# 输出日志
Manager stopped.
Manager started.
Part05-风哥经验总结与分享
5.1 监控与管理最佳实践
- 建立完善的监控体系:使用多种监控工具,确保全面监控
- 设置合理的告警阈值:根据业务需求设置合适的告警阈值
- 定期检查和维护:定期检查GoldenGate系统,及时发现和解决问题
- 优化监控策略:根据监控数据不断优化监控策略
- 建立应急响应机制:当出现问题时,能够快速响应和解决
5.2 常见问题与解决方案
- 进程异常:检查进程状态,查看错误日志,重启进程
- 复制延迟:检查网络连接,优化系统性能,调整参数
- 数据不一致:检查源和目标数据,修复数据差异
- 系统资源不足:监控系统资源使用情况,及时扩容
- 网络连接问题:检查网络配置,确保网络稳定
5.3 经验分享
- 提前规划:在实施前充分了解监控需求,制定监控计划
- 测试验证:在测试环境中充分测试监控工具和策略
- 文档管理:建立完善的监控文档,记录监控配置和问题处理过程
- 培训人员:对运维人员进行培训,提高监控技能
- 持续优化:根据监控数据和业务需求,持续优化监控策略
学习交流加群风哥QQ113257174
风哥提示:Oracle GoldenGate的监控与管理是确保数据复制系统稳定运行的关键,需要建立完善的监控体系和应急响应机制。
更多学习教程公众号风哥教程itpux_com
from oracle:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
