欢迎来到天天文库
浏览记录
ID:39550376
大小:46.00 KB
页数:5页
时间:2019-07-06
《HeartBeat启动关闭mysqld服务的脚本修改》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于HA在发生切换时,都会做STOP本机资源,然后再START对方的资源。我们的实际环境中有两个资源:一个是IPaddr,用来管理VIP;一个是mysql,用来管理MYSQL资源;在实际的应用过程中,我们发现MYSQL一下子关不掉(flushdirtypages),或启动需要很长时间(recovery).这样也就大大延长了HA切换的时间。所以我们在想,是不是可以让HA只管理MYSQL的状态,而不管理MYSQL的启动与STOP呢?我们知道,HA管理lsb类型的资源时,是调用/etc/init.d/或者./res
2、ource.d/目录下的该资源相关命令加参数start/stop/status.比如,有mysql资源,启动mysql:servicemysqlstart停止mysql:servicemysqlstop状态mysql:servicemysqlstatus为了达到目的,我们可以修改SHELL脚本:/etc/init.d/mysql====================================‘status’)#First,checktoseeifpidfileexistsiftest-s“$serve
3、r_pid_file”;thenreadmysqld_pid<$server_pid_fileifkill-0$mysqld_pid2>/dev/null;thenlog_success_msg“MySQLrunning($mysqld_pid)”exit0elselog_failure_msg“MySQLisnotrunning,butPIDfileexists”exit1fielse#Trytofindappropriatemysqldprocessmysqld_pid=`pidof$sbindir/my
4、sqld`iftest-z$mysqld_pid;theniftest“$use_mysqld_safe”=“0″;thenlockfile=/var/lock/subsys/mysqlmanagerelselockfile=/var/lock/subsys/mysqlfiiftest-f$lockfile;thenlog_failure_msg“MySQLisnotrunning,butlockexists”exit2filog_failure_msg“MySQLisnotrunning”exit3else
5、log_failure_msg“MySQLisrunningbutPIDfilecouldnotbefound”exit4fifi;;====================================>>>>这一段改为:================================================================‘status’)#First,checktoseeifpidfileexistsiftest-s“$server_pid_file”;thenreadmysq
6、ld_pid<$server_pid_fileifkill-0$mysqld_pid2>/dev/null;then#—————————————————Modi-1./root/.bash_profileMYSQLPID=$$STAT_FILE=/home/mysql/mysql.`date+%Y%m%d%H%M%S`.$MYSQLPIDmysql-uroot-h127.0.0.1-s-e“select”aliyun.mysql”;”>$STAT_FILE2>&1&CNT=1MYSQLSTATUS=UNK
7、NOWNwhile["$MYSQLSTATUS"="UNKNOWN"]doiftest-f$STAT_FILEthenreadCONTENT<$STAT_FILEif["$CONTENT"="aliyun.mysql"]thenMYSQLSTATUS=OKlog_success_msg“MySQLrunning($mysqld_pid)”rm-f$STAT_FILEexit0elif["$CONTENT"!=""];thenERROR_CNT=`grep-i“error”$STAT_FILE
8、grep-v“
9、usingpassword”
10、wc-l`if["$ERROR_CNT"-ge"1"];thenlog_failure_msg“MySQLstatusWarninginlogfile$STAT_FILE”fiexit0fifisleep$CNTCNT=`expr$CNT+2`if[$CNT-gt5];thenMYSQLSTATUS=ERRORlog_failure_msg“MySQLrunning($
此文档下载收益归作者所有