1. 首页 > Oracle教程 > 正文

Oracle教程FG268-Oracle GoldenGate监控与告警实战

内容大纲

内容简介:本文主要介绍Oracle GoldenGate监控与告警的配置和管理方法,包括监控指标、告警机制、监控工具等。风哥教程参考Oracle官方文档GoldenGate相关内容,为生产环境提供完整的监控与告警解决方案。

Part01-基础概念与理论知识

1.1 监控概念

Oracle GoldenGate监控是指对GoldenGate系统的运行状态、性能和健康状况进行实时监控和管理。监控是GoldenGate运维的重要组成部分,对于保证系统的稳定性和可靠性至关重要。

1.2 监控指标

  • 进程状态:Extract、Data Pump和Replicat进程的运行状态
  • 复制延迟:数据复制的延迟时间
  • Trail文件:Trail文件的大小和数量
  • 系统资源:CPU、内存、磁盘和网络的使用情况
  • 错误信息:系统错误和警告信息

1.3 告警机制

  • 阈值告警:当监控指标超过阈值时触发告警
  • 状态告警:当进程状态异常时触发告警
  • 错误告警:当系统出现错误时触发告警
  • 趋势告警:当监控指标呈现不良趋势时触发告警

Part02-生产环境规划与建议

2.1 监控规划

制定合理的监控规划:

  • 确定监控目标和范围
  • 选择合适的监控工具
  • 设计监控指标和阈值
  • 建立监控流程和责任分工
  • 制定监控报告机制

2.2 监控配置建议

监控配置建议:

  • 使用多种监控工具,实现全面监控
  • 设置合理的监控阈值
  • 建立监控数据存储和分析机制
  • 实现监控数据的可视化展示
  • 定期备份监控数据

2.3 告警策略

建立完善的告警策略:

  • 设置多级告警机制
  • 确定告警触发条件和级别
  • 建立告警通知渠道
  • 制定告警处理流程
  • 定期评估告警策略的有效性

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

# 3. 查看复制延迟
GGSCI (fgedu.net.cn) 3> lag extract ext01

# 4. 查看Trail文件信息
GGSCI (fgedu.net.cn) 4> info exttrail /oracle/goldengate/dirdat/et

# 5. 查看错误信息
GGSCI (fgedu.net.cn) 5> view error ext01

3.2 基于Shell脚本的监控

#!/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_$(date +%Y%m%d).log”

# 创建监控目录
mkdir -p $GG_HOME/monitor

# 记录日志
log_message() {
echo “$(date +”%Y-%m-%d %H:%M:%S”): $1″ >> $LOG_FILE
}

# 记录告警
alert_message() {
echo “$(date +”%Y-%m-%d %H:%M:%S”): $1″ >> $ALERT_FILE
# 发送告警邮件
echo “$1” | mail -s “GoldenGate Alert” admin@fgedu.net.cn
}

# 检查进程状态
check_processes() {
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
alert_message “发现异常进程状态: $PROCESS_STATUS”
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" # 检查延迟是否超过阈值 if echo "$EXTRACT_LAG" | grep -E "[0-9]{2}:[0-9]{2}:[0-9]{2}" > /dev/null; then
EXTRACT_LAG_HOURS=$(echo “$EXTRACT_LAG” | grep -E “[0-9]{2}:[0-9]{2}:[0-9]{2}” | awk ‘{print $3}’ | cut -d: -f1)
if [ “$EXTRACT_LAG_HOURS” -gt 1 ]; then
alert_message “Extract延迟超过1小时: $EXTRACT_LAG”
fi
fi

if echo “$REPLICAT_LAG” | grep -E “[0-9]{2}:[0-9]{2}:[0-9]{2}” > /dev/null; then
REPLICAT_LAG_HOURS=$(echo “$REPLICAT_LAG” | grep -E “[0-9]{2}:[0-9]{2}:[0-9]{2}” | awk ‘{print $3}’ | cut -d: -f1)
if [ “$REPLICAT_LAG_HOURS” -gt 1 ]; then
alert_message “Replicat延迟超过1小时: $REPLICAT_LAG”
fi
fi
}

