故障分析 | xtrabackup 吃掉了MySQL的 binlog 文件名?

本文通过一个实际案例分享了在MySQL8.0.18环境下,使用xtrabackup8.0.10进行备份恢复时遇到的问题。在启动数据库时,由于binlog文件名不一致导致数据库启动失败。作者通过一系列测试和源码分析,发现xtrabackup在某些情况下不会因binlog名称不一致而报错,而是直接覆盖binlog.index文件。最后,作者提供了问题的解决方案,并提醒在升级xtrabackup版本时注意此问题,官方已在新版本中修复此问题。

作者:刘开洋

爱可生交付服务团队北京 DBA,对数据库及周边技术有浓厚的学习兴趣,喜欢看书,追求技术。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


前段时间在 centos 8 环境上做 MySQL 的备份恢复测试的时候,遇到一个问题,下面跟大家分享下。

1、讲环境

服务器 OS 数据库版本 备份工具
Centos 8 for X86 mysql 8.0.18 xtrabackup 8.0.10

小编的问题场景出现在 centos 8 上,验证也使用了 centos 8 版本,不过相信看到最后你会发现这个问题和 OS 关系不大,我们继续往下看。

2、说问题

从备份到恢复的过程还挺顺利,但是在最后启动数据库时出现了下面的问题,仔细看看,好像数据库的 binlog 文件名被吃掉了。

2021-03-08T16:48:08.510032+08:00 0 [Warning] [MY-010097] [Server] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path.
2021-03-08T16:48:08.510125+08:00 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.18) starting as process 16556
mysqld: File '/var/lib/mysql/.000003' not found (OS errno 2 - No such file or directory)
2021-03-08T16:48:09.196673+08:00 0 [ERROR] [MY-010958] [Server] Could not open log file.
2021-03-08T16:48:09.196787+08:00 0 [ERROR] [MY-010041] [Server] Can't init tc log
2021-03-08T16:48:09.196961+08:00 0 [ERROR] [MY-010119] [Server] Aborting
2021-03-08T16:48:10.632676+08:00 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.18)  MySQL Community Server - GPL.

不要慌,这个现象可能是 binlog 的索引文件在数据库恢复的时候修改出错,就会导致数据库启动失败的情况,解决方案很简单,这里 MySQL 报错输出的是 binlog.index 文件中的信息,只要将 binlog 名重写,之后再启动数据库即可恢复。

当然这不是我们这篇文章的重点,重点是讨论下为什么 xtrabackup 会因为 binlog 文件名不一致就只 delete 而不进行 insert 呢?因为之前的测试由于疏忽,没有确认配置文件是否一致,结果报错后发现备份恢复的两套环境中的 binlog 文件名不一致,因此猜测是因为binlog 文件名问题导致的这次故障发生,以小编既往故障案例的特点,我们还是先进行一个 review 复现吧。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值