0
本帖最后由 Landon 于 2016-1-22 12:15 编辑
这个脚本我已经写好了,就当练习玩玩,该脚本也算是一个“一键搭建mysql主从”!
该脚本是放在slave上运行的,做主主模式的话,A机器和B机器 两边都放上这几个脚本就可以了,放在同一个文件夹下(每个脚本里面都使用中文标识易于理解)!
功能:
如果主从失败会发送,邮件给用户,如果修复好了同样也会发送,如果处理不了同样也会发送邮件给用户,要求用户立刻手动处理,并且退出脚本!
如果处理成功了,会继续监测!
对付mysql主从或者 主从掉的解决办法:
1.slave stop ;slave start
2.reset slave,获取master bin-log 和position ,然后进行slave重建
该脚本全程是没有进行锁表的,是直接进行重建的!
注意:数据库这玩意儿,能手动就手动!
思路:主要是这样的通过expect 发送一个脚本到master上取得master bin-log和position信息记录临时文件,然后发送回来!
剩下的就是在slave机器上监控,如果需要重建就发送脚本去获取!
主脚本是check_master.sh,调用 t1.expect,发送 t-master.sh 到master机器上!master机器会返回一个/tmp/master.log这是记录了master的信息!
注:ssh端口为22 如果需要修改,要自行修改 t1.expect 上的rsync 命令
mysql命令要能直接使用!要先设置PATH环境!
check_master.sh 需要修改的选项
##local mysql user
user="root"
##local mysql password
passwd="a123456"
##notice e-mail
email="972367265@qq.com"
##replication user
repl_user="repl"
##replication password
repl_passwd="repl"
##master host
ma_host="192.168.1.100"
t1.expect 需要修改的选项
##对方的登录user (master)
set user "root"
##对方的登录密码(master)
set password "a123456"
##对方的IP (master)
set r_host "192.168.1.100"
##本机的登录用户
set user2 "root"
##本机的登录密码
set password2 "a123456"
##本地的IP
set l_host "192.168.1.200"
t-master.sh 需要修改的选项
##mysql的用户 (master)
user="root"
##mysql的密码 (master)
passwd="a123456"
这个脚本我已经写好了,就当练习玩玩,该脚本也算是一个“一键搭建mysql主从”!
该脚本是放在slave上运行的,做主主模式的话,A机器和B机器 两边都放上这几个脚本就可以了,放在同一个文件夹下(每个脚本里面都使用中文标识易于理解)!
功能:
如果主从失败会发送,邮件给用户,如果修复好了同样也会发送,如果处理不了同样也会发送邮件给用户,要求用户立刻手动处理,并且退出脚本!
如果处理成功了,会继续监测!
对付mysql主从或者 主从掉的解决办法:
1.slave stop ;slave start
2.reset slave,获取master bin-log 和position ,然后进行slave重建
该脚本全程是没有进行锁表的,是直接进行重建的!
注意:数据库这玩意儿,能手动就手动!
思路:主要是这样的通过expect 发送一个脚本到master上取得master bin-log和position信息记录临时文件,然后发送回来!
剩下的就是在slave机器上监控,如果需要重建就发送脚本去获取!
主脚本是check_master.sh,调用 t1.expect,发送 t-master.sh 到master机器上!master机器会返回一个/tmp/master.log这是记录了master的信息!
注:ssh端口为22 如果需要修改,要自行修改 t1.expect 上的rsync 命令
mysql命令要能直接使用!要先设置PATH环境!
check_master.sh 需要修改的选项
##local mysql user
user="root"
##local mysql password
passwd="a123456"
##notice e-mail
email="972367265@qq.com"
##replication user
repl_user="repl"
##replication password
repl_passwd="repl"
##master host
ma_host="192.168.1.100"
t1.expect 需要修改的选项
##对方的登录user (master)
set user "root"
##对方的登录密码(master)
set password "a123456"
##对方的IP (master)
set r_host "192.168.1.100"
##本机的登录用户
set user2 "root"
##本机的登录密码
set password2 "a123456"
##本地的IP
set l_host "192.168.1.200"
t-master.sh 需要修改的选项
##mysql的用户 (master)
user="root"
##mysql的密码 (master)
passwd="a123456"
编辑回复