首页 > 代码库 > 主主漂移(切换)
主主漂移(切换)
同时安装keepalived
依赖包
[root@dep5 keepalived-1.1.20]# yum install openssl-devel popt-devel -y
make clean&& make clean all
tar -xvf keepalived-1.1.20.tar.gz && cd keepalived-1.1.20 && ./configure --prefix=/usr/local/keepalived && make && make install && cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ && cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir /etc/keepalived && cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ && cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#############必须给检查文件给执行权限
chmod /etc/keepalived/manage_mysql/ -x -R
双主都需要设置用户
grant all on *.* to keepalived@‘%‘ identified by ‘keepalived‘;
双主都需要安装keepalived并且配置
keepalived配置文件
! Configuration File for keepalivedglobal_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id MYSQLHA_DEVEL}vrrp_script check_mysqld { script "/etc/keepalived/mysqlcheck/check_mysql.sh" #检查MYSQL 复制状态脚本 interval 2 weight 2}vrrp_instance VI_1 { state BACKUP #这里主201和主202都写上BACKUP interface eth0 #vip对外的网络接口 virtual_router_id 66 #标识号。。主主要统一起来 priority 100 #优先级。主202上改成90 advert_int 2# nopreempt #不抢占模式。在优先级高的那台设置此参数,一般在主上设置,主的优先级高 authentication { auth_type PASS auth_pass 1111 } track_script { check_mysqld #调用MYSQL脚本的函数 } virtual_ipaddress { 192.168.5.10/24 }}
检查Mysql状态脚本
#!/bin/bash#Totle:check_mysql#Description:Check mysql status#system:Use Linux#======================================#Set mysql host #每个机器改成自己的IP地址和远程授权的用户Host_S=192.168.1.5User_S=keepalivedPwss_S=keepalivedPort_S=3306#======================================#Function-->Check_mysql_IO#=====================================Check_mysql_IO(){Check_IO=`mysql -u$User_S -p$Pwss_S -h $Host_S -P $Port_S -e "show slave status\G" | grep "Runnin" | sed ‘s/ //g‘ | grep "IO" | awk -F: ‘{print $NF}‘ | grep "Yes" | wc -l`Check_SQL=`mysql -u$User_S -p$Pwss_S -h $Host_S -P $Port_S -e "show slave status\G" | grep "Runnin" | sed ‘s/ //g‘ | grep "SQL" | awk -F: ‘{print $NF}‘ | grep "Yes" | wc -l`if [ $Check_IO -ne 1 -o $Check_SQL -ne 1 ]then /etc/init.d/keepalived stop return 1else Check_PID=`/etc/init.d/keepalived status | grep "pid" | wc -l` if [ $Check_PID -eq 1 ] then echo "OK" exit 0 else /etc/init.d/keepalived start if [ $? -eq 0 ] then echo "keepalived start ok" >/tmp/checkmysql.log exit 0 else echo "keepalived start fail..">/tmp/checkmysql.log return 1 fi fi fi}#======================================#Function-->Main#=====================================Main(){Check_mysql_IO if [ $? -eq 1 ] then echo "Mysql $Host_S IO or SQL error" | mail -s "Mysql IO error" 50738846@qq.com exit 1 fi}Main;
主主漂移(切换)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。