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

作者:佚名 来源:IT专家网论坛 时间:2009-03-20 12:34:00 

建立一个数据库表维护规范

在一个定期基础而非等到问题出现才实施数据库表的检查是一个好主意。应该考虑到建立一个预防性维护的时间表,以协助自动问题,是你可以采取措施进行修正:

执行常规的数据库备份并允许更新日志。

安排定期的常规表检查。通过检查表,将减少使用备份的机会。这个工作,在Windows下使用计划任务,Unix使用cron作业(一般从运行服务器所示用的该帐号的crontab文件中调用),并且很容易实现。

例如,你作为mysql用户运行服务器,则可以从mysql的crontab文件中建立定期检查。如果你不知道如何使用cron,应使用下列命令查看相关的Unix手册页:

         $man cron
  $man crontab
 
作为服务器启动前的系统引导期间检查数据库表。及其可能会因早期的崩溃而重新启动。如果这样的花,数据库表可能已被毁坏,应该对它进行彻底检查。

创建一个适用于定期维护的脚本

为了运行自动的表检查,可以编写一个脚本,将目录改变为服务器数据目录并对所有的数据库表进行myisamchk和isamchk。如果你只有MyISAM表或者只有ISAM表,则只需要其中一个程序,可以将无关的那个程序从脚本中注释掉。

该教本可以被cron调用,或者在系统启动期间被调用。

为维护目的,你能使用myisamchk -s检查桌子。-s,--silent选项使myisamchk和isamchk以沉默模式运行,只有当错误出现时,才仅仅打印消息。另外myisamchk支持--fast选项,该选项允许程序跳过自上次检查以来没有被修改过的人和表。

1. 一个简单的脚本

例如,一个较为容易理解的简单脚本,它在服务器目录中检查所有表(DATADIR应该修改成对应你系统的合适的值):

         #!/bin/sh
      cd DATADIR

      myisamchk --silent --fast */*.MYIi

      samchk --silent */*.ISM
 
2. 一个较为复杂的脚本

实用此脚本的一个潜在的问题时:如果有许多表,通配符模式‘*/*.MYI’和‘*/*.ISM’可能会由于“too many arguments(参数过多)”或者命令行超过shell允许的长度而无法使用。脚本可以进一步修改为(同样,DATADIR修改为适合你系统上的值):

         #!/bin/sh
      datadir=DATADIR

       find $dtatdir –name “*. MYI” -print | xargs myisamchk --silent --fast

       find $dtatdir –name “*. ISM” -print | xargs isamchk --silent
 
当然你也可以在脚本中指定多个数据库目录。

标签:MySQL数据库,日常维护,规范
0
投稿

猜你喜欢

  • SQLServer中的切割字符串SplitString函数

    2011-12-01 08:14:09
  • 概念性产品设计

    2008-06-11 12:57:00
  • 关于Ajax responseText 中文乱码问题

    2008-02-12 16:30:00
  • 如何将txt文本中的数据轻松导入MySQL表中

    2009-03-06 17:35:00
  • [翻译]标记语言和样式手册 Chapter 7 锚点

    2008-01-28 14:01:00
  • PHP抽象工厂模式Abstract Factory Pattern优点与实现方式

    2023-05-25 03:04:57
  • 服务器响应HTTP的类型ContentType大全

    2007-10-23 10:21:00
  • 如何在Frontpage中定义CSS样式

    2008-08-02 12:32:00
  • Dreamweaver使用疑难解答

    2009-09-13 18:41:00
  • 用一个案例讲解SQL Server数据库恢复

    2008-11-28 14:17:00
  • 如何利用SQL Server来发送电子发邮件?

    2010-01-01 15:37:00
  • ASP自动清除ACCESS数据库的日文字符

    2007-11-28 17:40:00
  • Web标准学习:CSS样式书写风格

    2008-03-25 09:37:00
  • SQL提高查询效率之Like篇

    2011-10-01 09:36:42
  • Windows下ORACLE 10g完全卸载的方法分析

    2012-07-11 16:09:26
  • oracle dba 应该熟悉的命令

    2009-07-02 12:08:00
  • 如何快速定位页面中复杂 CSS BUG 问题

    2009-01-15 12:23:00
  • 正则表达式30分钟入门教程

    2007-08-27 10:38:00
  • 如何获取浏览器的更多信息?

    2009-11-23 20:48:00
  • 如何更快更好地调试ASP程序代码?

    2009-11-23 20:13:00
  • asp之家 网络编程 m.aspxhome.com