6 (SRV_FORCE_NO_LOG_REDO) 不要在恢复连接中做日志前滚。 数据库不能另外地带着这些选项中被允许的选项来使用。作为一个

mysql5.1.37在复制环境中出错了,错误如下:出错的是一台slave数据库,这台slave是用来做日常备份的。

Version: '5.1.37max-debug' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution

InnoDB: Error: tried to read 524288 bytes at offset 0 212992.

InnoDB: Was only able to read 69632.

100903 0:10:18 InnoDB: Operating system error number 0 in a file operation.

InnoDB: Error number 0 means 'Success'.

InnoDB: Some operating system error numbers are described at

InnoDB:

InnoDB: File operation call: 'read'.

InnoDB: Cannot continue operation.

100903 00:10:19 mysqld_safe Number of processes running now: 0

100903 00:10:19 mysqld_safe mysqld restarted

100903 0:10:20 [Note] Plugin 'FEDERATED' is disabled.

100903 0:10:20 [Note] Plugin 'ndbcluster' is disabled.

InnoDB: The log sequence number in ibdata files does not match

InnoDB: the log sequence number in the ib_logfiles!

100903 0:10:21 InnoDB: Database was not shut down normally!

InnoDB: Starting crash recovery.

InnoDB: Reading tablespace information from the .ibd files...

InnoDB: Restoring possible half-written data pages from the doublewrite

InnoDB: buffer...

InnoDB: Error: tried to read 557056 bytes at offset 0 212992.

InnoDB: Was only able to read 69632.

100903 0:10:37 InnoDB: Operating system error number 0 in a file operation.

InnoDB: Error number 0 means 'Success'.

InnoDB: Some operating system error numbers are described at

InnoDB:

InnoDB: File operation call: 'read'.

InnoDB: Cannot continue operation.

100903 00:10:41 mysqld_safe mysqld from pid file /dbdata/mysql/mysql.pid ended

这是在晚上发生的,显示数据库在00:10分的时候关闭了,上面给的错误代码0没有任何解释。

仔细回想,每天数据库的全备也是在00:10分的时候,而上面提示的顺序是,首先是InnoDB读取失败,但是操作系统返回0值,不能继续读文件。

然后自动重启,重启过后校验日志,从.idb文件读取表空间信息还原数据恢复现场,但是又出现同样的读取错误,但是操作系统却正常的完成了一次读取,就是读取不到那个位置的数据。

数据库那么大,市场部的人又要立马使用,幸好不是线上直接提供服务的,我可以用其他节点备份,先做下面的操作

#innodb_force_recovery = 4

#skip-slave-start

innodb_force_recovery=4然后启动服务器,这下问题又来了,有一条insert语句过不去,不停的进行重启,当然了这个级别是不允许更新的,那么我只能关闭mysql,然复制也停下来,然后启动mysql,进行check,check也会跳过不可用的数据,check完了,我知道可以用了,注释掉这两行,然后重启,慢慢的等同步完。我知道我丢数据了,但是不知道具体丢了多少。

为了解决问题,采用的方法并不好,其实后来一想,如果要马上起来是可以的,级别改为3就可以了,用不着停掉复制,原因出在恢复的时候无法恢复,无法恢复现场,而回复现场是为了重做或者回滚没有做完的事情。所以并不是log buffer越大越好的,越大恢复的时间就越长。运行速度确实快了不少,但是如果出问题后恢复随之延长。

下面是MySQL手册给出的InnoDB崩溃恢复处理方案,这是没有备份的情况下,如果有其他节点的话,用不着如此做,即使按他的方法做,数据也丢失了,从其他节点恢复过来比较好。

如果数据库页被破坏,你可能想要用SELECT INTO OUTFILE从从数据库转储你的表,通常以这种方法获取的大多数数据是完好的。即使这样,损坏可能导致SELECT * FROM tbl_name或者InnoDB后台操作崩溃或断言,或者甚至使得InnoDB前滚恢复崩溃。 尽管如此,你可以用它来强制InnoDB存储引擎启动同时阻止后台操作运行,以便你能转储你的表。例如:你可以在重启服务器之前,在选项文件的[mysqld]节添加如下的行:

[mysqld]innodb_force_recovery = 4innodb_force_recovery被允许的非零值如下。一个更大的数字包含所有更小数字的预防措施。如果你能够用一个多数是4的选项值来转储你的表,,那么你是比较安全的,只有一些在损坏的单独页面上的数据会丢失。一个为6的值更夸张,因为数据库页被留在一个陈旧的状态,这个状态反过来可以引发对B树和其它数据库结构的更多破坏。

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)

也阻止插入缓冲合并操作。如果你可能会导致一个崩溃。最好不要做这些操作,不要计算表统计表。

5 (SRV_FORCE_NO_UNDO_LOG_SCAN)

启动数据库之时不查看未完成日志:InnoDB把未完成的事务视为已提交的。

6 (SRV_FORCE_NO_LOG_REDO)

不要在恢复连接中做日志前滚。

数据库不能另外地带着这些选项中被允许的选项来使用。作为一个安全措施,当innodb_force_recovery被设置为大于0的值时,InnoDB阻止用户执行INSERT, UPDATE或DELETE操作.

