当前位置: 主页 > 编程知识 > Mysql数据库 > 建立MySQL数据库日常维护规范

建立MySQL数据库日常维护规范

时间:2009-11-16来源:站长资讯网 点击:

3. 如何执行脚本

假定你将脚本存为check_tables,应该确保它是可执行的,当然建议你首先切换到专用户mysql:

         $su mysql
      $vi check_tables(编辑脚本,你也可以使用你喜欢的编辑器)

      $chmod +x check_tables
 
  手工执行,检测你的脚本是否有错误:

         $check_tables
在理想情况下应该没有输出结果。如果系统不支持外部锁定,游客蒽那个服务器将在你检查表时改变它。此时,脚本可能会把实际没有问题的表报告呈有问题的。如果系统能够支持外部锁定,则该问题就不会出现。

在unix中用cron定期检查表

以下将说明如何建立脚本,使它通过cron并在系统启动期间执行。在这小节的例子中,笔者假定把脚本安装在/usr/local/mysql/bin中,你需要修改该过程来检查每个服务器数据目录中的表。你可以使用不同的check_tables拷贝来进行,或者通过修改它来接受一个命令行参数进行,该参数指定了想要检查的数据目录。

假定对mysql用户从crontab文件中调用脚本check_tables。

1. 首先用该用户的身份注册

$su mysql

2. 生成一个临时文件,捕获已经调度的任务

$crontab –l>/tmp/entries

3. 在生成的文件最后一行添加内容

把这一行0 0 * * 0 /usr/local/mysql/bin/check_tables加到临时文件的最后一行:

$echo “0 0 * * 0 /usr/local/mysql/bin/check_tables” >>/tmp/entries

它告诉cron在每个星期日的凌晨0时运行此选项。可以按要求改变时间或安排。有关这些选项的格式,参阅crontab的手册页。

4. 重新安排调度

         $crontab /tmp/entries

如果检查后有任何信息,cron作业通常生成一个邮件消息给用户。由于使用--silent选项,只有表存在错误时,才会有输出,也才会有邮件信息,因此不会产生大量无用邮件信息。(你现在应该明白,脚本采用--silent选项的原因)

对于这样定期的维护,你的服务器最好支持外部锁定,这样在检查表时,就不会发生访问冲突的情况。如果无法做到这一点,你最好在没有用户使用服务器的时候维护,例如凌晨。

在系统启动期间检查表

如果你使用的是BSD风格的系统,例如OpenBSD,FreeBSD等,并且已经将服务器的启动命令增加到/etc/rc.local,要在启动期间检查表,可以在启动服务器前从相应的文件中调用check_tables。

如果对于使用Sytem V风格的启动方法的系统,例如,大多数的商业Unix系统,其启动方法是从/etc/rc.d目录之一调用mysql.server脚本,则在数据库启动前检查表的过程比较复杂,因为这些目录中的脚本必须理解start和stop参数。

例如,象这样编写脚本,取名mysql.check当参数时start时调用check_tables,当参数是stop时什么也不做:

         #!/bin/sh
      #See hou we sere called

      case “$1” in

      start)

      echo –n “Checking MySQL tables:”

      if [ -x /usr/local/mysql/bin/check_tables ] ; then

      /usr/local/mysql/bin/ check_tables

      fi;;

      stop)

      #don’t do anything 

       ;;

       *)

       echo “Usage:$o{start|stop}”

       exit 1

       esac

       exit 0
 
现在你可以安装mysql.check了,该过程类似乎在第二章介绍的让服务器自动启动的安装mysql.server的过程。必须给mysql.check一个运行级目录中较低的前缀号,才能使它在mysql.server前运行。例如,如果在运行级目录中以S99mysql.server连接到mysql.server,则应该以S98mysql.check链接到mysql.check。

由于Linux集中了BSD和Sytem V系统的优点,所以,上面两种方法完全适用于Linux。为了简便起见,一般使用第一个方法。

 

站长资讯网
.
分页: [1] [2]
TAG: 数据库 MYSQL 日常 规范 维护
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言