内容大纲
内容简介:本文主要介绍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的监控
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脚本的监控
# 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的监控
# 登录Enterprise Manager
# 导航到GoldenGate监控页面
# 2. 配置监控目标
# 添加GoldenGate实例
# 配置监控参数
# 3. 配置告警规则
# 设置进程状态告警
# 设置复制延迟告警
# 设置系统资源告警
# 4. 查看监控结果
# 查看进程状态
# 查看复制延迟
# 查看系统资源使用情况
# 5. 配置监控报告
# 设置日报表、周报表和月报表
# 配置报表发送方式
3.4 告警配置
# 配置邮件服务器
$ 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脚本的监控实战
$ 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的监控实战
# 访问 https://fgedu-em.net.cn:7803/em
# 2. 添加GoldenGate目标
# 导航到”目标” -> “添加目标” -> “手动添加”
# 选择”GoldenGate”作为目标类型
# 输入GoldenGate实例信息
# 3. 配置监控参数
# 导航到GoldenGate监控页面
# 配置监控频率
# 配置告警阈值
# 4. 查看监控结果
# 查看进程状态
# 查看复制延迟
# 查看系统资源使用情况
# 5. 配置告警规则
# 导航到”告警” -> “规则设置”
# 添加进程状态告警规则
# 添加复制延迟告警规则
# 添加系统资源告警规则
# 6. 查看告警历史
# 导航到”告警” -> “历史”
# 查看告警记录
# 分析告警原因
4.3 告警处理实战
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
