InnoDB 中文参考手册 --- 15 故障检测与修复

原创 2003年05月22日 08:27:00

15 故障检测与修复

  • 一个普遍的规则就是当一个操作挫败或你怀疑是一个 bug,你必须查看 MySQL 服务程序 mysqld 的错误日志(error log),通常命名为 'hostname'.err,或 Windows 下的 mysql.err
  • 当进行故障检测并修复时,在命令提示符下运行 MySQL 服务程序 mysqld 是一个较好的方式,不要通过 safe_mysqld 的包装(wrapper)或以 Windows 服务启动。你可以看到 mysqld 在命令提示符窗口上的显示,而可以更好地把握什么将要发生。在 Windows 下,你必须以 --console 选项运行 mysqld-max 来使输出直接显示在 MS-DOS 提示符窗口上。
  • 如果问题与性能有关(performance-related),或你的服务看起来将要挂起,你可以使用 innodb_monitor 来显示 InnoDB 内部状态的相关信息。如果问题是由于锁定引起,使用 innodb_lock_monitor。如果问题是在建表时或其它的数据字典操作,使用 innodb_table_monitor 显示 InnoDB 内部数据字典的内容。
  • 如果你怀疑表已损坏,在表上运行 CHECK TABLE

15.1 发现并修复数据字典错误的操作

一个特殊的有关表的问题就是 MySQL 在它自己的数据目录下的 .frm 文件中保存它自己的数据字典信息,然而 InnoDB 将它自己的信息保存在数据文件中 InnoDB 自己的数据字典中。如果你在外部移走了 .frm 文件,或在 MySQL < 3.23.44 的版本中使用了 DROP DATABASE ,或在数据字典操作时服务器崩溃了,那么 .frm 文件可能会因与 InnoDB 内部的数据字典 out-of-sync 而结束。

与数据字典 out-of-sync 的一个故障现象就是 CREATE TABLE 语句的调用失败。那么你必须查看错误日志。如果错误述说为表在 InnoDB 内部数据字典中已存在,那么一定在 InnoDB 的数据文件中存在一个孤表(orphaned table),没有相对应的 .frm 文件。


你可以跟从上面错误日志中的提示移除(drop)孤表(orphaned 
table)。 

 

另一个与数据字典 out-of-sync 的故障现象就是 MySQL 提示不能打开一个文件 yourtablename.InnoDB 的错误。


在错误日志中可以发现: 

意思就是有一个孤的(orphaned) .frm 
文件,在 InnoDB 中没有相应的表与之对应。可以通过手工删除 .frm 文件来移除它。  

 

如果在一个 ALTER TABLE 操作时 MySQL 崩溃了,你可能会因在 InnoDB 表空间在存在一个孤的临时表而告终。通过 innodb_table_monitor ,你可以发现一个名为 #sql... 的表,但是 MySQL 不允许访问任何一个如此命名的表,你将不能转储(dump)或移除(drop)它。解决办法就是使用从 3.23.48 开始 InnoDB 支持的一个特殊的机制。

如果在表空间内存在一个孤表(orphaned table) #sql... ,那么调用


使表定义与临时表相似,你可以使 InnoDB 将孤表重命名为 `rsql..._recover_innodb_tmp_table`。那么你就可以转储或移除重命名后的表了。 表名中的反引号是必须的,因为临时表命名中包含字符 '-'

 

MySQL的Innodb表恢复

一、innodb恢复方法 强制执行innodb恢复 如果你想从数据库中备份你的数据。通常,大多数获得的数据是完整的。但是,不排除你在执行SELECT * FROM tbl_name或者执行Inno...
  • hyy_217
  • hyy_217
  • 2017年05月27日 16:39
  • 300

MySQL数据库INNODB 表损坏修复处理过程

MySQL数据库INNODB 表损坏修复处理过程 突然收到MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了。innodb表损坏不能通过repair table...
  • hzqhbc
  • hzqhbc
  • 2014年03月18日 16:20
  • 2467

MySQL数据库INNODB 表损坏修复处理过程 无法repair的变通方法

MySQL数据库INNODB 表损坏修复处理过程 我要评论2013/5/13 11:49:43来源:绿色资源网编辑:www.downcc.com [大 中 小] 评论:0 ...
  • zhangfeng1133
  • zhangfeng1133
  • 2015年10月28日 21:54
  • 921

HTML 参考手册- (HTML5 标准)

定义注释 定义文档类型 定义超文本链接 定义缩写 定义只取首字母的缩写,不支持HTML5 定义文档作者或拥有者的联系信息 ...
  • saw471
  • saw471
  • 2017年02月20日 12:56
  • 533

MySQL数据库INNODB 表损坏修复处理过程

最近mysql数据库经常死掉,用命令net stop mysql命令也无法停掉,关闭Tomcat的时候,出现Waiting for N instance(s) to be deallocated 信息...
  • pentilun
  • pentilun
  • 2016年06月06日 15:01
  • 1825

Apache Mina Server 2.0 中文参考手册中文参考手册

原文链接:点击打开链接 Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、...
  • y_chengyong
  • y_chengyong
  • 2013年06月23日 16:27
  • 1366

使用ibd文件恢复innodb数据

mysql常用引擎有两种,myisam和innodb。myisam备份容易,直接备份.frm,.MYD,.MYI文件,然后再复制粘贴到目标数据库文件夹即可。但是innodb则不可以,即使你把.frm,...
  • blueleaf21
  • blueleaf21
  • 2017年07月28日 21:57
  • 347

如何查找STM32开发资料

Ⅰ、概述 该文写给那些处于初学ST芯片开发、英文不好而又想偷懒的人。 该文主要的目的是提醒大家:学习一门技术是需要舍得花功夫,捷径是你在起点与终点之间不断的探索,最终总结出来的一条适合自己的路。 下面...
  • ybhuangfugui
  • ybhuangfugui
  • 2016年06月19日 20:21
  • 3288

Mapbasic(中文)参考手册

 Mapbasic(中文)参考手册 一 从功能查函数和语句 二 各个语句和函数的功能说明 三 参考手册原文关于句法字体的约定 Mapbasic...
  • djq2000
  • djq2000
  • 2014年12月27日 12:13
  • 290

C# mysqlcheck 检查数据库异常+修复数据库

断电等不可预期的错误导致数据库表不能使用。。。所以在网上找了一下有什么可以修复户数据库的。 1.SQL语句。 2.MYSQL自带的mysqlcheck工具。 虽然有了介绍但是 并不知道如何使用。...
  • sinat_30224769
  • sinat_30224769
  • 2016年08月31日 13:29
  • 1080
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:InnoDB 中文参考手册 --- 15 故障检测与修复
举报原因:
原因补充:

(最多只允许输入30个字)