xtrabackup备份出现的数据不同步问题

发布于 2022-09-11 16:03:26 字数 293 浏览 29 评论 0

现有三台服务器(都是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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

比忠 2022-09-18 16:03:26

我可以这样理解上述操作吗,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 的密码哦

如果要达到数据一致,只需恢复后开启主从同步就可以

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文