
使用oracle goldengate的环境中,点检可以查看ogg各进程运行状态,有时排查问题需要查看某个时间节点各进程的状态,是否有延迟等,那么采用脚本记录ogg进程状态,就非常有帮助了。文中通过ogg_check_v1.0.sh完成对ogg各进程历史状态进行记录,便于后续进程状态排查及故障分析。

1. 脚本概况
ogg_check_v1.0.sh脚本每间隔10分钟(可调)检查ogg进行运行状态,将ogg状态信息保存到log中,log按天保存,保留30天(可调),提升可读性加入了颜色区别,后有效果展示。
2. 创建脚本目录
bin目录作为脚本存放目录,logs/ogg_check作为日志存放目录。
mkdir -p home/oracle/bin home/oracle/logs/ogg_check
3. 创建shell脚本
shell下直接创建脚本ogg_check_v1.0.sh到/home/oracle/bin/目录下:
cat > home/oracle/bin/ogg_check_v1.0.sh <<-'OGGEOF'#!/bin/bash# author by KunWang, landnow@gmail.comsource ~/.bash_profile### 1 variableexport DATE_FILE_NAME=ogg_check_`date '+%Y-%m-%d'`.logexport DATE_CONTENT=`date '+%Y-%m-%dT%H:%M:%S'`export LOG_DIR=/home/oracle/logs/ogg_check###2 function: ogg_checkogg_check(){echo -ne "\033[32m =====> $DATE_CONTENT: info all =====> \033[0m"cd /oggecho "info all" | ./ggsci}###3 delete logsdelete_logs(){#echo "delete logs"find $LOG_DIR -name "*.log" -mtime +30 -type f -exec ls -lrt {} \;find $LOG_DIR -name "*.log" -mtime +30 -type f -exec rm -f {} \;echo -e "\033[32m <===== $DATE_CONTENT: end <===== \033[0m"}###4 if log existif [ -a $LOG_DIR/$DATE_FILE_NAME ]then# echo $LOG_DIR/$DATE_FILE_NAME is exsitogg_check >> $LOG_DIR/$DATE_FILE_NAMEdelete_logs >> $LOG_DIR/$DATE_FILE_NAME# pwdelsetouch $LOG_DIR/$DATE_FILE_NAMEogg_check >> $LOG_DIR/$DATE_FILE_NAMEdelete_logs >> $LOG_DIR/$DATE_FILE_NAME# pwdfiOGGEOF
4. 权限
给脚本赋予oracle用户可执行权限
chmod u+x ~/bin/ogg_check_v1.0.sh
5. 测试脚本
手动执行一次:
/home/oracle/bin/ogg_check_v1.0.sh
也可只输入脚本名称执行:
ogg_check_v1.0.sh
6. 将脚本加入计划任务
编辑crontab,调整脚本执行频率:
crontab -e #10分钟执行一次,*/10,可根据主机性能和功能需求调整时间间隔*/10 * * * * home/oracle/bin/ogg_check_v1.0.sh
7. 效果图
查看日志效果图:
head -40 /home/oracle/logs/ogg_check/ogg_check_2024-12-25.log
当前结果显示两端执行记录,每段以绿色开始和结束,便于区分。后续可以根据检测内容,在脚本中添加更多ogg命令。

往期推荐
文章转载自rundba,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