# 检查Trail文件
check_trail_files() {
log_message “检查Trail文件…”

TRAIL_DIR=”$GG_HOME/dirdat”
TRAIL_FILES=$(ls -la $TRAIL_DIR)
log_message “Trail文件: $TRAIL_FILES”

# 检查Trail文件大小
LARGE_TRAIL_FILES=$(find $TRAIL_DIR -name “*.r*” -size +1G)
if [ -n “$LARGE_TRAIL_FILES” ]; then
alert_message “发现大于1GB的Trail文件: $LARGE_TRAIL_FILES”
fi

# 检查Trail文件数量
TRAIL_COUNT=$(ls -la $TRAIL_DIR | wc -l)
if [ “$TRAIL_COUNT” -gt 100 ]; then
alert_message “Trail文件数量过多: $TRAIL_COUNT”
fi
}

# 检查系统资源
check_system_resources() {
log_message “检查系统资源…”

# 检查CPU使用情况
CPU_USAGE=$(top -b -n 1 | grep “Cpu(s)”)
log_message “CPU使用情况: $CPU_USAGE”

# 检查内存使用情况
MEM_USAGE=$(free -m)
log_message “内存使用情况: $MEM_USAGE”

# 检查存储空间
DISK_USAGE=$(df -h)
log_message “存储空间使用情况: $DISK_USAGE”

# 检查磁盘空间是否不足
LOW_DISK=$(df -h | grep -E “[0-9]{2}%” | awk ‘{if ($5+0 > 90) print $0}’)
if [ -n “$LOW_DISK” ]; then
alert_message “磁盘空间不足: $LOW_DISK”
fi
}

# 主函数
main() {
log_message “开始GoldenGate监控”
check_processes
check_lag
check_trail_files
check_system_resources
log_message “GoldenGate监控完成”
}

# 执行主函数
main

3.3 基于Enterprise Manager的监控

# 1. 配置Enterprise Manager监控
# 登录Enterprise Manager
# 导航到GoldenGate监控页面

# 2. 配置监控目标
# 添加GoldenGate实例
# 配置监控参数

# 3. 配置告警规则
# 设置进程状态告警
# 设置复制延迟告警
# 设置系统资源告警

# 4. 查看监控结果
# 查看进程状态
# 查看复制延迟
# 查看系统资源使用情况

# 5. 配置监控报告
# 设置日报表、周报表和月报表
# 配置报表发送方式

3.4 告警配置

# 1. 配置邮件告警
# 配置邮件服务器
$ vi /etc/mail.rc
set smtp=smtp.fgedu.net.cn
set smtp-auth-user=admin@fgedu.net.cn
set smtp-auth-password=Password123!
set from=admin@fgedu.net.cn

# 2. 配置短信告警
# 配置短信网关
# 例如:使用阿里云短信服务

# 3. 配置监控系统集成
# 配置与Zabbix集成
# 配置与Nagios集成
# 配置与Prometheus集成

Part04-生产案例与实战讲解

4.1 基于Shell脚本的监控实战

# 1. 创建监控脚本
$ vi /oracle/goldengate/monitor/gg_monitor.sh
# 复制上面的脚本内容

# 2. 设置执行权限
$ chmod +x /oracle/goldengate/monitor/gg_monitor.sh

# 3. 添加到定时任务
$ crontab -e
# 添加以下内容
*/5 * * * * /oracle/goldengate/monitor/gg_monitor.sh

# 4. 查看监控日志
$ tail -f /oracle/goldengate/monitor/gg_monitor_20260403.log

2026-04-03 10:00:00: 开始GoldenGate监控
2026-04-03 10:00:01: 检查GoldenGate进程状态…
2026-04-03 10:00:02: 进程状态: 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:00:03: 检查复制延迟…
2026-04-03 10:00:04: Extract延迟: Extract EXT01 is running (started 2026-04-03 09:00:00)
Checkpoint Lag : 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint : Oracle Redo Logs
: 2026-04-03 10:00:00
: Thread 1, Seqno 1234, RBA 12345678

2026-04-03 10:00:05: Replicat延迟: Replicat REP01 is running (started 2026-04-03 09:00:00)
Checkpoint Lag : 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint : File /oracle/goldengate/dirdat/rt000001
: RBA 12345678
: 2026-04-03 10:00:00

2026-04-03 10:00:06: 检查Trail文件…
2026-04-03 10:00:07: Trail文件: total 8
drwxr-xr-x 2 oracle oinstall 4096 Apr 3 09:00 .
drwxr-xr-x 9 oracle oinstall 4096 Apr 3 08:00 ..
-rw-r—– 1 oracle oinstall 10485760 Apr 3 10:00 et000001
-rw-r—– 1 oracle oinstall 10485760 Apr 3 10:00 et000002
-rw-r—– 1 oracle oinstall 10485760 Apr 3 10:00 rt000001
-rw-r—– 1 oracle oinstall 10485760 Apr 3 10:00 rt000002

