强制InnoDB恢复

为了研究数据库页损坏,你能用SELECT … INTO OUTFILE从数据库中转储表。通常,以这种方式获得的大部分数据是完整的。严重的损坏可能导致SELECT* FROM tbl_name语句或InnoDB的后台操作崩溃或断言,甚至造成InnoDB前滚恢复崩溃。 在这样的情况下,可以使用innodb_force_recovery选项强制InnoDB存储引擎启动同时阻止后台操作运行,这样你就能转储表了。例如,你可以在重新启动服务器之前添加以下行到选项文件的[mysqld]部分:

[mysqld]

innodb_force_recovery = 1

警告

只有在紧急情况下将innodb_force_recovery设为大于0的值,你才能启动InnoDB并转储表。在进行此操作之前,确保你有数据库的备份副本,以备需要重建它。4及以上的值可以永久破坏数据文件。只有在数据库的独立物理副本的成功地测试了设置,才能在生产服务器实例使用4及以上的innodb_force_recovery设置。当强制InnoDB恢复,你应该总是以innodb_force_recovery=1启动,且仅在需要时增加值。

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

如果你能以innodb_force_recovery为3或更低值转储你的表,那么你是比较安全的,只有在损坏的个人页的一些数据会丢失。4或更大的值被认为是危险的,因为数据文件可以被永久地损坏。值6被认为是严重的,数据库页被留在一个陈旧的状态,这反过来又可能带给B-trees和其它数据库结构更多的损坏。

作为一个安全措施,InnoDB 在innodb_force_recovery大于0时阻止INSERT,UPDATE或DELETE操作。对于MySQL5.6.15,将innodb_force_recovery设为4或更高会让InnoDB处于只读模式。

1 (SRV_FORCE_IGNORE_CORRUPT)

即使服务器检测到损坏的页仍让它运行。试图使SELECT* FROM tbl_name跳过损坏的索引记录和页,这样有助于转储表。

2 (SRV_FORCE_NO_BACKGROUND)

阻止主线程和任何清除线程的运行。如果崩溃会在清除操作中发生,该恢复值会阻止它。

3 (SRV_FORCE_NO_TRX_UNDO)

不要在崩溃恢复后运行事务回滚。

4 (SRV_FORCE_NO_IBUF_MERGE)

阻止插入缓冲合并操作。如果它们会导致崩溃,不要做这些。不计算表统计。这个值可以永久损坏数据文件。使用这个值后,准备号删除并重建所有辅助索引。在MySQL5.6.15中,设置InnoDB为只读。

5 (SRV_FORCE_NO_UNDO_LOG_SCAN)

在启动数据库时不查看撤消日志:InnoDB将即使未完成的事务也作为已提交。这个值可以永久损坏数据文件。在MySQL5.6.15中,设置InnoDB为只读。

6 (SRV_FORCE_NO_LOG_REDO)

不要通过恢复对重做日志进行前滚。这个值可能永久损坏数据文件。数据库页被留在一个陈旧的状态,这反过来又可能带给B-trees和其它数据库结构更多的损坏。在MySQL5.6.15中,设置InnoDB为只读。

你可以从表中SELECT来转储它们。innodb_force_recovery的值为3或更低,你可以DROP或CREATE表。在MySQL 5.6.27中,DROP TABLE还受大于3的innodb_force_recovery值支持。

如果你知道一个给定表在回滚造成崩溃,你可以将其删除。如果遇到所造成失败的大规模导入的失控回滚或ALTER TABLE,你可以杀掉mysqld进程,并设置innodb_force_recovery为3使数据库启动而不回滚,然后DROP导致失控回滚的表。

如果表数据中的损坏阻止你转储整个表的内容,带ORDER BY primary_key DESC子句的查询能够转储损坏部分后的表的部分。

如果一个高innodb_force_recovery值需要启动InnoDB,可能有被破坏的数据结构,可能导致复杂查询(含有WHERE,ORDER BY或其他子句的查询)失败。在这种情况下,你可能只能运行基本的SELECT* FROM t查询。

