10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 235.7 kb
手册页(邮政编码)- 347.2 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册摘录

14.22.2迫使InnoDB复苏

腐败调查数据库页面,您可能把你从数据库表选择……到输出文件。通常,大多数以这种方式获得的数据是完整的。严重的腐败可能会导致SELECT * FROMtbl_name语句或InnoDB后台操作意外退出或维护,甚至引起InnoDB前滚恢复崩溃。在这种情况下,您可以使用innodb_force_recovery选项强迫InnoDB存储引擎启动,同时防止后台操作运行,这样你就可以把你的表。例如,您可以添加以下行来(mysqld)部分文件在重新启动服务器之前你的选择:

(mysqld) innodb_force_recovery = 1

使用选项文件的信息,请参阅4.2.2.2节,“使用选项文件”

警告

只设置innodb_force_recovery为大于0的值在紧急情况下,这样你就可以开始InnoDB和把你表。在这样做之前,确保你有一个备份数据库的情况下,你需要重新创建它。4或更高的值可以永久破坏数据文件。只使用一个innodb_force_recovery设置4或更高的生产服务器实例之后,您已经成功地测试了设置在一个单独的物理数据库的副本。当强迫InnoDB复苏,你应该开始innodb_force_recovery = 1只有逐步增加价值,作为必要的。

innodb_force_recovery默认是0(正常启动没有强迫恢复)。允许非零值innodb_force_recovery是1到6。更大的值包含较小值的功能。例如,值为3的包括所有功能的值1和2。

如果你能把你与一个表innodb_force_recovery值3或更少,那么你是相对安全的,只有一些腐败的个人页面上的数据丢失。4或更高的价值被认为是危险的,因为数据文件可以永久损坏。6的值被认为是激烈的,因为数据库页面处于一种过时的状态,进而可能会引入更多的腐败b树和其他的数据库结构。

作为一项安全措施,InnoDB防止插入,更新,或删除操作时innodb_force_recovery大于0。一个innodb_force_recovery设置4或更高的地方InnoDB在只读模式。

  • 1(SRV_FORCE_IGNORE_CORRUPT)

    让服务器运行即使它检测到一个腐败页面。试图让SELECT * FROMtbl_name跳过腐败指数记录和页面,这有助于在倾销表。

  • 2(SRV_FORCE_NO_BACKGROUND)

    阻止了掌握线程和任何清除线程从运行。如果意外退出期间会发生清洗操作,回收价值阻止它。

  • 3(SRV_FORCE_NO_TRX_UNDO)

    不能运行的事务回滚崩溃恢复

  • 4(SRV_FORCE_NO_IBUF_MERGE)

    防止插入缓冲合并操作。如果他们会导致崩溃,不做。不计算表统计数据。这个值可以永久破坏数据文件。使用此值后,准备删除和重新创建所有二级索引。集InnoDB只读的。

  • 5(SRV_FORCE_NO_UNDO_LOG_SCAN)

    不看看undo日志当启动数据库:InnoDB甚至把不完整的事务提交。这个值可以永久破坏数据文件。集InnoDB只读的。

  • 6(SRV_FORCE_NO_LOG_REDO)

    不做重做日志在连接前滚恢复。这个值可以永久破坏数据文件。叶子数据库页面在一个过时的状态,进而可能会引入更多的腐败到b树和其他的数据库结构。集InnoDB只读的。

你可以选择从表转储。与一个innodb_force_recovery价值3或更少下降创建表。删除表还支持了吗innodb_force_recovery值大于3,MySQL 5.7.17。MySQL 5.7.18,删除表是不允许的吗innodb_force_recovery值大于4。

如果你知道一个给定表导致意外退出回滚,你可以放弃。如果你遇到一个回滚失败引起的大规模进口或失控ALTER TABLE,你可以杀死mysqld流程和设置innodb_force_recovery3将数据库没有回滚,然后下降表导致失控的回滚。

如果表数据中的腐败阻止你倾倒整个表内容,查询的命令primary_keyDESC条款可以转储表的部分后损坏的部分。

如果一个高innodb_force_recovery值是必需的InnoDB,可能会有损坏的数据结构可能导致复杂的查询(查询包含在哪里,命令或其他条款)失败。在这种情况下,您可能只能够基本运行从t选择*查询。