Mysql InnoDB日志文件顺序不正确-如何将其清除?

Mysql InnoDB日志文件顺序不正确-如何将其清除?,mysql,innodb,Mysql,Innodb,我有一个在VPS上运行的MySQL实例,今天意外关机(物理机重新启动)。当它恢复时,我有一个MySQL错误日志,其中充满了这样的消息: 140127 17:49:18 InnoDB: Error: page 1846 log sequence number 8869575607 InnoDB: is in the future! Current system log sequence number 8869400472 我已尝试使用innodb\u force\u recovery=6重新启

我有一个在VPS上运行的MySQL实例,今天意外关机(物理机重新启动)。当它恢复时,我有一个MySQL错误日志,其中充满了这样的消息:

140127 17:49:18  InnoDB: Error: page 1846 log sequence number 8869575607
InnoDB: is in the future! Current system log sequence number 8869400472
我已尝试使用
innodb\u force\u recovery=6重新启动服务器(
4
不起作用)。这将使实例重新启动。但是,如果没有innodb\u force\u recovery=6,那么无论是多少表修复都不允许我运行

我的理解是,InnoDB是事务性的,未提交的写操作存在于这些日志文件中。我不在乎这些文字。我只想让我所谓的“事务性”数据库恢复


是否可以删除所有日志并将我的数据库移动到以前的良好状态?

如果在重新启动后出现此错误,这意味着您所谓的“服务器”VPS根本不是服务器,实际上是一个吃您数据的巨魔。或者更严重的是,这与InnoDB的“假定的”“事务性”无关,因为它运行的底层系统谎称它是否确实保存了您的数据

它抱怨的日志不是非事务性数据的日志,它们实际上是InnoDB使用的主要事务性机制。数据被接受,保证在提交时写入日志,然后根据需要刷新到磁盘上的数据页。如您所见,如果日志写入或刷新并没有像应该的那样进入磁盘,InnoDB可能无法在崩溃后恢复


您最好的选择是启动时将
innodb\u force\u recovery
设置为允许其运行的任何设置,使用
mysqldump
转储数据,并将其重新加载到完全干净的实例中。如果您处于这种糟糕的状态,仅仅“修复”实例使其继续运行是不够的。您需要重新初始化所有数据结构。并找到一个新主机。

设置系统序列号也可以。