防微杜渐 管理MYSQL有窍门

时间:2011-05-13 03:08 来源: www.xjpc119.com
 

由于MYSQL是我所在企业信息化的基础单元,因此,MYSQL数据库的管理和维护已经成为日常工作内容中的重要部分,数据库的备份、检查、修复等成为每周的必修课。在此,本着互联网精神,分享一下多年来在MYSQL管理方面的常用技巧,希望能为MYSQLERS提供一些帮助或参考。

数据库的正确备份与恢复备份

数据原文件备份

MYSQL数据在设计时就将一个个数据库独立地放在MYSQL应用目录下,因此方便了我们对需要备份的数据库进行原文件拷贝,并完成数据的备份的操作。这也成为目前MYSQL管理者主要使用的备份方法之一。

PS:鉴于国内多数服务器依然是使用的微软的服务器系统,以下内容将基于微软服务器系统环境进行描述。数据库以MYSQL5版本来进行描述。

实例:我们的MYSQL数据库安装在F:\mysql下,在此应用目录下有一个叫data的目录,data目录是MYSQL的数据库存储目录,在data目录下就是我们各个数据库的原文件目录,目录名称与我们的数据库名字是完全一致的,我们仅需把需要备份的数据库名字对应的目录复制到我们的备份目录,即完成了对指定数据库的备份,很简单吧:)

提示:data目录下的mysql目录是MYSQL的表与用户权限关系数据库,一般情况下不要去动它。

数据导出备份

导出备份相对于原文件备份要麻烦一些,不过因为能导出单个SQL文件,能为网站应用项目的部署提供条件。因此,如果你是一位做项目开发的朋友,那这也是需要学会并掌握的内容。

进行数据库导出时,需要在服务器本地进行,当然也有方法远程进行,不过本篇仅描述服务器本地导出方法。

数据库导出命令:mysqldump

标准版的MYSQL中,此命令位于MYSQL目录下的bin目录里,命令格式如下:

mysqldump –u [用户名] –p [用户密码] [需要备份的数据库名] > [备份到哪个路径下的哪个文件名]

假设我们使用最高权限用户root进行备份,最高权限用户密码为123456,我们需要将一个名叫ABC的数据备份到F:\ABC.sql文件,我们进入F\mysql\bin\目录进行备份,例:

mysqldump –u root –p 123456 ABC > f:\ABC.sql

执行以上备份后在我们的F盘下会生成一个叫ABC.sql的文件,这就是我们备份出来的ABC数据库的备份文件。

原文件恢复备份

将我们备份的原文件拷贝到MYSQL的data目录下就完成了备份恢复。

备份数据导入

与mysqldump相对应,备份数据的输入也是使用命令进行,命令模式如下: mysql –u [数据库用户名] –p [用户密码] [需要恢复的数据库名]< [包括备份文件名称的完整路径] 将之前我们备份出来的ABC.sql文件进行一次导入,使用我们假设的最高权限用户root来进行,例: mysql –u root –p 123456 ABC< f:\ABC.sql 执行完成后,备份的ABC.sql数据就完成了导入。 注意:导入前如果MYSQL没有ABC这个数据库,请先使用建立数据的命令建立一个空的ABC数据库。

工具推荐

PHPMYADMIN是一款在线管理工具,目前已经应用得非常广泛,它提供了从数据库权限分配到数据库远程备份打包下载的日常所需要的大部分功能。

PHPMYADMIN界面

数据检查与修复

日常数据检查的优化

虽然MYSQL为数据库检查、优化、修复提供多个可选择的单独命令,不过在日常维护中,我们更喜欢一次性就完成检查、优化、修复的操作,这样能省下不少的时间,还能提高工作效率,命令如下: mysqlcheck –o [数据库名] -u [数据库用户名] –p [用户密码] 如果我们需要对ABC进行检查和优化,我们只需在f:\mysql\bin下执行命令: mysqlcheck -o ABC –u root –p 123456 执行完成后,ABC数据库中存在的数据错误将全部得到检查、修复和优化。

数据表文件修复命令

记得有一次,公司的一个100万行级的数据表损坏,导致服务器CPU占用100%,使用普通修复和优化无果,在这样的特殊情况下,MYSQL数据表出现数据表文件损坏,我们已经无法用mysqlcheck完成修复,在此我们需要用到另一个命令(标准安装版中一定有,解压版的可能没有这个命令):

myisamchk -B -o [目标数据表物理路径] 此命令也在MYSQL的bin目录下。如果有一天,我们的ABC数据库下的TEST数据表损

坏,我们可以使用以下命令进行修复: myisamchk -B –o f:\msyql\data\ ABC\test.MYD 通过执行这个命令,损坏的test表文件有90%的机会得到修复,让我们的数据得到挽救。 注意:运行命令时需要停止MYSQL服务,如果表比较大,修复时需要一定的时间。

工具推荐

SQLyog是一款多功能的MYSQL客户端,可以在服务器或本地进行安装使用,它提供了全部我们需要的功能(除数据表损坏修复),不但能方便地完成远程查询,还能将我们查询的结果导出成为我们需要的文件格式,方便提取数据报表。同时,对不同字符集的支持比较全面。对于MYSQL管理员或开发人员来说,它能完成触发器、存储过程代码的编写,是一款非常出色的MYSQL远程管理利器。

SQLyog


友情链接