mysql recovery = 4_强制MySQL InnoDB恢复参数innodb_force_recovery相关推荐

  1. mysql 强制启动_强制 InnoDB 恢复,启动 MySQL 数据库

    要调查数据库页面损坏,您可以使用从数据库转储表 SELECT ... INTO OUTFILE.通常,以这种方式获得的大多数数据是完整的.严重损坏可能导致语句或 后台操作崩溃或断言,甚至导致前滚恢复崩 ...

  2. Mysql优化系列(1)--Innodb重要参数优化

    1.简单介绍 InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读.这些特 ...

  3. Mysql优化系列(1)--Innodb重要参数优化(转)

    原创作者:https://www.cnblogs.com/kevingrace/p/6133818.html 1.简单介绍 InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACI ...

  4. 可以改善mysql性能的InnoDB配置参数

    来源:http://www.jb51.net/article/27069.htm MySQL与MSSQL 有一个区别在于MySQL建表的时候需要选择存储引擎,常用的存储引擎有MyISAM和InnoDB ...

  5. [MySQL Reference Manual] 7 备份和恢复

    7. 备份和恢复 本章主要会介绍: 1.备份的类型:逻辑备份,物理备份,全备和增量4种 2.创建备份的方法 3.还原方法,包括还原到时间点 4.备份计划,压缩和加密 5.表维护,恢复损坏的表 7. 备 ...

  6. mysql dba系统学习(16)mysql的mysqldump备份 mysql dba系统学习(17)mysql的备份和恢复的完整实践

    mysql数据库的备份恢复 mysqldump备份数据库 -B, --databases     Dump several databases. Note the difference in usag ...

  7. mysql dump xtrabackup_MySQL之备份和恢复(msyqldump、LVM、xtrabackup)

    备份类型: 根据备份时是服务器是否在线: 热备份(HOT): 读写操作不受影响 温备份(WARM): 进可以执行读操作,写操作不能执行 冷备份(COLD): 读写操作均不能进行 根据备份时对数据文件的 ...

  8. Mysql配置文件my.cnf配置及配置参数详解

    Mysql配置文件my.cnf 安装了mysql没有my.cnf文件的情况 1.可以把mysql的示例配置文件,如my-medium.cnf拷贝到/etc/my.cnf,再去修改/etc/my.cnf ...

  9. mysql back blog_mysql qpress压缩备份恢复

    说明: 1.前面博客已经介绍过gzip压缩方法,备份正常,但后来测试恢复的时候,发现命中bug,报错如下: InnoDB: Page [page id: space=9494, page number ...

最新文章

  1. Python工具 | 9个用来爬取网络站点的 Python 库
  2. 数据结构与算法 | 线性表 —— 链表
  3. MongoDB 分页查询的方法及性能
  4. Jmeter简单应用6
  5. 非word格式文件700015怎么办_vim黑科技--在word/浏览器/excel等环境中使用vim
  6. 使用Word宏替换Header、Footer等中的文本
  7. Beautiful Sequence CodeForces - 1264B(暴力)
  8. mysql打开无法控制_MySQL不能启动和停止 MySQL各种解决方法教程
  9. getCacheDir()和getFilesDir()方法区别
  10. [渝粤教育] 中国地质大学 审计学 复习题
  11. 医院耗材管理系统开发_14
  12. 59道CSS面试题(附答案)
  13. Element UI 极简教程(1)
  14. 锐捷交换机VRRP配置
  15. springboot+爱心捐赠小程序 毕业设计-附源码211711
  16. 数据分析里面的一些常用指标的特点(最大、最小、平均、中位数、....)
  17. Vue 的最大的优势是什么?
  18. Mendix学习(2021年7月28日)
  19. 好的家庭教育是什么样的?有智慧的家长都这样做
  20. 我的2020年终总结

热门文章

  1. vue路由守卫判断用户是否登录,如果没登陆就跳转到登录
  2. Git命令,合并分支到master,并提交远程仓库,将本地分支推送到远程仓库
  3. python axis 0_Python之NumPy(axis=0/1/2...)的透彻理解
  4. 为什么在iOS上访问优酷和土豆一样可以播放呢?
  5. AFNetwork作用和用法详解
  6. BFS,优先队列优化
  7. Vert.x入坑须知(2)
  8. 《像计算机科学家一样思考Java》—— 导读
  9. 最近很火的百度MIP之 zblog改造
  10. Linux shell编程学习笔记-----第十六章