设为首页 加入收藏

TOP

MySQL高可用系列之MHA(二)(六)
2015-07-24 12:04:15 来源: 作者: 【 】 浏览:47
Tags:MySQL 可用 系列 MHA
MYSQL_OK is 1 , mysql down MYSQL_OK is 0

MYSQL_OK=1
function check_mysql_helth (){
$MYSQL -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD -e "show status;" >/dev/null 2>&1
if [ $? = 0 ] ;then
MYSQL_OK=1
else
MYSQL_OK=0
fi
return $MYSQL_OK
}
while [ $CHECK_TIME -ne 0 ]
do
let "CHECK_TIME -= 1"
check_mysql_helth
if [ $MYSQL_OK = 1 ] ; then
CHECK_TIME=0
exit 0
fi
if [ $MYSQL_OK -eq 0 ] && [ $CHECK_TIME -eq 0 ]
then
pkill keepalived
exit 1
fi
sleep 1
done

(6)启动keepalived,查看虚拟IP是否绑定成功

mastermysql

[root@node1 ~]# service keepalived start
查看keepalived状态
[root@node1 ~]# service keepalived status
keepalived (pid 15712) is running...
查看是否绑定虚拟IP
[root@node1 ~]# ip addr
1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:19:27:ad brd ff:ff:ff:ff:ff:ff
inet 192.168.3.27/24 brd 192.168.3.255 scope global eth0
inet 192.168.3.33/32 scope global eth0

backupMySQL
[root@node2 keepalived]# service keepalived status
keepalived (pid 13808) is running...
[root@node2 keepalived]# ip addr
1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:de:b3:a1 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.28/24 brd 192.168.3.255 scope global eth0

从上可以看到masteMySQL上虚拟IP绑定成功,backupMySQL上keepalived服务正常运行,但无虚拟IP(这属于正常)

三.测试验证

通过VIP 192.168.3.33登陆MySQL,正常使用

1.停止master上MySQL服务

[root@node1 ~]# service mysql stop
Shutting down MySQL... [ OK ]
[root@node1 ~]# service mysql status
MySQL is not running [FAILED]

MySQL服务停止后,查看keepalived服务是否运行
[root@node1 ~]# service keepalived status
keepalived dead but subsys locked
可见keepalived已经停止了

2.查看backupMySQL

[root@node2 keepalived]# service mysql status
MySQL running (13740) [ OK ]
[root@node2 keepalived]# service keepalived status
keepalived (pid 13808) is running...

mysql> show variables like 'read_only';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| read_only | OFF |
+---------------+-------+
1 row in set (0.00 sec)

可见MySQL服务及keepalived都正常运行,切该库处于可写状态

3.查看只读库slave状态

mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.3.28
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000011
Read_Master_Log_Pos: 107
Relay_Log_File: mysql-relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000011
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 107
Relay_Log_Space: 409
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 28
1 row in set (0.00 sec)

可见master已由192.168.3.27切换为192.168.3.28

4.通过VIP访问MySQL数据库,我们继续测试

删除test库下的student表
DROP TABLE student;
查看从库,test库下的student表已不存在,数据同步成功。

5.管理节点查看MHA运行情况

[root@m

首页 上一页 3 4 5 6 7 8 下一页 尾页 6/8/8
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇aix下实现goldengate随os启动而自.. 下一篇MySQL更新和删除

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: