Chinaunix首页 | 论坛 | 博客
  • 博客访问: 152614
  • 博文数量: 39
  • 博客积分: 825
  • 博客等级: 准尉
  • 技术积分: 955
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-25 14:05
文章分类

全部博文(39)

文章存档

2014年(4)

2013年(13)

2012年(22)

我的朋友

分类: Oracle

2012-11-15 14:57:03

  说明:脚本包含同步冲突检查及最大lag延时检查,此脚本配合
飞信机器人使用可以提供短信报警功能。
 

点击(此处)折叠或打开

  1. #! /bin/bash
  2. ####################################################################
  3. #Read configuration file
  4. source $HOME/.bash_profile;
  5. v_shell_path=$HOME/some_shell/gg_check;
  6. v_now_time=$(date "+%F__%H_%M_%S");
  7. gg_home='/home/ora10g/goldengate';
  8. v_now=$(date "+%Y%m%d%H%M");
  9. v_log_dir=${gg_home}/LagLog;
  10. if [ -d ${v_shell_path} ]
  11. then
  12. if [ -f /etc/sysconfig/network-scripts/ifcfg-bond0 ]
  13. then
  14. v_ipaddr=$(cat /etc/sysconfig/network-scripts/ifcfg-bond0 | \
  15. grep -i 'ipaddr' | cut -d'=' -f2);
  16. elif [ -f /etc/sysconfig/network-scripts/ifcfg-eth0 ]
  17. then
  18. v_ipaddr=$(cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep -i 'ipaddr' |\
  19. cut -d'=' -f2);
  20. else
  21. v_ipaddr='';
  22. fi;
  23. if [ -z ${v_ipaddr} ]
  24. then
  25. v_ipaddr='Unknow';
  26. fi
  27. cd ${v_shell_path};
  28. ####################################################################
  29. #discards & collisions DML check
  30. v_gg_colfile=/tmp/ggcolfile.$$;
  31. $GG_HOME/ggsci > ${v_gg_colfile} <
  32. stats * hourly
  33. EOF
  34. v_diserr_cnt=$(cat ${v_gg_colfile} |\
  35. egrep -i '(discards|collisions)' |\
  36. sed 's/[^0-9.]//g' |\
  37. grep -v '0.00' |\
  38. wc -l);
  39. rm -f ${v_gg_colfile};
  40. ####################################################################
  41. #Gather OGG info
  42. cd ${v_shell_path};
  43. $GG_HOME/ggsci > ogg_info${v_now_time}.log <
  44. info all
  45. EOF
  46. ####################################################################
  47. #Find error info (not running)
  48. egrep -i '(^REPLICAT|EXTRACT)' ogg_info${v_now_time}.log | \
  49. grep -iv 'RUNNING' > ogg_error_info${v_now_time}.log;
  50. v_err_cnt=$(wc -l ogg_error_info${v_now_time}.log | cut -d' ' -f1);
  51. touch tmp_zhy.log;
  52. ####################################
  53. #GG lag check
  54. mkdir -p ${v_log_dir};
  55. if [ ! -d ${gg_home} ]
  56. then
  57. :;
  58. else
  59. ${gg_home}/ggsci > ${v_log_dir}/ggstats.${v_now} <
  60. lag *
  61. EOF
  62. v_mx_lag=$(
  63. cat ${v_log_dir}/ggstats.${v_now} |\
  64. egrep 'Last record.+seconds' |\
  65. cut -d' ' -f4 |\
  66. sort -n |\
  67. tail -1);
  68. fi;
  69. if [ ${v_err_cnt} -ne 0 -o ${v_diserr_cnt} -ne 0 -o ${v_mx_lag} -gt 100 ]
  70. then
  71. awk '{print $1,$2,$3}' ogg_error_info${v_now_time}.log > tmp_zhy.log;
  72. echo ${v_ipaddr} > ogg_error_info${v_now_time}.log;
  73. echo 'Max lag is: '${v_mx_lag} >> ogg_error_info${v_now_time}.log;
  74. #cat tmp_zhy.log >> ogg_error_info${v_now_time}.log;
  75. scp ogg_error_info${v_now_time}.log \
  76. root@192.168.1.1:/home/ora10g/monitor/gg_check/${v_ipaddr}__${v_now_time}.log;
  77. fi
  78. touch ogg_error_info${v_now_time}.log;rm ogg_info${v_now_time}.log \
  79. ogg_error_info${v_now_time}.log \
  80. tmp_zhy.log;
  81. else
  82. echo "No ${v_shell_path} directory!";
  83. fi

阅读(4913) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~