首页域名资讯 正文

MySQL管理工具MySQL Utilities — 恢复有故障的主(50)

2024-12-07 5 0条评论

在故障成功转移后,往往需要恢复到最初的复制拓扑结构,并且使有故障的主重新再次为主。

假设故障转移后的拓扑结构是这样的,主server2:3312,从server3:3313, server4:3314, server:3315,现在需要将原来的主server1:3311再次成为主。手工执行这个过程的话,是非常繁琐的甚至还会导致复制失败,使用MySQL Utilities工具只需三个简单的步骤来搞定。

实例

解决上述问题需要考虑下面几个问题。首先必须停止运行mysqlfailover 实例,启动恢复旧的主 server1:3311。接着,设置旧的主为新主server2:3312的从。

1 2 3 4 5 6 shell > mysqlreplicate master = root @ server2 : 3312 slave = root @ server1 : 3311 rpl user = rpl : rpl # master on trustauth.cn: … connected. # slave on trustauth.cn: … connected. # Checking for binary logging on master… # Setting up replication… # …done.

接下来,切换到之前的主

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 shell > mysqlrpladmin master = root @ server2 : 3312 \            slaves = root @ server2 : 3313 , root @ server4 : 3314 , root @ server5 : 3315 \            rpl user = rpl : rpl new master = root @ server1 : 3311 demote master switchover # Checking privileges. # Performing switchover from master at server2:3312 to slave at server1:3311. # Checking candidate slave prerequisites. # Checking slaves configuration to master. # Waiting for slaves to catch up to old master. # Stopping slaves. # Performing STOP on all slaves. # Demoting old master to be a slave to the new master. # Switching slaves to new master. # Starting all slaves. # Performing START on all slaves. # Checking slaves for errors. # Switchover complete. # # Replication Topology Health: + + + + + + + | host      | port    | role      | state    | gtid_mode    | health    | + + + + + + + | server1    | 3311    | MASTER    | UP      | ON          | OK        | | server2    | 3312    | SLAVE    | UP      | ON          | OK        | | server3    | 3313    | SLAVE    | UP      | ON          | OK        | | server4    | 3314    | SLAVE    | UP      | ON          | OK        | | server5    | 3315    | SLAVE    | UP      | ON          | OK        | + + + + + + + # …done.

恢复到初始的复制拓扑,并重新启动mysqlfailover (需要使用–force选项)。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 shell > mysqlfailover master = root @ server1 : 3311 \            slaves = root @ server2 : 3312 , root @ server3 : 3313 , root @ server4 : 3314 , server5 : 3315 \            log = log . txt rpl user = rpl : rpl force # Checking privileges. MySQL Replication Failover Utility Failover Mode = auto     Next Interval = Sat Jul 27 02 : 17 : 12 2013 Master Information Binary Log File     Position   Binlog_Do_DB   Binlog_Ignore_DB master bin . 000002    151 GTID Executed Set None Replication Health Status + + + + + + + | host      | port    | role      | state    | gtid_mode    | health    | + + + + + + + | server1    | 3311    | MASTER    | UP      | ON          | OK        | | server2    | 3312    | SLAVE    | UP      | ON          | OK        | | server3    | 3313    | SLAVE    | UP      | ON          | OK        | | server4    | 3314    | SLAVE    | UP      | ON          | OK        | | server5    | 3315    | SLAVE    | UP      | ON          | OK        | + + + + + + + Q quit R refresh H health G GTID Lists U UUIDs L log entries

权限

用户需要有配置复制的权限。

文章版权及转载声明

本文作者:亿网 网址:https://edns.com/ask/post/150576.html 发布于 2024-12-07
文章转载或复制请以超链接形式并注明出处。