DBA经验:如何进行MySQL数据库表的故障检测

作者:上帝 时间:2009-02-12 17:37:00 

你可能在使用MySQL过程中,各种意外导致数据库表的损坏,而且这些数据往往是最新的数据,通常不可能在备份数据中找到。本章将讲述如何检测MySQL数据库表的故障。

数据库表的故障检测和修正的一般过程如下:

◆ 检查出错的表。如果该表检查通过,则完成任务,否则必须修复出错的数据库表。

◆ 在开始修复之前对表文件进行拷贝,以保证数据的安全。

◆ 开始修复数据库表。

◆ 如果修复失败,从数据库的备份或更新日志中恢复数据。

在使用myisamchk或isamchk检查或修复表之前,应该首先注意:

◆ 建立数据库备份和使用更新日志,以防修复失败,丢失数据。

◆ 仔细阅读本章内容以后再进行操作,尤其是不应该在阅读“避免与MySQL服务器交互作用”之前进行操作。因为,在你没有足够的知识之前贸然操作,可能会引起严重的后果。

◆ 如果你在Unix平台上对表进行维护时,应该首先注册到专用的帐户 mysql,以避免对表读写访问产生所有权的问题,以及破坏数据库目录的所有权限。

数据库表的维护工具

MySQL的myisanchk和isamchk实用程序很类似,基本上它们具有同样的使用方法。它们之间的主要区别时所使用的表的类型。为了检查/修复MyISAM表(.MYI和.MYD),你应该使用myisamchk实用程序。为了检查/修复ISAM表(.ISM和.ISD),你应该使用isamchk实用程序。

◆ 为了使用任一个使用程序,应指明你要检查或修复的表,myisamchk和isamchk的使用方法为:

shell>myisamchk options tbl_name shell>isamchk options tbl_name

如果你愿意,你可以在命令行命名几个表。

◆ 你也能指定一个名字作为一个索引文件(用“ .MYI”或“.ISM”后缀),它允许你通过使用模式“*.MYI”或“.ISM”指定在一个目录所有的表。例如,如果你在一个数据库目录,你可以这样在目录下检查所有的表:

shell> myisamchk *.MYI shell>isamchk *.ISM

◆ 如果你不在数据库目录下,你可指定目录的路径:

shell> myisamchk options /path/to/database_dir/*.MYI shell> isamchk options /path/to/database_dir/*.ISM

◆ 你甚至可以通过为MySQL数据目录的路径指定一个通配符来作用于所有的数据库中的所有表:

shell> myisamchk options /path/to/datadir/*/*.MYIshell>

isamchk options /path/to/database_dir/*/*.ISM

这个方法无法在windows平台下使用。

注意 不论是myisamchk还是isamchk都不对表所在的位置做任何判断,因此,应该或者在包含表文件的目录运行程序,或者指定表的路径名。这允许你将表文件拷贝到另一个目录中并用该拷贝进行操作。

标签:
0
投稿

猜你喜欢

  • 错误 2812: 未能找到存储过程 'master.dbo.xp_fileexist'

    2010-07-22 19:50:00
  • 首页访问感受提升三步曲

    2007-12-13 20:36:00
  • asp get和post数据接收过滤

    2011-04-06 10:52:00
  • 用文本+ASP打造新闻发布系统

    2009-02-02 09:31:00
  • 教你轻松掌握常用的子句、关键词和函数

    2009-01-19 13:34:00
  • 四大因素扼杀了中国人的创造力

    2008-09-11 18:05:00
  • 在SQL Server 2005数据库中更改数据架构

    2009-01-19 13:06:00
  • QQ聊天窗口链接提示效果代码

    2008-12-16 12:59:00
  • 怎样设置密码保护问题

    2009-02-16 13:12:00
  • 轻松掌握执行一个安全的SQL Server安装

    2009-01-13 14:03:00
  • XPath 11个实例

    2008-09-05 15:06:00
  • 一个修改Oracle数据库用户密码的小诀窍

    2009-09-30 15:29:00
  • 在ASP中使用SQL语句之11:记录统计

    2007-08-11 13:27:00
  • T-SQL 查询语句的执行顺序解析

    2011-11-03 17:04:06
  • js实现一个日期联动下拉菜单

    2007-08-04 20:49:00
  • ASP获取ACCESS数据库的表名以及表名对应的字段名和字段类型

    2009-12-25 18:57:00
  • 如何给eWebEditor编辑器加上运行代码框功能

    2007-09-25 07:02:00
  • mysql myisam 优化设置

    2010-03-25 10:18:00
  • MySQL转义字符的实际应用

    2010-08-31 14:55:00
  • ASP四级连动下拉列表程序段

    2009-07-03 15:33:00
  • asp之家 网络编程 m.aspxhome.com