您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

安排预防性的维护MYSQL数据库服务器

添加时间:2014-11-12 1:56:31  添加: 思海网络 
   应该考虑建立一个预防性维护的时间表,以协助自动检测问题,使得您可以采取措施进行修正:
    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 应该修改成对应您系统的值):

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

    不论您选择哪种形式的脚本,笔者都假定您调用的是c h e c k _ mysql_ tables,应确保及时改变该方式使它可执行,然后您手工调用它以验证它工作是否正常:
    % chmod +x check_mysql_tables
    % chmod_mysql_tables
    在理想情况下应该没有输出结果。如果系统不支持外部锁定,有可能服务器将在您检查表时改变它。此时,脚本可能会把实际没问题的表报告成有问题的。这有点不幸,但比出现相反的问题要好:当出现某些故障时脚本报告无问题。如果系统支持外部锁定,则该问题就
不会出现。
    以下部分将说明如何建立脚本,使它通过cron 并在系统启动期间自动执行。在这些小节的例子中,笔者假定脚本安装在/usr/users/mysaladm/bin 中。您将需要调整适合自己系统的值。
    如果在您的系统上运行了多个服务器,将需要修改该过程来检查每个服务器数据目录中的表。您可以使用不同的check_mysql_tables 拷贝来进行,或通过修改它来接收一个命令行参数进行,该参数指定了想要检查的数据目录。

用cron 定期检查表

    假定要想对mysqladm 用户从crontab 文件中调用脚本c h e c k _ mysql_ tables。先以该用户的身份进行注册,然后用下列命令编辑crontab 文件:
    % crontab -e
    该命令带您进入带有当前crontab 文件拷贝的编辑器中(如果以前没有编辑过,此文件可能是空的)。增加一行到文件中:
    0 3 * * 0 /usr/users/mysqladm/bin/check_mysql_tables
    它告诉cron 在每个星期日的上午3 时运行此选项。可以按要求改变时间或安排。有关这些选项的格式,请参阅crontab 人工页。

在系统启动期间检查表

    如果您正在使用BSD 风格的系统,并且已经将服务器的启动命令增加到/etc/rc.local 或类似的其他文件中,则可以在启动服务器前从对应的文件中调用c h e c k _ mysql_ tables。
    如果正在使用System V 风格的启动方法从/etc/rc.d 目录之一中调用mysql. server,则过程稍有点复杂。这些目录中的启动脚本应该理解start 和stop 参数的含义,以便对系统的启动和关闭采取相应的操作。为了执行表的检查,我们可以编写这样的脚本:当参数为start 时调用c h e c k _ mysql_ tables,而当该参数为stop 时不做任何事情。让我们来调用这样的一个脚本
mysql. c h e c k,其内容如下:

    现在,您已经可以使用一个过程来安装mysql. c h e c k了,该过程类似于在第11章所介绍的安装mysql.server 的过程。必须给mysql.check 一个运行级目录中较低的前缀号,才能使得它在mysql.server 前运行。例如,如果在运行级目录中以S99mysql.server 链接到mysql. server,则应该以S98mysql.check 链接到mysql.check 。

关键字:MYSQL、数据库、服务器

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站