数码资讯
shell脚本写在CentOS监控MySQL主从复制教程
目的:定期监控mysql主从数据库的同步,如果不同步,记录故障时间,执行命令,恢复主从同步状态。 1。创建一个脚本文件 六 / / / check_mysql_slave.sh crontab家#编辑器,添加以下代码 # /斌/ SH! # check_mysql_slave状态 IP = eth0
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
目的:定期监控mysql主从数据库的同步,如果不同步,记录故障时间,执行命令,恢复主从同步状态。
1。创建一个脚本文件
六 / / / check_mysql_slave.sh crontab家#编辑器,添加以下代码
# /斌/ SH!
# check_mysql_slave状态
IP = eth0 #卡名称
mysql_binfile = / usr / / /本地MySQL bin / MySQL
mysql_user =根# MySQL数据库帐户
mysql_pass = 123456 #密码
mysql_sockfile = / /到TMP
日期时间= `日期+% % % Y M D / H:% % m:%s
mysql_slave_logfile = / / / check_mysql_slave.log家日志#日志文件的路径,必须创建。
slave_ip = ` ifconfig grep IP |美元inet addr| awk -F {:{ }打印4美元`} +
状态= $($ mysql_binfile U P mysql_pass mysql_user美元美元的mysql_sockfile美元ESHOW SLAVE STATUS G| grep我运行)
slave_io_running = ` echo $状态slave_io_running | | grep awk {打印2美元的` }
slave_sql_running = ` echo $状态grep slave_sql_running awk {打印2美元}的` | |
如果{$ slave_io_running=是-$ slave_sql_running=是}
然后回声奴隶正在运行!
其他的
回声美元美元slave_ip奴隶没有运行时间!> mysql_slave_logfile美元
mysql_binfile美元-美元mysql_user P mysql_pass美元的mysql_sockfile美元E奴隶停止;
mysql_binfile美元-美元mysql_user P mysql_pass美元的mysql_sockfile美元-设置全局sql_slave_skip_counter = 1 ;
mysql_binfile美元-美元mysql_user P mysql_pass美元的mysql_sockfile美元E奴隶开始;
mysql_binfile美元-美元mysql_user P mysql_pass美元的mysql_sockfile美元- E出口
FI
保存并退出#:WQ!
chmod +x / / / check_mysql_slave.sh crontab家#添加脚本执行权限
2。添加任务计划和修改 / / crontab等
VI /等/ crontab在最后一行添加#
* / 10 *根 / / / check_mysql_slave.sh crontab家#说每10分钟一次
保存并退出#:WQ!
三.启动crond使设置有效
/ / RC等。D / init. d / crond启动# yum install -维克西cron安装计划任务,有些系统可能不预装
在#设置引导Chkconfig crond
查看crond服务的开始#开始
mysql的主同步状态可以从日志文件 / / / check_mysql_slave.log原木家
ps:下一个脚本自动增加主库的文件号,当发现同步不同步时,POS会同步主库。脚本的内容如下:
# /斌/ SH!
#集X
#文件slave_repl.sh
#作者凯文
#日期是2011-11-13
mstool = / usr / / /当地mysql-3307 bin / MySQL - H 192.168.1.106 -中- PW!zl7pog27 P 3307
sltool = / usr / / /当地mysql-3307 bin / MySQL - H 192.168.1.107 -中- PW!zl7pog27 P 3307
声明一个slave_stat
slave_stat =($($ sltool ESHOW SLAVE STATUS G| grep运行| awk {打印2美元}))
如果{$ { slave_stat { 0 } }=是-$ { slave_stat { 1 } }=是}
然后
回声OK奴隶正在运行
0号出口
其他的
回声关键的奴隶是错误
回声
回声*********************************************************
现在用主MySQL启动复制!
文件= ` mstool美元E显示主人的地位 G| grep文件| awk {打印2美元的` }
POS = ` mstool美元E显示主人的地位 G| grepPOS| awk {打印2美元的` }
sltool美元- E,奴隶停止;改变主master_host = '192.168.1.106 ',master_port = 3307,master_user = 'repl ',master_password =大片,master_user = 'repl ',master_host = '192.168.1.106;
3睡眠
sltool美元ESHOW SLAVE STATUS G;| grep运行
回声
现在复制完成!
回声
回声**********************************************************
2号出口
FI
以下结果如下:
#。 / slave_stop3307.sh
应用
现在停止奴隶复制!
slave_io_running:无
slave_sql_running:无
应用
#。 / slave_repl3307.sh
临界从误
*********************************************************
现在开始使用主MySQL复制!
slave_io_running:是的
slave_sql_running:是的
现在复制完成了!
**********************************************************
1。创建一个脚本文件
六 / / / check_mysql_slave.sh crontab家#编辑器,添加以下代码
# /斌/ SH!
# check_mysql_slave状态
IP = eth0 #卡名称
mysql_binfile = / usr / / /本地MySQL bin / MySQL
mysql_user =根# MySQL数据库帐户
mysql_pass = 123456 #密码
mysql_sockfile = / /到TMP
日期时间= `日期+% % % Y M D / H:% % m:%s
mysql_slave_logfile = / / / check_mysql_slave.log家日志#日志文件的路径,必须创建。
slave_ip = ` ifconfig grep IP |美元inet addr| awk -F {:{ }打印4美元`} +
状态= $($ mysql_binfile U P mysql_pass mysql_user美元美元的mysql_sockfile美元ESHOW SLAVE STATUS G| grep我运行)
slave_io_running = ` echo $状态slave_io_running | | grep awk {打印2美元的` }
slave_sql_running = ` echo $状态grep slave_sql_running awk {打印2美元}的` | |
如果{$ slave_io_running=是-$ slave_sql_running=是}
然后回声奴隶正在运行!
其他的
回声美元美元slave_ip奴隶没有运行时间!> mysql_slave_logfile美元
mysql_binfile美元-美元mysql_user P mysql_pass美元的mysql_sockfile美元E奴隶停止;
mysql_binfile美元-美元mysql_user P mysql_pass美元的mysql_sockfile美元-设置全局sql_slave_skip_counter = 1 ;
mysql_binfile美元-美元mysql_user P mysql_pass美元的mysql_sockfile美元E奴隶开始;
mysql_binfile美元-美元mysql_user P mysql_pass美元的mysql_sockfile美元- E出口
FI
保存并退出#:WQ!
chmod +x / / / check_mysql_slave.sh crontab家#添加脚本执行权限
2。添加任务计划和修改 / / crontab等
VI /等/ crontab在最后一行添加#
* / 10 *根 / / / check_mysql_slave.sh crontab家#说每10分钟一次
保存并退出#:WQ!
三.启动crond使设置有效
/ / RC等。D / init. d / crond启动# yum install -维克西cron安装计划任务,有些系统可能不预装
在#设置引导Chkconfig crond
查看crond服务的开始#开始
mysql的主同步状态可以从日志文件 / / / check_mysql_slave.log原木家
ps:下一个脚本自动增加主库的文件号,当发现同步不同步时,POS会同步主库。脚本的内容如下:
# /斌/ SH!
#集X
#文件slave_repl.sh
#作者凯文
#日期是2011-11-13
mstool = / usr / / /当地mysql-3307 bin / MySQL - H 192.168.1.106 -中- PW!zl7pog27 P 3307
sltool = / usr / / /当地mysql-3307 bin / MySQL - H 192.168.1.107 -中- PW!zl7pog27 P 3307
声明一个slave_stat
slave_stat =($($ sltool ESHOW SLAVE STATUS G| grep运行| awk {打印2美元}))
如果{$ { slave_stat { 0 } }=是-$ { slave_stat { 1 } }=是}
然后
回声OK奴隶正在运行
0号出口
其他的
回声关键的奴隶是错误
回声
回声*********************************************************
现在用主MySQL启动复制!
文件= ` mstool美元E显示主人的地位 G| grep文件| awk {打印2美元的` }
POS = ` mstool美元E显示主人的地位 G| grepPOS| awk {打印2美元的` }
sltool美元- E,奴隶停止;改变主master_host = '192.168.1.106 ',master_port = 3307,master_user = 'repl ',master_password =大片,master_user = 'repl ',master_host = '192.168.1.106;
3睡眠
sltool美元ESHOW SLAVE STATUS G;| grep运行
回声
现在复制完成!
回声
回声**********************************************************
2号出口
FI
以下结果如下:
#。 / slave_stop3307.sh
应用
现在停止奴隶复制!
slave_io_running:无
slave_sql_running:无
应用
#。 / slave_repl3307.sh
临界从误
*********************************************************
现在开始使用主MySQL复制!
slave_io_running:是的
slave_sql_running:是的
现在复制完成了!
**********************************************************
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。