GoldenGate教程FG019-日常巡检与健康检查
本文档详细介绍Oracle GoldenGate的日常巡检与健康检查,风哥教程参考GoldenGate官方文档维护相关内容,适合数据库管理员和技术人员学习和参考。更多视频教程www.fgedu.net.cn
Part01-基础概念与理论知识
1.1 巡检概念
巡检是指定期对系统进行检查,以确保系统的正常运行。巡检的主要目的是发现和解决潜在的问题,预防系统故障的发生。巡检包括系统状态检查、性能检查、日志检查等。
- 定期性:按照一定的时间间隔进行
- 全面性:覆盖系统的各个方面
- 预防性:预防系统故障的发生
- 记录性:记录巡检结果,便于分析和追踪
- 规范性:按照标准流程进行
1.2 健康检查概念
健康检查是指对系统的健康状态进行评估,以确保系统的稳定性和可靠性。健康检查包括系统资源使用情况、性能指标、错误日志等方面的检查。
## 1. 系统资源
– CPU使用率
– 内存使用率
– 磁盘空间使用率
– 网络带宽使用情况
## 2. 性能指标
– 响应时间
– 吞吐量
– 延迟
– 并发连接数
## 3. 错误日志
– 系统错误日志
– 应用错误日志
– 数据库错误日志
– GoldenGate错误日志
## 4. 配置状态
– 配置文件的完整性
– 配置参数的合理性
– 权限配置的正确性
## 5. 数据一致性
– 源端和目标端数据的一致性
– 数据同步的完整性
– 数据冲突的处理
1.3 巡检与健康检查的重要性
巡检与健康检查的重要性体现在以下几个方面:
- 预防故障:通过定期巡检,发现和解决潜在问题,预防系统故障的发生
- 提高可靠性:及时发现和处理系统异常,提高系统的可靠性
- 优化性能:通过性能检查,发现性能瓶颈,优化系统性能
- 延长系统寿命:及时维护和保养系统,延长系统的使用寿命
- 满足合规要求:符合行业和法规的要求,确保系统的合规性
学习交流加群风哥微信: itpux-com
Part02-生产环境规划与建议
2.1 巡检规划
制定GoldenGate巡检规划时,需要考虑以下因素:
## 1. 巡检频率
– 日常巡检:每天一次
– 周巡检:每周一次
– 月巡检:每月一次
– 季度巡检:每季度一次
## 2. 巡检内容
– 进程状态检查
– 性能指标检查
– 错误日志检查
– 配置文件检查
– 数据同步状态检查
## 3. 巡检人员
– 数据库管理员
– 系统管理员
– 应用管理员
## 4. 巡检工具
– GoldenGate自带工具
– 第三方监控工具
– 自定义脚本
## 5. 巡检流程
– 准备巡检工具和检查表
– 执行巡检操作
– 记录巡检结果
– 分析巡检结果
– 处理发现的问题
– 生成巡检报告
2.2 健康检查规划
制定GoldenGate健康检查规划时,需要考虑以下因素:
- 检查频率:根据系统的重要性和稳定性,确定健康检查的频率
- 检查内容:覆盖系统的各个方面,包括资源使用、性能指标、错误日志等
- 检查工具:选择合适的检查工具,确保检查的准确性和效率
- 检查标准:制定健康检查的标准,便于评估系统的健康状态
- 检查报告:生成详细的健康检查报告,便于分析和追踪
2.3 巡检与健康检查建议
GoldenGate巡检与健康检查的建议:
## 1. 日常巡检建议
– 每天检查GoldenGate进程状态
– 每天检查数据同步延迟
– 每天检查错误日志
– 每天检查系统资源使用情况
## 2. 周巡检建议
– 检查GoldenGate配置文件
– 检查数据库状态
– 检查网络连接状态
– 检查存储使用情况
## 3. 月巡检建议
– 检查GoldenGate版本和补丁
– 检查系统参数配置
– 检查备份情况
– 检查安全配置
## 4. 健康检查建议
– 定期进行全面的健康检查
– 建立健康检查的标准和指标
– 使用自动化工具进行健康检查
– 及时处理健康检查发现的问题
## 5. 文档建议
– 建立巡检和健康检查的文档体系
– 记录巡检和健康检查的结果
– 分析巡检和健康检查的趋势
– 优化巡检和健康检查的流程
from GoldenGate视频:www.itpux.com
Part03-生产环境项目实施方案
3.1 日常巡检
日常巡检是确保GoldenGate系统正常运行的重要手段。以下是具体的实施方案:
## 1. 进程状态检查
### 1.1 检查Manager进程
GGSCI> info mgr
Manager is running (IP port fgedu.7809).
### 1.2 检查Extract进程
GGSCI> info extract *
EXTRACT RUNNING EXT1 00:00:00 00:00:05
EXTRACT RUNNING DP1 00:00:00 00:00:03
### 1.3 检查Replicat进程
GGSCI> info replicat *
REPLICAT RUNNING REP1 00:00:00 00:00:02
## 2. 数据同步状态检查
### 2.1 检查同步延迟
GGSCI> lag *
Sending LAG request to EXTRACT EXT1 …
Last record lag: 00:00:00.
Sending LAG request to EXTRACT DP1 …
Last record lag: 00:00:00.
Sending LAG request to REPLICAT REP1 …
Last record lag: 00:00:00.
### 2.2 检查同步统计
GGSCI> stats *
Start of Statistics at 2026-04-10 10:00:00.
Output to /GoldenGate/fgdata/dirdat/et:
Extracting from FGEDU.EMP:
*** Current statistics since 2026-04-10 09:00:00 ***
Total inserts 100.00
Total updates 50.00
Total deletes 0.00
Total discards 0.00
Total operations 150.00
## 3. 错误日志检查
### 3.1 检查进程报告
GGSCI> view report EXT1
### 3.2 检查错误日志
$ tail -n 100 /GoldenGate/app/ggserr.log
## 4. 系统资源检查
### 4.1 检查CPU使用率
$ top -n 1
### 4.2 检查内存使用率
$ free -h
### 4.3 检查磁盘空间
$ df -h
### 4.4 检查网络状态
$ netstat -tuln
3.2 健康检查
健康检查是评估GoldenGate系统健康状态的重要手段。以下是具体的实施方案:
## 1. 系统资源健康检查
### 1.1 CPU健康检查
$ mpstat 1 5
### 1.2 内存健康检查
$ vmstat 1 5
### 1.3 磁盘健康检查
$ iostat -x 1 5
### 1.4 网络健康检查
$ ping -c 5 fgedu02
$ netstat -s | grep retransmit
## 2. 数据库健康检查
### 2.1 数据库状态检查
SQL> SELECT status FROM v$instance;
### 2.2 数据库性能检查
SQL> SELECT * FROM v$system_event WHERE event NOT LIKE ‘%idle%’ ORDER BY total_waits DESC;
### 2.3 数据库空间检查
SQL> SELECT tablespace_name, used_percent FROM dba_tablespace_usage_metrics;
## 3. GoldenGate健康检查
### 3.1 进程健康检查
GGSCI> info all
### 3.2 性能健康检查
GGSCI> stats * detail
### 3.3 配置健康检查
GGSCI> view param *
### 3.4 日志健康检查
GGSCI> view report *
## 4. 数据一致性检查
### 4.1 源端和目标端数据比对
SQL> SELECT count(*) FROM fgedu.emp;
SQL> — 在目标端执行
SQL> SELECT count(*) FROM fgedu.emp;
### 4.2 数据校验
SQL> SELECT * FROM fgedu.emp MINUS SELECT * FROM fgedu.emp@target_db;
3.3 自动化巡检
自动化巡检是提高巡检效率和准确性的重要手段。以下是具体的实施方案:
## 1. 编写巡检脚本
### 1.1 日常巡检脚本
$ vi /GoldenGate/app/scripts/daily_check.sh
#!/bin/bash
# daily_check.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
echo “=== GoldenGate Daily Check ===”
echo “Date: $(date)”
echo “”
# 检查Manager进程
echo “1. Checking Manager process…”
/GoldenGate/app/ggsci << EOF
info mgr
EOF
echo ""
# 检查Extract进程
echo "2. Checking Extract processes..."
/GoldenGate/app/ggsci << EOF
info extract *
EOF
echo ""
# 检查Replicat进程
echo "3. Checking Replicat processes..."
/GoldenGate/app/ggsci << EOF
info replicat *
EOF
echo ""
# 检查同步延迟
echo "4. Checking replication lag..."
/GoldenGate/app/ggsci << EOF
lag *
EOF
echo ""
# 检查系统资源
echo "5. Checking system resources..."
echo "CPU usage:"
top -n 1 | grep "%Cpu"
echo "Memory usage:"
free -h
echo "Disk usage:"
df -h | grep GoldenGate
echo ""
echo "=== Daily Check Completed ==="
### 1.2 周巡检脚本
$ vi /GoldenGate/app/scripts/weekly_check.sh
#!/bin/bash
# weekly_check.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
echo "=== GoldenGate Weekly Check ==="
echo "Date: $(date)"
echo ""
# 检查配置文件
echo "1. Checking configuration files..."
ls -la /GoldenGate/app/dirprm/
# 检查数据库状态
echo "2. Checking database status..."
sqlplus -s fgedu/fgedu123 << EOF
SELECT status FROM v$instance;
SELECT tablespace_name, used_percent FROM dba_tablespace_usage_metrics;
EOF
# 检查网络连接
echo "3. Checking network connections..."
ping -c 3 fgedu02
netstat -tuln | grep 7809
# 检查存储使用情况
echo "4. Checking storage usage..."
df -h
# 检查GoldenGate版本
echo "5. Checking GoldenGate version..."
/GoldenGate/app/ggsci << EOF
INFO ALL
EOF
echo "=== Weekly Check Completed ==="
## 2. 配置定时任务
### 2.1 配置日常巡检任务
$ crontab -e
0 9 * * * /GoldenGate/app/scripts/daily_check.sh >> /GoldenGate/app/logs/daily_check.log 2>&1
### 2.2 配置周巡检任务
$ crontab -e
0 10 * * 0 /GoldenGate/app/scripts/weekly_check.sh >> /GoldenGate/app/logs/weekly_check.log 2>&1
## 3. 配置告警机制
### 3.1 配置邮件告警
$ vi /GoldenGate/app/scripts/alert.sh
#!/bin/bash
# alert.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
SUBJECT=”GoldenGate Alert”
TO=”admin@fgedu.net.cn”
MESSAGE=”$1″
echo “$MESSAGE” | mail -s “$SUBJECT” $TO
### 3.2 在巡检脚本中添加告警
$ vi /GoldenGate/app/scripts/daily_check.sh
# 检查进程状态
if [ “$(/GoldenGate/app/ggsci << EOF
info mgr
EOF | grep -c "RUNNING")" -eq 0 ]; then
/GoldenGate/app/scripts/alert.sh "Manager process is not running!"
fi
Part04-生产案例与实战讲解
4.1 日常巡检案例
以下是日常巡检的实战案例:
## 环境信息
GoldenGate版本:21.3.0.0.0
操作系统:Oracle Linux 8.5
## 巡检步骤
### 1. 检查进程状态
GGSCI> 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
### 2. 检查同步延迟
GGSCI> lag *
Sending LAG request to EXTRACT EXT1 …
Last record lag: 00:00:00.
Sending LAG request to EXTRACT DP1 …
Last record lag: 00:00:00.
Sending LAG request to REPLICAT REP1 …
Last record lag: 00:00:00.
### 3. 检查同步统计
GGSCI> stats *
Start of Statistics at 2026-04-10 10:00:00.
Output to /GoldenGate/fgdata/dirdat/et:
Extracting from FGEDU.EMP:
*** Current statistics since 2026-04-10 09:00:00 ***
Total inserts 100.00
Total updates 50.00
Total deletes 0.00
Total discards 0.00
Total operations 150.00
Output to /GoldenGate/fgdata/dirdat/rt:
Extracting from FGEDU.EMP:
*** Current statistics since 2026-04-10 09:00:00 ***
Total inserts 100.00
Total updates 50.00
Total deletes 0.00
Total discards 0.00
Total operations 150.00
Replicating from FGEDU.EMP to FGEDU.EMP:
*** Current statistics since 2026-04-10 09:00:00 ***
Total inserts 100.00
Total updates 50.00
Total deletes 0.00
Total discards 0.00
Total operations 150.00
### 4. 检查系统资源
$ top -n 1
top – 10:00:00 up 10 days, 2:00, 2 users, load average: 0.50, 0.40, 0.30
Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie
%Cpu(s): 10.0 us, 5.0 sy, 0.0 ni, 80.0 id, 5.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 16384.0 total, 8192.0 free, 4096.0 used, 4096.0 buff/cache
MiB Swap: 8192.0 total, 8192.0 free, 0.0 used. 11264.0 avail Mem
$ free -h
total used free shared buff/cache available
Mem: 16G 4.0G 8.0G 0.0G 4.0G 11G
Swap: 8.0G 0.0G 8.0G
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 20G 30G 40% /
/dev/sdb1 200G 50G 150G 25% /GoldenGate
### 5. 检查错误日志
$ tail -n 100 /GoldenGate/app/ggserr.log
2026-04-10 09:00:00 INFO OGG-03059 Operating system character set identified as UTF-8. Locale: en_US, LC_ALL: .
2026-04-10 09:00:00 INFO OGG-02695 ANSI SQL parameter syntax is used for parameter parsing.
2026-04-10 09:00:00 INFO OGG-03035 Operating system information: Linux, Release 4.18.0-348.el8.x86_64, Version #1 SMP Mon Oct 4 12:17:22 EDT 2021, Machine x86_64.
2026-04-10 09:00:00 INFO OGG-01632 Processor architecture: X86_64.
2026-04-10 09:00:00 INFO OGG-00955 Oracle GoldenGate Capture for Oracle, ext1.prm: EXTRACT EXT1 starting.
### 6. 巡检结果
– 所有GoldenGate进程运行正常
– 数据同步延迟为0
– 系统资源使用正常
– 无错误日志
– 巡检通过
4.2 健康检查案例
以下是健康检查的实战案例:
## 环境信息
GoldenGate版本:21.3.0.0.0
操作系统:Oracle Linux 8.5
## 健康检查步骤
### 1. 系统资源健康检查
$ mpstat 1 5
Linux 4.18.0-348.el8.x86_64 (fgedu) 04/10/2026 _x86_64_ (8 CPU)
09:59:59 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
09:59:59 all 10.00 0.00 5.00 0.00 0.00 0.00 0.00 0.00 0.00 85.00
10:00:00 all 12.00 0.00 6.00 0.00 0.00 0.00 0.00 0.00 0.00 82.00
10:00:01 all 8.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 0.00 88.00
10:00:02 all 10.00 0.00 5.00 0.00 0.00 0.00 0.00 0.00 0.00 85.00
10:00:03 all 9.00 0.00 4.50 0.00 0.00 0.00 0.00 0.00 0.00 86.50
$ vmstat 1 5
procs ———–memory———- —swap– —–io—- -system– ——cpu—–
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 8388608 4194304 4194304 0 0 0 0 20 30 10 5 85 0 0
0 0 0 8388608 4194304 4194304 0 0 0 0 19 29 12 6 82 0 0
0 0 0 8388608 4194304 4194304 0 0 0 0 21 31 8 4 88 0 0
0 0 0 8388608 4194304 4194304 0 0 0 0 20 30 10 5 85 0 0
0 0 0 8388608 4194304 4194304 0 0 0 0 19 29 9 4 87 0 0
$ iostat -x 1 5
Linux 4.18.0-348.el8.x86_64 (fgedu) 04/10/2026 _x86_64_ (8 CPU)
device r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 10.0 5.0 0.10 0.05 20.0 0.1 5.0 4.0 7.0 2.0 3.0
sdb 5.0 2.0 0.05 0.02 20.0 0.0 3.0 2.5 4.0 1.5 1.0
### 2. 数据库健康检查
SQL> SELECT status FROM v$instance;
STATUS
————
OPEN
SQL> SELECT tablespace_name, used_percent FROM dba_tablespace_usage_metrics;
TABLESPACE_NAME USED_PERCENT
—————————— ————
SYSTEM 20.0
SYSAUX 30.0
UNDOTBS1 10.0
TEMP 5.0
USERS 15.0
FGEDUTBS 25.0
### 3. GoldenGate健康检查
GGSCI> 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
### 4. 数据一致性检查
SQL> — 在源端执行
SQL> SELECT count(*) FROM fgedu.emp;
COUNT(*)
———-
1000
SQL> — 在目标端执行
SQL> SELECT count(*) FROM fgedu.emp;
COUNT(*)
———-
1000
### 5. 健康检查结果
– 系统资源使用正常
– 数据库状态正常
– GoldenGate进程运行正常
– 数据一致性良好
– 健康检查通过
4.3 自动化巡检案例
以下是自动化巡检的实战案例:
## 环境信息
GoldenGate版本:21.3.0.0.0
操作系统:Oracle Linux 8.5
## 自动化巡检步骤
### 1. 创建巡检脚本
$ vi /GoldenGate/app/scripts/daily_check.sh
#!/bin/bash
# daily_check.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
echo “=== GoldenGate Daily Check ===”
echo “Date: $(date)”
echo “”
# 检查Manager进程
echo “1. Checking Manager process…”
/GoldenGate/app/ggsci << EOF
info mgr
EOF
echo ""
# 检查Extract进程
echo "2. Checking Extract processes..."
/GoldenGate/app/ggsci << EOF
info extract *
EOF
echo ""
# 检查Replicat进程
echo "3. Checking Replicat processes..."
/GoldenGate/app/ggsci << EOF
info replicat *
EOF
echo ""
# 检查同步延迟
echo "4. Checking replication lag..."
/GoldenGate/app/ggsci << EOF
lag *
EOF
echo ""
# 检查系统资源
echo "5. Checking system resources..."
echo "CPU usage:"
top -n 1 | grep "%Cpu"
echo "Memory usage:"
free -h
echo "Disk usage:"
df -h | grep GoldenGate
echo ""
echo "=== Daily Check Completed ==="
### 2. 配置定时任务
$ crontab -e
0 9 * * * /GoldenGate/app/scripts/daily_check.sh >> /GoldenGate/app/logs/daily_check.log 2>&1
### 3. 查看巡检结果
$ cat /GoldenGate/app/logs/daily_check.log
=== GoldenGate Daily Check ===
Date: Wed Apr 10 09:00:00 CST 2026
1. Checking Manager process…
Manager is running (IP port fgedu.7809).
2. Checking Extract processes…
EXTRACT RUNNING EXT1 00:00:00 00:00:05
EXTRACT RUNNING DP1 00:00:00 00:00:03
3. Checking Replicat processes…
REPLICAT RUNNING REP1 00:00:00 00:00:02
4. Checking replication lag…
Sending LAG request to EXTRACT EXT1 …
Last record lag: 00:00:00.
Sending LAG request to EXTRACT DP1 …
Last record lag: 00:00:00.
Sending LAG request to REPLICAT REP1 …
Last record lag: 00:00:00.
5. Checking system resources…
CPU usage:
%Cpu(s): 10.0 us, 5.0 sy, 0.0 ni, 80.0 id, 5.0 wa, 0.0 hi, 0.0 si, 0.0 st
Memory usage:
total used free shared buff/cache available
Mem: 16G 4.0G 8.0G 0.0G 4.0G 11G
Swap: 8.0G 0.0G 8.0G
Disk usage:
/dev/sdb1 200G 50G 150G 25% /GoldenGate
=== Daily Check Completed ===
### 4. 自动化巡检结果
– 巡检脚本执行正常
– 定时任务配置成功
– 巡检结果记录完整
– 系统状态正常
Part05-风哥经验总结与分享
5.1 最佳实践
根据实际经验,总结以下最佳实践:
- 定期巡检:按照规定的频率进行巡检,确保系统的正常运行
- 全面检查:覆盖系统的各个方面,包括进程状态、性能指标、错误日志等
- 自动化:使用自动化工具进行巡检,提高效率和准确性
- 记录详细:详细记录巡检结果,便于分析和追踪
- 及时处理:及时处理巡检发现的问题,避免问题扩大
5.2 常见问题与解决
日常巡检与健康检查中的常见问题及解决方案:
- 进程异常:检查进程状态,分析错误日志,重启进程
- 同步延迟:检查网络连接,优化GoldenGate配置,提高系统性能
- 系统资源不足:增加系统资源,优化资源配置,清理不必要的文件
- 数据不一致:检查数据同步状态,重新初始化数据,修复数据冲突
- 错误日志增多:分析错误原因,修复问题,清理错误日志
5.3 风哥经验分享
在多次GoldenGate日常巡检与健康检查的经验中,我总结了以下几点心得:
1. 预防为主:巡检的目的是预防系统故障的发生,通过定期检查,发现和解决潜在问题,确保系统的稳定运行。
2. 全面覆盖:巡检内容要全面覆盖系统的各个方面,包括进程状态、性能指标、错误日志、系统资源等,确保没有遗漏。
3. 自动化:使用自动化工具进行巡检,提高效率和准确性,减少人工错误。
4. 及时处理:对于巡检发现的问题,要及时处理,避免问题扩大,影响系统的正常运行。
5. 持续改进:根据巡检结果,不断优化系统配置和巡检流程,提高系统的可靠性和性能。
更多学习教程公众号风哥教程itpux_com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
