xtrabackup备份出现的数据不同步问题
现有三台服务器(都是centos7,安装mysql5.7):
A:10.19.6.6
B:192.168.3.101
C:192.168.3.102
使用xtrabackup备份A的MYSQL数据,然后恢复到B
A的数据库停用,B作为主数据库数据正常更新。
再使用B进行全量备份,恢复到C的数据库,此时发现C上恢复的mysql的root密码居然是A的数据密码,而且最新的数据也还是A上的数据。。。
发现数据库中有innodb的表也有myisam的表,恢复后需要使用mysqlcheck进行修复后才能正常进行查询
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我可以这样理解上述操作吗,A 备份传到 B 恢复数据,没有做主从复制;A 关闭数据库;B 备份传到 C 恢复,没有做主从复制,然后发现 A 上有 n 条数据是 C 没有的
xtrabackup
备份的时候,如果是 InnoDB 表,会开启事务再备份,如果 MySIAM 表,会锁表备份,这样备份出来的数据和开始备份的时间节点一致A 的操作过程如下:
时间点1: 开始备份 A
时间点2: 数据继续写入 A
时间点3: A 备份完传到 B 恢复
时间点4: 关闭 A 写入
B 恢复后的数据实际上是 A 在时间点 1 的一个数据镜像,所以在时间点 4,A 的数据要比备份数据多,也就是 B 的数据比 A 少了时间点 1 到 4 中间那部分数据。后续再备份 B 到 C 恢复也是同理。
xtrabackup
实质上是全量备份,当然也就包括mysql.user
用户表,恢复后就是 A 的数据,所以 C 上是 A 的密码哦如果要达到数据一致,只需恢复后开启主从同步就可以