内容大纲
内容简介:本文主要介绍Oracle GoldenGate监控的方法和工具,包括监控概念、监控目标、监控工具、告警机制设置等。风哥教程参考Oracle官方文档GoldenGate相关内容,为生产环境提供完整的监控解决方案。
Part01-基础概念与理论知识
1.1 监控概念
Oracle GoldenGate监控是指通过各种工具和方法,实时或定期检查GoldenGate进程的状态、性能和健康状况,及时发现和解决潜在问题,确保数据复制的正常运行。监控是GoldenGate运维的重要组成部分,对于保证数据复制的可靠性和稳定性至关重要。
1.2 监控目标
- 进程状态:监控Extract、Data Pump和Replicat进程的运行状态
- 复制延迟:监控数据复制的延迟情况
- 性能指标:监控系统资源使用情况和GoldenGate进程的性能
- 错误和告警:监控GoldenGate进程的错误和告警信息
- Trail文件:监控Trail文件的生成和处理情况
1.3 监控工具
- GGSCI命令行工具:GoldenGate自带的命令行工具
- Oracle Enterprise Manager:Oracle的企业级管理工具
- 第三方监控工具:如Nagios、Zabbix等
- 自定义监控脚本:根据业务需求开发的监控脚本
Part02-生产环境规划与建议
2.1 监控策略制定
制定合理的监控策略:
- 明确监控目标和范围
- 选择合适的监控工具和方法
- 确定监控频率和告警阈值
- 建立监控数据存储和分析机制
2.2 告警机制设置
设置有效的告警机制:
- 定义告警级别:信息、警告、严重
- 设置告警阈值:如复制延迟超过5分钟触发警告
- 配置告警通知方式:邮件、短信、电话等
- 建立告警处理流程:明确告警的处理责任和流程
2.3 监控频率
确定合理的监控频率:
- 实时监控:对于关键业务系统,建议实时监控
- 定期监控:对于非关键系统,建议每15-30分钟监控一次
- 日常检查:每天进行一次全面的检查
- 定期审计:每周或每月进行一次审计
Part03-生产环境项目实施方案
3.1 使用GGSCI进行监控
GGSCI (fgedu.net.cn) 1> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT01 00:00:00 00:00:05
EXTRACT RUNNING DP01 00:00:00 00:00:03
REPLICAT RUNNING REP01 00:00:00 00:00:02
# 2. 查看单个进程详细信息
GGSCI (fgedu.net.cn) 2> info extract ext01 detail
EXTRACT EXT01 Last Started 2026-04-03 10:00:00 Status RUNNING
Checkpoint Lag : 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint : Oracle Redo Logs
: 2026-04-03 10:30:00
: Thread 1, Seqno 1234, RBA 12345678
# 3. 查看进程统计信息
GGSCI (fgedu.net.cn) 3> stats extract ext01
Start Time End Time Stats since time
———— ———— ——————
2026-04-03 2026-04-03 2026-04-03 10:00:00
10:30:00
Output to /oracle/goldengate/dirdat/et:
50000 records in 50000 operations.
50000 inserts.
0 updates.
0 deletes.
0 discards.
# 4. 查看复制延迟
GGSCI (fgedu.net.cn) 4> lag extract ext01
Extract EXT01 is running (stop requested).
Checkpoint Lag : 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint : Oracle Redo Logs
2026-04-03 10:30:00
Thread 1, Seqno 1234, RBA 12345678
3.2 配置监控脚本
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
# gg_monitor.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
# 配置
GG_HOME=”/oracle/goldengate”
LOG_FILE=”$GG_HOME/monitor/gg_monitor_$(date +%Y%m%d).log”
ALERT_FILE=”$GG_HOME/monitor/gg_alert.log”
# 阈值
LAG_CRITICAL=1800 # 30分钟
LAG_WARNING=600 # 10分钟
# 创建监控目录
mkdir -p $GG_HOME/monitor
# 记录日志
log_message() {
echo “$(date +”%Y-%m-%d %H:%M:%S”): $1″ >> $LOG_FILE
}
# 发送告警
send_alert() {
echo “$(date +”%Y-%m-%d %H:%M:%S”): $1″ >> $ALERT_FILE
# 这里可以添加邮件、短信等告警方式
}
# 检查进程状态
check_process_status() {
log_message “检查GoldenGate进程状态…”
PROCESS_STATUS=$($GG_HOME/ggsci << EOF
info all
EOF
)
log_message "进程状态: $PROCESS_STATUS"
# 检查是否有进程异常
if echo "$PROCESS_STATUS" | grep -E "ABENDED|STOPPED" > /dev/null; then
send_alert “警告: 发现异常进程状态”
fi
}
# 检查复制延迟
check_lag() {
log_message “检查复制延迟…”
# 检查Extract延迟
EXTRACT_LAG=$($GG_HOME/ggsci << EOF
lag extract ext01
EOF
)
log_message "Extract延迟: $EXTRACT_LAG"
# 检查Replicat延迟
REPLICAT_LAG=$($GG_HOME/ggsci << EOF
lag replicat rep01
EOF
)
log_message "Replicat延迟: $REPLICAT_LAG"
# 提取延迟时间(秒)
EXTRACT_LAG_SECONDS=$(echo "$EXTRACT_LAG" | grep "Checkpoint Lag" | awk '{print $3}' | awk -F: '{print $1*3600 + $2*60 + $3}')
REPLICAT_LAG_SECONDS=$(echo "$REPLICAT_LAG" | grep "Checkpoint Lag" | awk '{print $3}' | awk -F: '{print $1*3600 + $2*60 + $3}')
# 检查延迟阈值
if [ "$EXTRACT_LAG_SECONDS" -gt "$LAG_CRITICAL" ]; then
send_alert "严重: Extract延迟超过30分钟"
elif [ "$EXTRACT_LAG_SECONDS" -gt "$LAG_WARNING" ]; then
send_alert "警告: Extract延迟超过10分钟"
fi
if [ "$REPLICAT_LAG_SECONDS" -gt "$LAG_CRITICAL" ]; then
send_alert "严重: Replicat延迟超过30分钟"
elif [ "$REPLICAT_LAG_SECONDS" -gt "$LAG_WARNING" ]; then
send_alert "警告: Replicat延迟超过10分钟"
fi
}
# 检查Trail文件
check_trail_files() {
log_message "检查Trail文件..."
TRAIL_FILES=$(ls -la $GG_HOME/dirdat/)
log_message "Trail文件: $TRAIL_FILES"
# 检查Trail文件大小
LARGE_TRAIL_FILES=$(find $GG_HOME/dirdat/ -name "*.r*" -size +1G)
if [ -n "$LARGE_TRAIL_FILES" ]; then
send_alert "警告: 发现大于1GB的Trail文件"
fi
}
# 主函数
main() {
log_message "开始GoldenGate监控"
check_process_status
check_lag
check_trail_files
log_message "GoldenGate监控完成"
}
# 执行主函数
main
3.3 配置Enterprise Manager监控
# 风哥教程参考Oracle官方文档安装Enterprise Manager的GoldenGate插件
# 2. 添加GoldenGate目标
# 在Enterprise Manager中添加GoldenGate目标
# 3. 配置监控指标
# 在Enterprise Manager中配置以下监控指标:
# – 进程状态
# – 复制延迟
# – 吞吐量
# – 错误率
# 4. 配置告警规则
# 在Enterprise Manager中配置告警规则:
# – 进程异常告警
# – 复制延迟告警
# – 错误告警
Part04-生产案例与实战讲解
4.1 日常监控实战
GGSCI (fgedu.net.cn) 1> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT01 00:00:00 00:00:05
EXTRACT RUNNING DP01 00:00:00 00:00:03
REPLICAT RUNNING REP01 00:00:00 00:00:02
# 2. 检查进程详细信息
GGSCI (fgedu.net.cn) 2> info extract ext01 detail
EXTRACT EXT01 Last Started 2026-04-03 10:00:00 Status RUNNING
Checkpoint Lag : 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint : Oracle Redo Logs
: 2026-04-03 10:30:00
: Thread 1, Seqno 1234, RBA 12345678
# 3. 检查进程统计信息
GGSCI (fgedu.net.cn) 3> stats extract ext01
Start Time End Time Stats since time
———— ———— ——————
2026-04-03 2026-04-03 2026-04-03 10:00:00
10:30:00
Output to /oracle/goldengate/dirdat/et:
50000 records in 50000 operations.
50000 inserts.
0 updates.
0 deletes.
0 discards.
# 4. 检查Replicat进程
GGSCI (fgedu-target.net.cn) 1> info replicat rep01 detail
REPLICAT REP01 Last Started 2026-04-03 10:00:00 Status RUNNING
Checkpoint Lag : 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint : File /oracle/goldengate/dirdat/rt000001
: RBA 12345678
: 2026-04-03 10:30:00
4.2 监控脚本实战
$ ./gg_monitor.sh
# 2. 查看监控日志
$ cat /oracle/goldengate/monitor/gg_monitor_20260403.log
2026-04-03 10:30:00: 开始GoldenGate监控
2026-04-03 10:30:00: 检查GoldenGate进程状态…
2026-04-03 10:30:01: 进程状态: Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT01 00:00:00 00:00:05
EXTRACT RUNNING DP01 00:00:00 00:00:03
REPLICAT RUNNING REP01 00:00:00 00:00:02
2026-04-03 10:30:01: 检查复制延迟…
2026-04-03 10:30:02: Extract延迟: Extract EXT01 is running (stop requested).
Checkpoint Lag : 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint : Oracle Redo Logs
2026-04-03 10:30:00
Thread 1, Seqno 1234, RBA 12345678
2026-04-03 10:30:02: Replicat延迟: Replicat REP01 is running (stop requested).
Checkpoint Lag : 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint : File /oracle/goldengate/dirdat/rt000001
RBA 12345678
2026-04-03 10:30:02: 检查Trail文件…
2026-04-03 10:30:02: Trail文件: total 8
-rw-r—– 1 oracle oinstall 1048576 Apr 3 10:00 et000001
-rw-r—– 1 oracle oinstall 1048576 Apr 3 10:10 et000002
-rw-r—– 1 oracle oinstall 1048576 Apr 3 10:20 et000003
-rw-r—– 1 oracle oinstall 1048576 Apr 3 10:30 et000004
-rw-r—– 1 oracle oinstall 1048576 Apr 3 10:00 rt000001
-rw-r—– 1 oracle oinstall 1048576 Apr 3 10:10 rt000002
-rw-r—– 1 oracle oinstall 1048576 Apr 3 10:20 rt000003
-rw-r—– 1 oracle oinstall 1048576 Apr 3 10:30 rt000004
2026-04-03 10:30:02: GoldenGate监控完成
# 3. 设置定时任务
$ crontab -e
# 添加以下行,每15分钟运行一次监控脚本
*/15 * * * * /oracle/goldengate/gg_monitor.sh
4.3 告警处理实战
$ cat /oracle/goldengate/monitor/gg_alert.log
2026-04-03 11:00:00: 警告: Replicat延迟超过10分钟
# 2. 检查Replicat进程状态
GGSCI (fgedu-target.net.cn) 1> info replicat rep01
REPLICAT REP01 Last Started 2026-04-03 10:00:00 Status RUNNING
Checkpoint Lag : 00:12:30 (updated 00:00:01 ago)
Log Read Checkpoint : File /oracle/goldengate/dirdat/rt000001
: RBA 12345678
: 2026-04-03 10:47:30
# 3. 查看Replicat进程报告
GGSCI (fgedu-target.net.cn) 2> view report rep01
2026-04-03 10:45:00 INFO OGG-01027 Oracle GoldenGate Delivery for Oracle, rep01.prm: Rolling over remote file /oracle/goldengate/dirdat/rt000001.
2026-04-03 10:46:00 INFO OGG-01028 Oracle GoldenGate Delivery for Oracle, rep01.prm: Finished rolling over remote file /oracle/goldengate/dirdat/rt000001.
2026-04-03 10:47:00 WARNING OGG-01194 Oracle GoldenGate Delivery for Oracle, rep01.prm: SQL error 12801 mapping fgedu.fgedu_orders to fgedu.fgedu_orders OCI Error ORA-12801: error signaled in parallel query server P000,
ORA-01653: unable to extend table FGEDU.FGEDU_ORDERS by 1024 in tablespace USERS. (status = 12801-ORA-12801: error signaled in parallel query server P000,
ORA-01653: unable to extend table FGEDU.FGEDU_ORDERS by 1024 in tablespace USERS.
# 4. 解决问题
SQL> — 扩展表空间
SQL> ALTER TABLESPACE USERS ADD DATAFILE ‘/oradata/fgedudb/users02.dbf’ SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
# 5. 重启Replicat进程
GGSCI (fgedu-target.net.cn) 3> stop replicat rep01
GGSCI (fgedu-target.net.cn) 4> start replicat rep01
# 6. 验证恢复情况
GGSCI (fgedu-target.net.cn) 5> info replicat rep01
REPLICAT REP01 Last Started 2026-04-03 11:10:00 Status RUNNING
Checkpoint Lag : 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint : File /oracle/goldengate/dirdat/rt000002
: RBA 123456
: 2026-04-03 11:10:00
Part05-风哥经验总结与分享
5.1 监控最佳实践
- 建立完善的监控体系:结合GGSCI、Enterprise Manager和自定义脚本进行全面监控
- 设置合理的告警阈值:根据业务需求和系统性能设置合适的告警阈值
- 定期检查监控数据:分析监控数据,识别潜在问题
- 建立告警处理流程:明确告警的处理责任和流程,学习交流加群风哥微信: itpux-com
- 持续优化监控策略:根据实际情况调整监控策略和告警阈值
5.2 常见监控问题与解决方案
- 监控遗漏:建立全面的监控覆盖,确保所有关键指标都被监控
- 告警过多:优化告警阈值,避免过多的误告警
- 监控延迟:实时监控关键指标,减少监控延迟
- 数据丢失:定期备份监控数据,确保数据安全
5.3 监控工具选择建议
- 小型环境:使用GGSCI命令行工具和简单的自定义脚本
- 中型环境:使用Enterprise Manager和自定义监控脚本
- 大型环境:使用专业的监控工具,如Nagios、Zabbix等
- 混合环境:结合多种监控工具,实现全面监控
- 云环境:使用云平台提供的监控服务,风哥提示:选择合适的监控工具可以提高监控效率和准确性
更多视频教程www.fgedu.net.cn
更多学习教程公众号风哥教程itpux_com
from oracle:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
