xtrabackup备份mysql故障

xtrabackup备份mysql5.7.40,报表对应文件损坏,但该表在数据库层面读写都没问题,请问大家碰到过没?


tidb 社区问 MySQL 问题是不是不太合适?

存储引擎对么,InnoDB?

mysql 这种问题搜索下到处都是资料啊
MySQL损坏page问题分析 - 知乎 (zhihu.com)

关键是我怀疑文件没损坏,文件损坏,表应该不能正常读写

xtrabackup 的版本呢?是2.4.x 么?

xtrabackup2.4.28与最新的xtrabackup2.4.29都试过,一样的报错

有时候ibd损坏可能运行时看不出来,但是下次DB重启的时候log就打印了

数据库重启,我也试过,没报文件损坏

且数据库重启正常

截图里的报错能复制成文字么?

[03] xtrabackup: Error: failed to read page after 10 retries. File ./aier_center_log/avis_logs.ibd seems to be corrupted.
[03] xtrabackup: Error: xtrabackup_copy_datafile() failed.
[03] xtrabackup: Error: failed to copy datafile.

感觉文件还是坏了,可能局部有问题,换个备份工具备份表试试

可以尝试使用命令修复一下:

使用 REPAIR TABLE 命令

这是修复表的常用方法。该命令会检查表的所有行和索引,并尝试修复任何发现的问题。

REPAIR TABLE table_name;

使用 CHECK TABLE 命令

在执行 REPAIR TABLE 之前,您可能想先检查表的健康状况。

CHECK TABLE table_name;

逻辑备份没任何问题

mysql> repair table avis_logs;
±--------------------------±-------±---------±--------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
±--------------------------±-------±---------±--------------------------------------------------------+
| aier_center_log.avis_logs | repair | note | The storage engine for the table doesn’t support repair |
±--------------------------±-------±---------±--------------------------------------------------------+
1 row in set (0.00 sec)

repair是修复Myisam引擎的吧

repaire是innodb存储引擎

使用 myisamchk 工具

对于 MyISAM 存储引擎的表,您还可以使用 myisamchk 工具来修复。

在命令行中执行:

myisamchk -r /path/to/mysql/data/db_name/table_name.MYI

使用 mysqlcheck 工具

mysqlcheck 是一个命令行工具,可以检查、修复、分析或优化 MySQL 表。

复制

mysqlcheck -r database_name table_name

The storage engine for the table doesn’t support repair