1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

一种修复MySQL主从数据差异的思路

修复MySQL主从数据差异的思路

本文介绍一种修复MySQL主从数据差异的思路,由于主从复制是基于binlog的逻辑复制,实际应用中可能会因为各种原因出现主从数据不一致的情况,因此我们需要定期或不定期地开展主从复制数据一致性的校验和修复工作。本次分享的思路是不影响主库业务的修复思路。

一种修复MySQL主从数据差异的思路

方案实施步骤

下面将介绍具体的方案实施步骤:

环境准备

Master节点创建测试表t1和t2,并向表中插入一些数据。Slave节点检查复制是否正常,确保复制正常。

错误模拟

在Salve节点执行delete操作,模拟数据异常的情况,此时slave复制已发生异常,无法应用主库操作。Master节点持续模拟业务,模拟一定时间后主从数据出现了差异。

数据修复

Master节点导出slave异常的数据表,查看gtid信息并记录。Master节点持续模拟业务,让主从数据再次出现差异。

Slave节点导入数据,检查gtid信息。导入数据时可能会发生报错,无法更新gtid信息,该错误不需理会,千万不能为了解决该错误执行reset master。再次检查gtid信息,未发生变化。

设置复制过滤并应用日志,此处设置的SQL_AFTER_GTIDS为备份文件中gtid,复制应用日志到该gtid后停止应用日志,此时异常的表数据已修复,清除复制过滤规则后启动sql应用即可。

数据验证

在master节点和slave节点分别执行count(*)和select*命令进行比较,从而验证数据是否一致。

注意,本文介绍的是适用于启用GTID的主从复制环境,对于非GTID复制环境,需要根据情况选用合适的startslave选项,具体可参考官方文档START SLAVE Statement部分。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5942.html