2026-04-03 10:00:08: 检查系统资源…
2026-04-03 10:00:09: CPU使用情况: Cpu(s): 2.0%us, 0.5%sy, 0.0%ni, 97.0%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st
2026-04-03 10:00:10: 内存使用情况: total used free shared buff/cache available
Mem: 8192 2048 4096 128 2048 6144
Swap: 4096 0 4096
2026-04-03 10:00:11: 存储空间使用情况: Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 10G 40G 20% /
/dev/sdb1 200G 50G 150G 25% /oracle

2026-04-03 10:00:12: GoldenGate监控完成

4.2 基于Enterprise Manager的监控实战

# 1. 登录Enterprise Manager
# 访问 https://fgedu-em.net.cn:7803/em

# 2. 添加GoldenGate目标
# 导航到”目标” -> “添加目标” -> “手动添加”
# 选择”GoldenGate”作为目标类型
# 输入GoldenGate实例信息

# 3. 配置监控参数
# 导航到GoldenGate监控页面
# 配置监控频率
# 配置告警阈值

# 4. 查看监控结果
# 查看进程状态
# 查看复制延迟
# 查看系统资源使用情况

# 5. 配置告警规则
# 导航到”告警” -> “规则设置”
# 添加进程状态告警规则
# 添加复制延迟告警规则
# 添加系统资源告警规则

# 6. 查看告警历史
# 导航到”告警” -> “历史”
# 查看告警记录
# 分析告警原因

4.3 告警处理实战

# 1. 收到告警邮件
Subject: GoldenGate Alert

2026-04-03 11:00:00: 发现异常进程状态: Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
EXTRACT ABENDED EXT01 00:30:00 00:15:00
EXTRACT RUNNING DP01 00:00:00 00:00:03
REPLICAT RUNNING REP01 00:00:00 00:00:02

# 2. 分析告警原因
GGSCI (fgedu.net.cn) 1> view report ext01

2026-04-03 10:45: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).
2026-04-03 10:45:00 ERROR OGG-01668 Oracle GoldenGate Capture for Oracle, ext01.prm: PROCESS ABENDING.

# 3. 解决问题
GGSCI (fgedu.net.cn) 2> edit params ext01
— 修改USERIDALIAS为:
USERIDALIAS fgedu_ggadmin, SYSDBA

# 4. 重启进程
GGSCI (fgedu.net.cn) 3> start extract ext01

# 5. 验证恢复情况
GGSCI (fgedu.net.cn) 4> info extract ext01

EXTRACT EXT01 Last Started 2026-04-03 11:10:00 Status RUNNING
Checkpoint Lag : 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint : Oracle Redo Logs
: 2026-04-03 11:10:00
: Thread 1, Seqno 1235, RBA 12345678

# 6. 记录告警处理
# 更新告警处理记录
# 分析告警原因
# 采取预防措施

Part05-风哥经验总结与分享

5.1 监控与告警最佳实践

  • 全面监控:监控GoldenGate系统的各个方面
  • 实时监控:实时监控系统状态和性能
  • 阈值设置:设置合理的告警阈值
  • 多渠道告警:使用多种告警渠道,确保及时收到告警
  • 告警处理:建立完善的告警处理流程
  • 数据分析:分析监控数据,发现潜在问题

5.2 监控工具选择

  • GGSCI:GoldenGate自带的命令行工具,适用于基本监控
  • Shell脚本:自定义监控脚本,适用于灵活的监控需求
  • Enterprise Manager:Oracle企业级监控工具,适用于全面监控
  • 第三方监控工具:如Zabbix、Nagios等,适用于集成到现有监控系统

5.3 监控与告警建议

  • 建立监控体系,实现全方位监控
  • 设置合理的告警阈值,避免误告警
  • 定期分析监控数据,发现系统趋势
  • 建立告警处理流程,及时响应告警
  • 定期演练告警处理,提高响应能力
  • 持续优化监控策略,适应系统变化

更多视频教程www.fgedu.net.cn

更多学习教程公众号风哥教程itpux_com

from oracle:www.itpux.com

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

联系我们

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

微信号:itpux-com

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