MYSQL教程:检查数据表和修复数据表

作者:佚名 来源:网页教学网 时间:2009-03-11 15:24:00 

数据库在运行中,会因为人为因素或一些不可抗力因素造成数据损坏。所以为了保护数据的安全和最小停机时间,我们需制定详细的备份/恢复计划,并定期对计划的有效性进行测试。

本章结合MySQL服务器的运行机制和所提供的工具,介绍如何进行数据库的备份、维护和修复。

以下是几点防范的措施:

制定一份数据库备份/恢复计划,并对计划进行仔细测试。

启动数据库服务器的二进制变更日志,该功能的系统开销很小(约为1%),我们没有理由不这样做。

定期检查数据表,防范于未燃。

定期对备份文件进行备份,以防备份文件失效。

把MySQL的数据目录和备份文件分别放到两个不同的驱动器中,以平衡磁盘I/O和增加数据的安全。

检查/修复数据表
对数据表进行维护最好通过发出CHECK TABLE(检查数据表)或REPAIRE TABLE(修复数据表)命令来做,这样MySQL服务器自动进行表锁定以协调数据表中数据的读写一致性问题。

也可用myisamchk工具来做数据表的维护,但它直接访问有关的数据表文件,不通过服务器,所以需人为地协调数据表数据的读写一致性问题。使用myisamchk检查数据表的具体操作步骤如下:

以mysql客户端程序连接服务器,并发出LOCK TABLE命令,以只读方式锁住数据表。

% mysql

mysql> use db

mysql> LOCK TABLE table_name READ;     #以只读方式锁定表

mysql> FLUSH TABLE table_name;        #关闭数据表文件,并把内存中的信息写入磁盘

保持上面的状态不退出,另开一个shell窗口,用以下命令维护(检查)数据表。

% myisamchk table_name
   
如果不保持上面状态,退出mysql会话,则表锁定会自动取消。

维护完成,切换回mysql状态的shell窗口,发出以下命令解除表锁定。

mysql> UNLOCK TABLES;

使用myisamchk修复数据表的具体操作步骤如下:

进行修复操作需以读/写方式锁定数据表,命令如下:

% mysql

mysql> use db

mysql> LOCK TABLE table_name WRITE;     #以读/写方式锁定数据表

mysql> FLUSH TABLE table_name;

保持mysql客户端连接状态,切换到第二个shell窗口,运行修复命令:

% myisamchk --recover table_name
   
运行修复命令前最好先备份一下数据文件。

修复完成后,切换回mysql客户端连接窗口,运行以下命令解除数据表锁定:

mysql> FLUSH TABLE table_name;     #使服务器觉察新产生的索引文件

mysql> UNLOCK TABLE;

还可用以下命令锁定所有表,锁定后,所有用户就只能读不能写数据,这样就可使我们能安全地拷贝数据文件。

mysql> FLUSH TABLES WITH READ LOCK;

下面是解除锁语句:

mysql> UNLOCK TABLES;

标签:MYSQL,检查数据,修复,数据表
0
投稿

猜你喜欢

  • 泛泛而谈界面中的斑马纹设计

    2010-07-15 12:59:00
  • Python函数式编程指南:对生成器全面讲解

    2022-09-26 05:56:17
  • IDEA配置GIT的详细教程

    2022-09-25 09:18:51
  • javascript new fun的执行过程

    2010-08-05 21:23:00
  • pytorch索引查找 index_select的例子

    2023-09-12 20:45:05
  • MySQL在Linux系统中隐藏命令行中的密码的方法

    2024-01-20 03:38:34
  • Python中and和or如何使用

    2022-04-27 18:01:49
  • oracle 数据按主键删除慢问题的解决方法

    2024-01-21 17:44:09
  • Python虽然很火找工作为什么这么难

    2022-10-29 11:33:03
  • MySQL递归查询的3种实现方式实例

    2024-01-16 21:22:52
  • MySQL取出随机数据

    2024-01-19 22:12:02
  • python实现图片,视频人脸识别(dlib版)

    2023-03-28 14:35:19
  • webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)

    2024-04-27 16:10:21
  • Go语言题解LeetCode561数组拆分

    2023-06-20 22:49:14
  • 浅述七大主流数据库

    2011-08-05 18:21:27
  • 使用python 对验证码图片进行降噪处理

    2022-01-27 23:02:16
  • php中mysql连接方式PDO使用详解

    2023-11-06 02:46:43
  • oracle 时间格式的调整

    2009-05-24 19:32:00
  • Python读取Json字典写入Excel表格的方法

    2021-06-20 06:33:58
  • asp access数据库并生成XML文件范例

    2011-03-29 10:49:00
  • asp之家 网络编程 m.aspxhome.com