MySQL高可用方案MHA的部署和原理(3)

mysql> grant replication slave on *.* to 'repl'@'192.168.244.%' identified by 'repl'; Query OK, 0 rows affected (0.09 sec)

3. 查看备份文件all.sql中的CHANGE MASTER语句

# head -n 30 all.sql

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=120;

4. 将备份文件复制到Candicate master和Slave上

# scp all.sql 192.168.244.20:/root/

# scp all.sql 192.168.244.30:/root/

5. 在Candicate master上搭建从库

# mysql < all.sql 

设置复制信息

mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.244.10',
   
-> MASTER_USER='repl',
   
-> MASTER_PASSWORD='repl',
   
-> MASTER_LOG_FILE='mysql-bin.000002',
   
-> MASTER_LOG_POS=120;
Query OK,
0 rows affected, 2 warnings (0.19 sec)

mysql
> start slave;
Query OK,
0 rows affected (0.02 sec)

mysql
> show slave status\G

6. 在Slave上搭建从库

7. slave服务器设置为read only

mysql> set global read_only=1; Query OK, 0 rows affected (0.04 sec)

8. 在Master中创建监控用户

mysql> grant all privileges on *.* to 'monitor'@'%' identified by 'monitor123'; Query OK, 0 rows affected (0.07 sec)

五、 配置MHA

1. 在Monitor host(192.168.244.40)上创建MHA工作目录,并且创建相关配置文件

# mkdir -p /etc/masterha

# vim /etc/masterha/app1.cnf

[server default] manager_log=/masterha/app1/manager.log //设置manager的日志 manager_workdir=/masterha/app1 //设置manager的工作目录 master_binlog_dir=/var/lib/mysql //设置master默认保存binlog的位置,以便MHA可以找到master的日志 master_ip_failover_script= /usr/local/bin/master_ip_failover //设置自动failover时候的切换脚本 master_ip_online_change_script= /usr/local/bin/master_ip_online_change //设置手动切换时候的切换脚本 user=monitor // 设置监控用户 password=monitor123 //设置监控用户的密码 ping_interval=1 //设置监控主库,发送ping包的时间间隔,默认是3秒,尝试三次没有回应的时候进行自动failover remote_workdir=/tmp //设置远端mysql在发生切换时binlog的保存位置 repl_user=repl //设置复制环境中的复制用户名 repl_password=repl //设置复制用户的密码 report_script=/usr/local/bin/send_report //设置发生切换后发送的报警的脚本 secondary_check_script= /usr/local/bin/masterha_secondary_check -s 192.168.244.20 -s 192.168.244.30 --user=root --master_host=192.168.244.10 --master_ip=192.168.244.10 --master_port=3306 //一旦MHA到master的监控之间出现问题,MHA Manager将会判断其它两个slave是否能建立到master_ip 3306端口的连接 shutdown_script="" //设置故障发生后关闭故障主机脚本(该脚本的主要作用是关闭主机防止发生脑裂) ssh_user=root //设置ssh的登录用户名 [server1] hostname=192.168.244.10 port=3306 [server2] hostname=192.168.244.20 port=3306 candidate_master=1 //设置为候选master,如果设置该参数以后,发生主从切换以后将会将此从库提升为主库,即使这个主库不是集群中最新的slave check_repl_delay=0 //默���情况下如果一个slave落后master 100M的relay logs的话,MHA将不会选择该slave作为一个新的master,因为对于这个slave的恢复需要花费很长时间,通过设置check_repl_delay=0,MHA触发切换在选择一个新的master的时候将会忽略复制延时,这个参数对于设置了candidate_master=1的主机非常有用,因为它保证了这个候选主在切换过程中一定是最新的master [server3] hostname=192.168.244.30 port=3306

注意:

      1> 在编辑该文件时,后面的注释切记要去掉,MHA并不会将后面的内容识别为注释。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/95041e4822abbf40207265617861b798.html