首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InnoDB日志文件顺序混乱-如何删除它们?

问InnoDB日志文件顺序混乱-如何删除它们?
EN

Stack Overflow用户
提问于 2014-01-28 11:37:59
回答 1查看 1.2K关注 0票数 1

我有一个在VPS上运行的MySQL实例,该实例今天意外关闭(物理机重启)。当它重新启动时,我有一个MySQL错误日志,里面满是这样的消息:

代码语言:javascript
复制
140127 17:49:18  InnoDB: Error: page 1846 log sequence number 8869575607
InnoDB: is in the future! Current system log sequence number 8869400472

我尝试用innodb_force_recovery = 6恢复服务器(4不起作用)。这将使实例重新启动。然而,再多的表修复也不允许我在没有innodb_force_recovery = 6的情况下运行。

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

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

EN

回答 1

Stack Overflow用户

发布于 2014-01-29 08:46:44

如果你在重启后得到这个错误,那就意味着你所谓的“服务器”VPS根本不是一个服务器,而实际上是一个吃你数据的巨魔。或者更严重的是,这与InnoDB的“理论上”的“事务性”无关,因为它运行的底层系统对它是否确实保存了您的数据撒谎。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21396360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档