暂无图片
暂无图片
6
暂无图片
暂无图片
3
暂无图片

[Xtrabackup] Found tables with row versions due to INSTANT ADD/DROP columns

原创 金同学 2023-05-21
2235

报错信息

[ERROR] [MY-011825] [Xtrabackup] Found tables with row versions due to INSTANT ADD/DROP columns
[ERROR] [MY-011825] [Xtrabackup] This feature is not stable and will cause backup corruption.
[ERROR] [MY-011825] [Xtrabackup] Tables found:
[ERROR] [MY-011825] [Xtrabackup] test/t1
[ERROR] [MY-011825] [Xtrabackup] test/t2
[ERROR] [MY-011825] [Xtrabackup] test/t3
[ERROR] [MY-011825] [Xtrabackup] Please run OPTIMIZE TABLE or ALTER TABLE ALGORITHM=COPY on all listed tables to fix this issue.
复制

官方描述

https://docs.percona.com/percona-xtrabackup/8.0/em/instant.html


MySQL 8.0.29 扩展了对 ALTER TABLE … ALGORITHM=INSTANT 的支持:用户可以在表的任何位置即时添加列、即时删除列、添加列时评估行大小限制。

但是为了支持 ALTER TABLE … ALGORITHM=INSTANT 的新特性,InnoDB redo log 格式对于所有 DML 操作都发生了变化。新的 redo 日志格式引入了一个设计缺陷,会导致 instant add/drop columns 的表数据损坏。
由于 XtraBackup 无法处理社区版 MySQL 8.0.29 生成的损坏的 redo log ,因此,如果 XtraBackup 8.0.29 版本检测到具有 INSTANT ADD/DROP 列的表,它将不会进行备份,并且会生成错误信息列出受影响表的列表并提供将它们转换为常规表的说明。

解决方案

备份开始前,先查看 INFORMATION_SCHEMA.INNODB_TABLES 表是否有 INSTANT ADD/DROP 列的表。如果有,可以先执行alter table 操作,然后再去备份。

mysql> SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLES WHERE TOTAL_ROW_VERSIONS > 0;
+---------+
| NAME    |
+---------+
| test/t1 |
| test/t2 |
| test/t3 |
+---------+
3 rows in set (0.02 sec
mysql> ALTER TABLE test.t1 engine=InnoDB;
mysql> ALTER TABLE test.t2 engine=InnoDB;
mysql> ALTER TABLE test.t3 engine=InnoDB;
复制

经测试,8.0.29、8.0.30、8.0.31均存在这个问题。建议遇到这个问题后,直接升级版本到8.0.33。









最后修改时间:2023-05-21 14:15:23
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论

袁妮
暂无图片
4月前
评论
暂无图片 0
学习了
4月前
暂无图片 点赞
评论
PiscesCanon
暂无图片
1年前
评论
暂无图片 0
8.0.33应该也不行。
1年前
暂无图片 点赞
1
金同学
暂无图片 暂无图片
1年前
回复
暂无图片 0
@PiscesCanon: 测试没问题了
1年前
暂无图片 点赞
回复