1. 首页 > Oracle教程 > 正文

Oracle教程FG262-Oracle GoldenGate监控实战

内容大纲

内容简介:本文主要介绍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进行监控

# 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. 查看复制延迟
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 配置监控脚本

#!/bin/bash
# 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监控

# 1. 安装GoldenGate插件
# 风哥教程参考Oracle官方文档安装Enterprise Manager的GoldenGate插件

# 2. 添加GoldenGate目标
# 在Enterprise Manager中添加GoldenGate目标

# 3. 配置监控指标
# 在Enterprise Manager中配置以下监控指标:
# – 进程状态
# – 复制延迟
# – 吞吐量
# – 错误率

# 4. 配置告警规则
# 在Enterprise Manager中配置告警规则:
# – 进程异常告警
# – 复制延迟告警
# – 错误告警

Part04-生产案例与实战讲解

4.1 日常监控实战

# 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 监控脚本实战

# 1. 运行监控脚本
$ ./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 告警处理实战

# 1. 查看告警日志
$ 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

联系我们

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

微信号:itpux-com

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