一、InnoDB坏页出现情况

由于物理磁盘、内存故障、突然断电、强制关机、强制杀死MySQL进程等可能会造成数据坏页现象,数据库实例会不断重启。

错误日志内报如下错误:

InnoDB: Database page corruption on disk or a failed

InnoDB: file read of page

现根据以上现象,对该问题进行处理分析。本方案针对InnoDB引擎进行坏页修复。进行灾难恢复大概率会造成造成一部分数据的丢失。

二、InnoDB坏页修复步骤

本文档只介绍使用innodb_force_recovery参数进行数据库强制打开的方式。

2.1 对数据目录进行冷备

关闭数据库实例,对数据目录进行冷备。

1

shell> tar –cvf data.tar data

2.2 查看错误日志内容

查询错误日志路径

1

2

3

4

5

6

SQL> show variables like 'log_error';

+---------------+------------+

| Variable_name | Value      |

+---------------+------------+

| log_error     | ./test.err |

+---------------+------------+

注:该路径即为datadir目录下

1

shell> tail -3000f /var/lib/mysql/data/test.err

判断此时数据库是否已经无法正常运行

2.3 修改相关参数启动服务

1

2

shell> vi /etc/my.cnf

innodb_force_recovery=1

注:

innodb_force_recovery = 2~6,依次启动服务器直至可以访问有问题的表。

innodb_force_recovery参数解析

innodb_force_recovery可以设置为1-6,大的数字包含前面所有数字的影响。 当设置参数值大于0后,可以对表进行select,create,drop操作,但insert,update或者delete这类操作是不允许的。

1 (SRV_FORCE_IGNORE_CORRUPT):忽略检查到的corrupt页

2 (SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash

3 (SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作。

4 (SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作。

5 (SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。

6 (SRV_FORCE_NO_LOG_REDO):不执行前滚的操作。

2.4 进行全库导出

1

shell> mysqldump -uroot -pmysql --master-data=2  -E -R --all-databases > full.sql

2.5 新环境同版本初始化环境

1

shell> /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/var/lib/mysql --user=mysql

注:basedir/datadir根据实际情况修改

2.6 新环境导入数据

1

shell> mysql -uroot -p < full.sql

MySQL数据库InnoDB坏页处理修复相关推荐

  1. MySQL数据库—InnoDB行存储格式

    目录 一.InnoDB支持的行存储格式 二.Compact记录格式 1.变长字段长度列表 (1)对varchar类型字段长度的存储 (2)对char类型字段长度的存储 2.NULL标志位 3.记录头信 ...

  2. MySQL数据库Innodb储存引擎----储存页的结构

    上一篇博客回顾: 1:数据库拥有众多的储存引擎,现在主要使用的是Inoodb,这个储存引擎有Compact,Redundant,Dynamic,Compressed四种行格式 2:Compact行格式 ...

  3. 记一次Mysql数据库Innodb故障--误删除idb文件

    某天中午,午休快要结束的时候,勤奋.努力.敬业的小编巡检服务器,发现有一台服务器的/home分区空间不足.因为历史原因,这是一个旧的平台,新平台已经建成,也已经投入生产.可是旧平台上依然还有很多的业务 ...

  4. MySQL进阶 - InnoDB数据页结构

    不同类型的页简介 前边我们简单提了一下页的概念,它是InnoDB管理存储空间的基本单位,一个页的大小一般是16KB.InnoDB为了不同的目的而设计了许多种不同类型的页,比如存放表空间头部信息的页,存 ...

  5. mysql 崩溃恢复_超详细的MySQL数据库InnoDB崩溃恢复机制总结

    概述 数据库系统与文件系统大的区别在于数据库能保证操作的原子性,一个操作要么不做要么都做,即使在数据库宕机的情况下,也不会出现操作一半的情况,这个就需要数据库的日志和一套完善的崩溃恢复机制来保证.下面 ...

  6. MySQL数据库InnoDB存储引擎中的锁机制--转载

    原文地址:http://www.uml.org.cn/sjjm/201205302.asp 00 – 基本概念 当并发事务同时访问一个资源的时候,有可能导致数据不一致.因此需要一种致机制来将访问顺序化 ...

  7. mysql数据库innodb恢复命令_MySQL 如何对InnoDB使用Undrop来恢复InnoDB数据

    适用于: MySQL服务器版本4.1到5.6 [发行版4.1到5.6] 本文信息适用于所有平台. 目标 如何使用undropforinnodb从损坏的表中提取数据 解决方案 使用工具有时可能从无法用i ...

  8. MySQL 数据库 InnoDB 和 MyISAM 数据引擎的差别

    InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是 ...

  9. MYSQL数据库的翻页

    这个是我自己想出来的,当时只想到这么个笨方法. 看到不少人都在问MYSQL怎么翻页,现在拿出来给大家借鉴一下. 如果有好的方法请留言.大家互相探讨. <script language=" ...

最新文章

  1. python线程池及其原理和使用
  2. 1049. 数列的片段和
  3. SSL certificate problem, verify that the CA cert is OK. Details:
  4. spring手动配置
  5. AutoMapper的使用
  6. 编写一个程序,计算|X-Y|的值,并将结果存入RESULT单元中,其中X和Y都为带符号字数据。
  7. python6清空屏幕,python:文件的读取、创建、追加、删除、清空
  8. 未来十年,人人有望在家远程办公?
  9. TOMM2018_Unsupervised Person Re-identification: Clustering and Fine-tuning
  10. Boost Asio socket 非阻塞/缓冲区大小等属性设置
  11. 手动ghost装服务器系统教程,手动ghost教程图解
  12. 为什么要测款,直通车测款怎样设置
  13. python如何导入datetime包
  14. 李春葆《数据结构教程》课后习题和实验代码
  15. Vs2008调试慢的问题
  16. WPF MVVM Page 页面导航实例
  17. 手机号码清洗的优势是什么
  18. 虚拟机web配置服务器,【搭建web服务器】以及web的所有配置
  19. Maven中的打胖包瘦包
  20. python实现签到功能_python实现网页自动签到功能

热门文章

  1. html select选择事件_用 Java 拿下 HTML,分分钟写个小爬虫
  2. 画图软件怎么做性能测试,软件性能测试能力提升解决方案.pdf
  3. 从零开始数据科学与机器学习算法-数据预处理与基准模型-01
  4. android控件属性文档,1.Android控件属性收集
  5. Python学习:装饰器使用,timeit()记录程序运行在哪里,耗时多少
  6. vue - blog开发学习4
  7. BZOJ2705 [SDOI2012]Longge的问题 欧拉函数
  8. 学起来 —— CSS 入门基础
  9. JavaScript上传图片及时预览
  10. jQuery表单对象属性过滤选择器