即使强制恢复被使用,你也可以DROP或CREATE表。如果你知道一个给定的表正在导致回滚崩溃,你可以移除它。你也可以用这个来停止由失败的大宗导入或失败的ALTER TABLE导致的失控回滚。你可以杀掉mysqld进程,然后设置innodb_force_recovery为3,使得数据库被挂起而不需要回滚,然后舍弃导致失控回滚的表。

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

mysql 错误代码 0_Linux平台MySQL5InnoDB系统错误代码0相关推荐

  1. 大华供应链管理平台_files_锦江全球采购平台SRM系统2.0版本上线 打造更智能的供应链...

    近期,由甄云科技携手全球知名酒店品牌供应链企业上海锦江联采供应链有限公司,共同打造的SRM2.0项目,在双方的不懈努力下,成功上线,意味着上海锦江联采供应链有限公司正式迈入采购数字化新时代. 锦江全球 ...

  2. win7注册服务器错误代码,鲜为人知的Windows7系统错误代码大全汇总

    在操作Windows系统的时候经常会遇到各种各样的错误代码,尤其是使用在使用最为广泛的Windows7系统下,经常有用户在询问这样或那样的错误代码是怎么回事?下面小编就为大家整理了Windows7系统 ...

  3. 一步一步打造MySQL高可用平台

    六月 北京 | 高性能计算之GPU CUDA培训 6月22-24日三天密集式学习  快速带你入门阅读全文> 正文共3592个字,4图,预计阅读时间18分钟. 引子 笔者刚开始进入公司的时候,主要 ...

  4. ITV常见故障错误代码(中兴平台)

    ITV常见故障错误代码(中兴平台) 2012年01月14日 故障号 提示信息 故障原因 推荐处理方法 电信2.2规范要求的统一故障号,主要是媒体播放异常 1 "系统正忙,请稍候再试" ...

  5. java计算机毕业设计心灵治愈服务平台源码+mysql数据库+lw文档+系统+调试部署

    java计算机毕业设计心灵治愈服务平台源码+mysql数据库+lw文档+系统+调试部署 java计算机毕业设计心灵治愈服务平台源码+mysql数据库+lw文档+系统+调试部署 本源码技术栈: 项目架构 ...

  6. microsoft WINDOWS 系统错误代码

    microsoft WINDOWS 系统错误代码 MS Windows Error Messages Code Error Message 0  操作成功完成.   1  功能错误.   2  系统找 ...

  7. 常见iOS系统错误代码含义 英文版

    这里大概总结了目前所有常见iOS系统错误代码的意义 Iphone Error Collection With Solution Errors -9815 Set exact date**** rest ...

  8. java计算机毕业设计校园一卡通服务平台源码+mysql数据库+lw文档+系统+调试部署

    java计算机毕业设计校园一卡通服务平台源码+mysql数据库+lw文档+系统+调试部署 java计算机毕业设计校园一卡通服务平台源码+mysql数据库+lw文档+系统+调试部署 本源码技术栈: 项目 ...

  9. java计算机毕业设计携手同游旅游社交平台源码+mysql数据库+lw文档+系统+调试部署

    java计算机毕业设计携手同游旅游社交平台源码+mysql数据库+lw文档+系统+调试部署 java计算机毕业设计携手同游旅游社交平台源码+mysql数据库+lw文档+系统+调试部署 本源码技术栈: ...

最新文章

  1. R语言使用str_remove函数和str_remove_all函数删除模式匹配的字符串:str_remove函数删除第一个模式匹配的字符串、str_remove_all函数删除所有模式匹配的字符串
  2. Vista下的Asp.net Mvc安装
  3. 如何快速研究透一篇 Paper 并提出有价值的问题?
  4. 如何让JAVA程序实现一段时间等待
  5. PHP命令注入 Command injection
  6. java用beaninfo_java 可以使用BeanInfo实现bean实体与map之间的互相转换
  7. jmp、JE、JZ、JNE、JNT指令
  8. Source Insight使用技巧
  9. Ant Design Pro 开启默认进入登录页
  10. vbS访问mysql语句_关于VBS连接MySQL与连接Excel
  11. 滑动窗口协议如何实现流量控制
  12. 如何搭建远程访问服务器?外网访问数据库实操教程
  13. 分享两个C库源码中的移位函数
  14. 【图像超分辨率】Satellite Image Super-Resolution via Multi-Scale Residual Deep Neural Network
  15. pr关键帧动画、字幕、音频
  16. CAD软件几何数据存储原理
  17. 41岁职场中年人深度劝告:一定要从小公司往大公司走
  18. input不能输入的问题
  19. 梨视频中的旅行短视频怎么批量下载到电脑中
  20. java中math的方法_Java中Math类常用方法代码详解

热门文章

  1. 2017.9.22 松鼠的聚会 失败总结
  2. linux sed面试题,【2021最新版】Linux面试题总结(48道题含答案解析)
  3. 严格对角占优矩阵特征值_二次型和特征值
  4. 【英语学习】【Daily English】U02 Daily Routine L04 It's your turn to do the chores
  5. ubuntu下安装与使用Log4cpp
  6. java平面内有n个矩形_JAVA 相交矩形面积  平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点...
  7. SPIR-V 研究:编译器基本原理
  8. iOS 的内存管理和虚拟内存机制具体是怎么运作的?
  9. Swift 4.1带来条件一致性等语言上的提升
  10. OwlCarousel.js 帮助API