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