加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL5.7+MHA+Keepalived failover自动更换

发布时间:2022-03-29 06:31:28 所属栏目:MySql教程 来源:互联网
导读:数据库架构:一主两从 master:192.168.8.57 slave1:192.168.8.58 slave2:192.168.8.59 manager:192.168.8.60 MHA工具包: mha4mysql-manager-0.58.tar.gz mha4mysql-node-0.58.tar.gz keepalived-1.4.5.tar.gz 一、环境配置过程如下: http://blog.itpub
       数据库架构:一主两从
 
     master:192.168.8.57
 
     slave1:192.168.8.58
 
     slave2:192.168.8.59
 
     manager:192.168.8.60
 
MHA工具包:
 
mha4mysql-manager-0.58.tar.gz
 
mha4mysql-node-0.58.tar.gz
 
keepalived-1.4.5.tar.gz
 
一、环境配置过程如下:
 
http://blog.itpub.net/30135314/viewspace-2217762/
 
二、切换测试
 
1.在192.168.8.57关闭MySQL进程
 
1
mysqladmin -uroot -pmysql  shutdown
2.查看MHA manager日志
 
From:
192.168.8.57(192.168.8.57:3306) (current master)
  +--192.168.8.58(192.168.8.58:3306)
  +--192.168.8.59(192.168.8.59:3306)
To:
192.168.8.58(192.168.8.58:3306) (new master)
  +--192.168.8.59(192.168.8.59:3306)
Mon Oct 29 13:55:24 2018 - [info]
Mon Oct 29 13:55:24 2018 - [info] * Phase 3.3: New Master Recovery Phase..
Mon Oct 29 13:55:24 2018 - [info]
Mon Oct 29 13:55:24 2018 - [info]  Waiting all logs to be applied..
Mon Oct 29 13:55:24 2018 - [info]    done .
Mon Oct 29 13:55:24 2018 - [info] Getting new master's binlog name and position..
Mon Oct 29 13:55:24 2018 - [info]  mysql-bin.000021:415
Mon Oct 29 13:55:24 2018 - [info]  All other slaves should start replication from here. Statement should be: CHANGE MASTER TO MASTER_HOST= '192.168.8.58' , MASTER_PORT=3306, MASTER_AUTO_POSITION=1, MASTER_USER= 'repl' , MASTER_PASSWORD= 'xxx' ;
Mon Oct 29 13:55:24 2018 - [info] Master Recovery succeeded. File:Pos:Exec_Gtid_Set: mysql-bin.000021, 415, a92f70a4-d5ea-11e8-af28-080027c0450d:1-13,
a92f70a4-d5ea-11e8-af28-080027c0450f:1-7
Mon Oct 29 13:55:24 2018 - [info] Executing master IP activate script:
Mon Oct 29 13:55:24 2018 - [info]    /usr/local/bin/master_ip_failover   -- command =start --ssh_user=root --orig_master_host=192.168.8.57 --orig_master_ip=192.168.8.57 --orig_master_port=3306 --new_master_host=192.168.8.58 --new_master_ip=192.168.8.58 --new_master_port=3306 --new_master_user= 'root'     --new_master_password=xxx
Undefined subroutine &main::FIXME_xxx_create_user called at  /usr/local/bin/master_ip_failover   line 94.
Set read_only=0 on the new master.
Creating app user on the new master..
Mon Oct 29 13:55:24 2018 - [error][ /usr/lib/perl5/vendor_perl/MHA/MasterFailover .pm, ln1612]  Failed to activate master IP address  for   192.168.8.58(192.168.8.58:3306) with  return   code 10:0
Mon Oct 29 13:55:24 2018 - [warning] Proceeding.
Mon Oct 29 13:55:24 2018 - [info] ** Finished master recovery successfully.
Mon Oct 29 13:55:24 2018 - [info] * Phase 3: Master Recovery Phase completed.
Mon Oct 29 13:55:24 2018 - [info]
Mon Oct 29 13:55:24 2018 - [info] * Phase 4: Slaves Recovery Phase..
 
