mysql group replication(mgr)数据不一致恢复

mysql group replication是mysql基于paxos算法来做数据强一致性同步,其中采用的是Xcom协议。在某些情况下回导致数据不一致,如服务器掉电情况。

恢复采用mysqldump处理,进行全量备份然后恢复,如果数据库数量大,则可能会比较耗时,慎重采用该方式。最好根据mysql日志排查问题,找出原因再处理。

恢复步骤如下:

1、从具有最全的数据库中全量备份数据;
       cd /usr/local/mysql/bin
       ./mysqldump -uroot -p -A --all-databases > /data/20210510_all.sql
    2、将备份sql传到其他服务器上
        scp 20210510_all.sql root@xx.xx.xx.xxx:/databak
    3、还原备份
        mysql> RESET MASTER;

        mysql> RESET SLAVE ALL;

        mysql> SET SQL_LOG_BIN=OFF;

        mysql> SOURCE /databak/20210510_all.sql
        mysql> SET SQL_LOG_BIN=ON;

        mysql> CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='xxxx' FOR CHANNEL 'group_replication_recovery';
    4、启动group_replication
        mysql> stop group_replication;
        mysql> start group_replication;
    5、其他节点按照上述步骤2-4进行即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 5.7引入了MGRMySQL Group Replication)作为一种高可用性解决方案,它使用多主复制来保持多个MySQL节点的数据同步。如果您发现MGR集群中的节点之间存在数据一致的情况,可能是由于以下原因之一: 1. 数据同步延迟:MGR需要时间来同步更改,如果节点之间的网络连接不稳定或者负载太高,就可能会导致节点之间的数据同步延迟。这可能会导致在某些节点上看到过时的数据。 2. 冲突的写入:如果两个节点同时尝试写入一个相同的数据行,就可能会发生冲突。在这种情况下,MGR会保留最后一次更改,并将其应用到所有节点上。这可能会导致节点之间的数据一致。 3. 数据库故障:如果一个节点中的数据库出现故障,而其他节点继续工作,那么它们之间的数据可能会不一致。在这种情况下,您需要修复故障节点并重新启动它,以便启动数据同步过程。 为了解决MGR中的数据一致问题,您可以采取以下措施: 1. 监视MGR的状态:使用MySQL自带的工具或第三方工具来监视MGR的状态,以及节点之间的数据同步延迟情况。 2. 优化网络连接:确保节点之间的网络连接稳定,并根据需要对其进行优化。 3. 避免冲突的写入:使用应用程序级别的锁或隔离级别来避免冲突的写入,并确保在写入之前检查数据行的状态。 4. 处理故障:如果一个节点中的数据库出现故障,您需要修复故障节点并重新启动它,以便启动数据同步过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值