分享一个shell,它能自动恢复mysql主从错误

本shell的功能是自动恢复mysql主从错误,是不是感觉非常强大?好吧,直接上代码。

 代码如下 复制代码
#!/bin/sh
# check_mysql_slave status
ip=eth0
mysql_command=/home/server/mysql/bin/mysql
mysql_user=root
mysql_pass=123456
mysql_sockfile=/tmp/mysql.sock
datetime=`date +"%Y-%m-%d_%H:%M:%S"`
mysql_slave_logfile=/home/server/logs/check_mysql_slave.log
slave_ip=`ifconfig $ip|grep "inet addr" | awk -F[:" "]+ '{print $4}'`
#status=$($mysql_command -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "show slave status\G" | grep -i "running")
Slave_IO_Running=`grep Slave_IO_Running $mysql_slave_logfile| awk ' {print $2}'`
Slave_SQL_Running=`grep Slave_SQL_Running $mysql_slave_logfile | awk '{print $2}'`
if [ "$Slave_IO_Running" = "Yes" -a "$Slave_SQL_Running" = "Yes" ]
then
        echo "Slave is Running!"
        else
        echo " $datetime $slave_ip Slave is not running!" >> $mysql_slave_logfile
cat | $mysql_command -u$mysql_user -p$mysql_pass -S $mysql_sockfile << EOF
stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;
exit
EOF
fi
时间: 2024-09-23 14:46:28

分享一个shell,它能自动恢复mysql主从错误的相关文章

自动恢复MySQL数据库的日志文件思路分享及解决方案_Mysql

如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据."mysqlbinlog:用于处理二进制日志文件的实用工具". 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径.如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出.启用二进制日志的选项为 --log-b

如何恢复MySQL主从数据一致性_Mysql

最近被告知,MySQL主从数据库的数据不一致,猜测备库在同步过程中出现了问题,于是,登上备库,使用 mysql> show slave status\G查看,果然,备库在insert语句中因违反主键约束,导致备库停止了同步.现在的问题很明确,就是如何恢复主从库数据的一致性. 可选方案如下: 一.查看Master最新的Position,将其作为Slave复制的起点. 这种思路体现的是过去的不一致既往不咎,现在保持同步即可.看起来,这个思路和恢复主从库数据的一致性的初衷有所违背,但这种方法,简单,高

分享一个插件实现水珠自动下落效果_javascript技巧

分享一个水珠自动下落的插件,下载地址:https://github.com/foreverjiangting/rainyday.js 下面来看看如何使用它?添加下面代码即可运行它. 实现效果如下: 代码如下: <!DOCTYPE HTML> <html> <head> <style> </style> <meta http-equiv="Content-Type" content="text/html; cha

教你自动恢复MySQL数据库的日志文件

如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据."mysqlbinlog:用于处理二进制日志文件的实用工具". 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径.如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出.启用二进制日志的选项为--log-bi

自动恢复MySQL数据库的日志文件

  如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据."mysqlbinlog:用于处理二进制日志文件的实用工具". 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径.如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出.启用二进制日志的选项为-- log

教你自动恢复MySQL数据库的日志文件(binlog)_Mysql

如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据."mysqlbinlog:用于处理二进制日志文件的实用工具". 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径.如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出.启用二进制日志的选项为 --log-b

Mysql 1864 主从错误解决方法_Mysql

从字面意思看了一下是因为slave_pending_jobs_size_max默认值为16777216(16MB),但是slave接收到的slave_pending_jobs_size_max为17085453(17M): 解决方案 从库执行如下SQL mysql>stop slave; mysql>set global slave_pending_jobs_size_max=20000000; mysql> start slave; #在多线程复制时,在队列中Pending的事件所占用

shell脚本-linux如何设置一个shell在开机登录之后自动运行?

问题描述 linux如何设置一个shell在开机登录之后自动运行? 系统的一些后台应用需要通过运行一个shell来启动,那么如何设置这个shell在开机用户登陆之后自动运行 解决方案 把你shell脚本放到 /etc/init.d/中 同时chmod设置X执行权限,这样系统启动就可以执行了 http://stackoverflow.com/questions/12973777/how-to-run-a-shell-script-at-startup 解决方案二: 现在可以直接在图形化界面中设置,

脚本交互-求助!我想写一个shell脚本 要求可以自动输入密码

问题描述 求助!我想写一个shell脚本 要求可以自动输入密码 困扰很多天的一个问题. 第一句为./ibe combine xxxxx@qq.com key 执行完这一句之后 会提示输入两个密码pw1和pw2 ,能不能写个脚本,将"1111"和"2222"分别在提示输入后自动输入? 谢谢! 我现在已经写出了输入第一个密码的方法 但是第二个密码 2222 不知道应当怎么写才能输入了 请指点! #! /bin/bash echo Content-type: text/h