3.查看VIP
 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
     link /loopback   00:00:00:00:00:00 brd 00:00:00:00:00:00
     inet 127.0.0.1 /8   scope host lo
        valid_lft forever preferred_lft forever
     inet6 ::1 /128   scope host
        valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
     link /ether   08:00:27:4d:70:17 brd ff:ff:ff:ff:ff:ff
     inet 192.168.8.58 /24   brd 192.168.8.255 scope global noprefixroute enp0s3
        valid_lft forever preferred_lft forever
     inet 192.168.8.88 /24   scope global secondary enp0s3
        valid_lft forever preferred_lft forever
     inet6 fe80::6a31:3e92:8b6f:83c0 /64   scope link noprefixroute
        valid_lft forever preferred_lft forever
     inet6 fe80::5198:593b:cdc5:1f90 /64   scope link tentative noprefixroute dadfailed
        valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
     link /ether   52:54:00:f4:55:bb brd ff:ff:ff:ff:ff:ff
     inet 192.168.122.1 /24   brd 192.168.122.255 scope global virbr0
        valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
     link /ether   52:54:00:f4:55:bb brd ff:ff:ff:ff:ff:ff
VIP192.168.8.88/24已经飘至192.168.8.58机器。
 
4.查看slave进程
 
192.168.8.58
  
mysql> show slave status G
*************************** 1. row ***************************
                Slave_IO_State: Waiting  for   master  to   send event
                   Master_Host: 192.168.8.58
                   Master_User: repl
                   Master_Port: 3306
                 Connect_Retry: 60
               Master_Log_File: mysql-bin.000021
           Read_Master_Log_Pos: 415
                Relay_Log_File: slave2-relay-bin.000002
                 Relay_Log_Pos: 414
         Relay_Master_Log_File: mysql-bin.000021
              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: 415
               Relay_Log_Space: 622
               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: 58
                   Master_UUID: a92f70a4-d5ea-11e8-af28-080027c0450f
              Master_Info_File: /mysql/data/master.info
                     SQL_Delay: 0
           SQL_Remaining_Delay:  NULL
       Slave_SQL_Running_State: Slave has  read   all   relay log; waiting  for   more updates
            Master_Retry_Count: 86400
                   Master_Bind:
       Last_IO_Error_Timestamp:
      Last_SQL_Error_Timestamp:
                Master_SSL_Crl:
            Master_SSL_Crlpath:
            Retrieved_Gtid_Set:
             Executed_Gtid_Set: a92f70a4-d5ea-11e8-af28-080027c0450b:1-4,
a92f70a4-d5ea-11e8-af28-080027c0450d:1-13,
a92f70a4-d5ea-11e8-af28-080027c0450f:1-7
                 Auto_Position: 1
          Replicate_Rewrite_DB:
                  Channel_Name:
            Master_TLS_Version:
可以看到从库192.168.8.59的主库变成192.168.8.58
 
5.测试复制
192.168.8.58(主库)
 
mysql>  create   table   t10 (id  int (10));
Query OK, 0  rows   affected (0.19 sec)
mysql> show tables;
+ ----------------+
| Tables_in_test |
+ ----------------+
| t1             |
| t10            |
| t2             |
| t3             |
| t4             |
| t5             |
| t6             |
| t7             |
| t8             |
| t9             |
+ ----------------+
192.168.8.59(从库)
 
mysql> show tables;
+ ----------------+
| Tables_in_test |
+ ----------------+
| t1             |
| t10            |
| t2             |
| t3             |
| t4             |
| t5             |
| t6             |
| t7             |
| t8             |
| t9             |
+ ----------------+
新的主从数据复制正常。
 
三、将旧主库加入复制环境
 
修复完192.168.8.57之后,将此节点变成从库加入到环境当中,可以直接change master to 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!