经过管理,mysql服务器的硬盘利用率达到了100%.在恐慌中,我关闭了大部分服务--包括mysqld,我想这是造成这个问题的原因。随后,我删除了文件以腾出空间。在可用1GB以上的情况下,我试图启动mysqld,但它无法启动。日志中指出的错误如下:
[ERROR] [MY-012209] [InnoDB] Multiple files found for the same tablespace ID:
[ERROR] [MY-012202] [InnoDB] Tablespace ID: 23 = ['archive/transaction_archive_1.ibd', 'log/transaction_15.ibd']
[ERROR] [MY-012202] [InnoDB] Tablespace ID: 123 =
['archive/order_archive_1.ibd', 'log/cart_15.ibd']
[ERROR] [MY-012202] [InnoDB] Tablespace ID: 406 = ['archive/pay_archive_8.ibd', 'log/cart_20.ibd']
[ERROR] [MY-012202] [InnoDB] Tablespace ID: 419 = ['archive/pay_archive_9.ibd', 'log/cart_64.ibd']
[ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Failed, retry may succeed.
[ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
[ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
[ERROR] [MY-010119] [Server] Aborting
[System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.13) MySQL Community Server - GPL.“存档”和“日志”是两个独立的数据库。将“innodb_force_recovery”设置为1到6没有帮助。关于如何恢复这个问题,有什么建议吗?服务器在Linux上运行,MySQL为8.0.13。谢谢。
发布于 2019-02-20 02:18:14
我终于成功地让mysql服务器启动了,但我不能肯定这是最好的方法。
首先,我认为“日志”数据库表比“归档”表更重要。我将四个受影响的文件-档案/事务_档案_1.ibd、归档/order_archive_1.ibd、archive/pay_archive_8.ibd、archive/pay_archive_9.ibd)移到一个临时位置。当我开始使用mysqld时,有很长的等待时间(我认为这是在执行undos和其他一些事情),还有关于ibd文件丢失的抱怨--这是意料之中的。但是服务器还是启动了。
然后,我备份了“日志”数据库的四个受影响的表。受影响的“归档”表在那里,但无法查询其中的任何数据(“表空间丢失”错误)。接下来,我关闭了mysql并交换了ibd文件--将“归档”ibd文件移回,并删除了“log”ibd文件。mysqld开始抱怨ibd文件丢失。这一次,我去了mysql控制台,删除了四个受影响的“日志”表。然后我从刚才做的备份中恢复了这四张表。
不能100%确定没有丢失任何数据。
https://serverfault.com/questions/954801
复制相似问题