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;
猜你喜欢
- 演示:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//
- 假设mysql安装在c:盘,mysql数据库的用户名是root,密码是123456,数据库名是database_name,在d:盘根目录下面
- 在asp里通过以下两个函数实现javascript里的escape函数和unescape函数加密功能。在ajax post或get时内容存在
- Mootools 1.2手风琴(Accordion)教程原文地址:30 Days of Mootools 1.2 Tutoria
- 说到网络产品,离不开的话题就是用户,就像传统行业的消费者。人是复杂的,网民的用户行为更加复杂,用户和用户是不一样的,或者说,每个用户都不一样
- 今天有人问起,晚上试着写出来,供参考; 以下代码兼容主流浏览器IE6、IE7、Firefox、Opera。从最简单的开始…………一
- 我们先看一下淘宝的页面:这么一个庞然大物,该怎么切图呢?显然按照给出的方法也可以完成这项任务,但是做为前端开发的我们是否应该给自己提出更高的
- 让我们重温一下JavaScript的一些基础知识,请先写出以下代码中问号处的答案,再运行比较!<script type=&q
- 如果你是个赛车手,并且按一下按钮就能够立即更换引擎而不需要把车开到车库里去换,那会是什么感觉呢?MySQL数据库为开发人员所做的就好像是按按
- 在MySQL中,一个字符串中,如果某个序列具有特殊的含义,则这个序列以反斜线符号(‘\’)开头,称为转义字符。常见的转义字符:\0 ASCI
- 过去有很多网页设计师喜欢将他们的网页效果图用table布局实现成网页,但是这样做会遇到一个比较麻烦的问题就是,后期调试和维护会相当的困难。现
- 本文详细列出了HTML中使用到的各种鼠标事件,如onclick,onmouseover等;页面相关事件如:onerror,onload等;h
- 用下列方法可以做到: main.htm<html><body><form action="
- 代码如下:DECLARE @T varchar(255), @C varchar(255) DECLARE Table_Cursor CUR
- 适用环境: PHP5.2.x / mysql 5.0.xclass Mysql { priva
- ASP具备动态输出任一Office应用程序文件格式的功能。在开始编写代码之前,我们首先需要做的就是设置正确的文件类型,因为浏览器需要知道如何
- 以下的文章主要是介绍SQL Server数据转换服务的4妙用之执行一些自动化的操作。在SQL Server数据库的实际操作管理中,数据库管理
- 使用SQL SERVER的[导入]功能,便可将access数据转换,但要注意原来的'自增字段'需要修改,将相应字段标识修改为
- 如何在读取Excel文件时创建列表的下拉菜单?代码如下,用来创建工作表列表的下拉菜单: < select 
- 大家在使用ASP设计用户提交表单的时候,如果涉及到网址输入框,那么相信都有可能会用到这个效果,使用正则表达式验证网址合法性。代码如下:<