MySQL数据库规范化设计


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

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

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

  安排定期的常规表检查。通过检查表,将减少使用备份的机会。这个工作,在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

  当然你也可以在脚本中指定多个数据库目录。



相关阅读:
php自定义函数call_user_func和call_user_func_array详解
Linux系统下rar和zip文件的压缩和解压缩
Windows Server 2008下的网络排错
Linux教程:配置DHCP服务器方法介绍
数据库应用:Sybase到Oracle连接服务器实现
AJAX实践之与服务器通信(1)
CSS Hack 有关浏览器兼容方面
tomcat怎么设置跟iis那种类似的访问密码
linux简单使用expect登陆远程计算机
Windows 2003如何应用组策略和安全模板
删除并重新安装 IIS 和 Exchange
图片onload事件触发问题解决方法
详细讲解:Linux系统GRUB的MD5加密方法
SQL Server教程:备份和恢复措施
快速导航

Copyright © 2016 phpStudy |