MySQL之-Replication监控及自动故障切换的详细分析

黄舟
黄舟 原创
2017-03-14 16:45:23 1108浏览

1、服务器规划

Master:192.168.0.152
Slave: 192.168.0.153 192.168.0.154
监控服务器: 192.168.0.154
注意:真实生产环境最好有一台单独的服务器监控数据库Replication,这里我就直接用一台Salve服务器当做监控服务器了。

2、安装MySQL Utilities和MySQL Connectors

下载 MySQL Utilities和MySQL Connectors并安装
在192.168.0.154(监控服务器)服务器上执行以下命令来安装下载的MySQL Utilities和MySQL Connectors

yum install mysql-connector-python-2.1.4-1.el6.x86_64.rpm mysql-utilities-1.6.4-1.el6.noarch.rpm

3、配置好Replcation环境,一台Mster和两台Slave环境

Master:192.168.0.152
Slave: 192.168.0.153 192.168.0.154
监控服务器: 192.168.0.154
配置Replication请参见博文《MySQL之——MS主从复制(读写分离)实现》 、《MySQL之——MSS主从复制(读写分离)实现》 、《MySQL之——BinLog Replication升级为GTIDs Replication四步骤》。

4、为监控机授权

在192.168.0.152、192.168.0.153和192.168.0.154服务器上分别执行:

mysql>grant create,insert ,drop, select, super, replication slave, reload on *.* to 'replm'@'192.168.0.154' identified by password 'replm' with grant option;

在192.168.0.152、192.168.0.153和192.168.0.154分别执行

mysql>show grants for replm@192.168.0.154;

可验证是否授权成功。

注意:如果是单独的一台服务器监控Replication, 只在Replication涉及到的Master和Slave服务器上执行授权操作,授权目标IP为监控服务器IP

5、修改Master和Slave服务器的配置文件,并启用配置

以下是配置Replication监控和故障切换时my.cnf文件中的核心配置

[mysqld]
log-bin=/data/mysql3306log/mysql-bin
binlog-format=mixed
server-id = 001
sync_binlog=1
gtid-mode=on
enforce-gtid-consistency
log-slave-updates
report-host=192.168.0.154
master-info-repository=TABLE
relay-log-info-repository=TABLE

修改配置后,重启mysql服务器,然后mysql服务器会将存储在二进制日志中的两个文件master.info和relay-log.info保存到数据库中,此时执行use mysql;show tables; 会发现mysql数据库中新创建了slave_master_info和slave_relay_log_info两张表。

6、启动监控端

在192.168.0.154(监控服务器)上执行

#mysqlfailover --master=replm:replm@192.168.0.152 --discover-slaves-login=replm:replm

至此,我们配置好了Replication监控及自动故障切换功能了。
注意:当Master服务器挂掉的时候,mysqlfailover会自动在slave服务器中选择一个作为Master,其他slave均对应到新的Master服务器。
注意:当Master挂掉后,mysqlfailover自动在其他slave中选择一个服务器当做Master,当我们手动重启原来的Master服务器时,mysqlfailover不能自动发现原来挂掉的mysql服务器又重启了,这个时候就要我们自己手动将原来挂掉的mysql服务器重启并作为一个Slave服务器加入到Replication中。


以上就是MySQL之-Replication监控及自动故障切换的详细分析的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。