ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL数据库InnoDB坏页处理修复

2021-09-04 14:34:28  阅读:181  来源: 互联网

标签:shell FORCE -- MySQL InnoDB mysql SRV 坏页


一、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

标签:shell,FORCE,--,MySQL,InnoDB,mysql,SRV,坏页
来源: https://www.cnblogs.com/chenguopa/p/15226547.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有