我的Ubuntu22.04服务器突然告诉我“重做日志文件”。/# not _ redo /#ib_redo 0 size 23289856不是innodb_page_size的倍数。“我的innodb_page_size是16K,所以错误是正确的,但是我似乎找不到任何关于如何修复它的建议。我试着把ib_redo0移开,但这没有帮助。有什么想法吗?
发布于 2022-08-01 23:20:57
我也遇到过这个问题。它似乎是专门用于在Ubuntu上使用ZFS的,在我的例子中,它是在升级到MYSQL 8.0.30-0ubuntu0.20.04.2时使用的。
按照这份Ubuntu发行的报告和这份MySQL问题报告中的详细信息,我能够想出一个在我的环境中工作的解决方案。
下面有3个命令可以作为根命令或使用sudo运行。首先,您应该用8192的结果替换<broken_file_size> % <default_page_size>。除非修改,默认的页面大小通常是16384。您可能需要将第二个命令的#ib_redo0部分替换为错误消息中报告的已损坏的文件。这些命令的目的是用零填充据报无效的文件。
在运行前执行备份!
# Gather required zeros to append
# Will create a "zeros" file in the current directory
# This has been calculated based upon 23289856 % 16384 = 8192 or <broken_file_size> % <default_page_size>
dd if=/dev/zero bs=1 count=8192 of=./zeros
# Append zeroes to invalid file
cat zeros >> /var/lib/mysql/#innodb_redo/#ib_redo0
# Restart MySQL
systemctl restart mysql.service为了可能再次遇到同样的问题,我会谨慎地保留在ZFS上,即使上面的方法可以修复一些问题。
发布于 2022-08-02 18:29:38
在运行在ZFS上的LXD容器中,我也遇到了同样的问题。我不得不把它移到另一种类型的存储池中,例如目录或BTRFS。
在那之后,“DanBrown”的解决方案也为我工作。
谢谢。
https://stackoverflow.com/questions/73186360
复制相似问题