欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

安排预防性的维护MYSQL数据库服务器[组图]_MySQL

程序员文章站 2022-06-17 18:01:50
...
应该考虑建立一个预防性维护的时间表,以协助自动检测问题,使得您可以采取措施进行修正:

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

2) 安排定期的常规表检查。通过检查表,将减少使用备份的机会。这个工作使用cron 作业(一般从运行服务器所使用的该账号的crontab 文件中调用)并且很容易实现。例如,如果您作为mysqladm 用户运行服务器,则可以从mysqladm 的crontab 文件中建立定期检查。如果您不知道如何使用c r o n,应使用下列命令查看相关的UNIX 人工页:

% man cron

% man crontab

3) 在服务器启动前的系统引导期间检查数据库表。机器可能会因早期的崩溃重新启动。如果是这样的话,数据库表可能已被毁坏,应该对它进行检查。

为了运行自动的表检查,可以编写一个脚本,将目录改变为服务器数据目录并对所有数据库表运行myisamchk 和i s a m c h k。我们将在下面讨论的脚本中同时使用这两个程序。如果您只有MyISAM 表或只有ISAM 表,则只需其中一个程序,可以将无关的那个程序从脚本中去除。

myisamchk 和isamchk 都根据表检查的方式产生某些输出结果以便了解正在检查哪些表,甚至在没有问题时也是如此。对于crontab 的项,除非表中有错误,否则通常将禁止输出结果(如果作业产生任何输出, cron 作业通常生成一个邮件消息,很少会收到没有任何问题的表检查作业的邮件)。如果用--silent 选项调用任一个实用程序,它仅当发现问题时才产生输出。另外,myisamchk 支持--fast 选项,该选项允许程序跳过自上次检查以来没有被修改过的任何表。

在服务器数据目录中检查所有表的一个简单的脚本如下( DATADIR 应该修改成对应您系统的值):

安排预防性的维护MYSQL数据库服务器[组图]_MySQL

实用此脚本的一个潜在的问题是:如果有许多表,通配符模式‘ * / * . M Y I’或‘* / * . I S M’可能会由于“ too many arg um e n t s(过多的参数)”错误使外壳程序爆炸。另一个可选择的脚本如下(同样,将DATADIR 改变为对应您系统的值):

安排预防性的维护MYSQL数据库服务器[组图]_MySQL

不论您选择哪种形式的脚本,笔者都假定您调用的是c h e c k _ mysql_ tables,应确保及时改变该方式使它可执行,然后您手工调用它以验证它工作是否正常:

% chmod +x check_mysql_tables

% chmod_mysql_tables