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。为了简便起见,一般使用第一个方法。

mysql数据库维护重要性_建立MySQL数据库日常维护规范相关推荐

  1. MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结

    MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中,N指的是字符的长度,VARCHAR类型最大支持65535,指的是 ...

  2. c 编程 mysql结果集_使用mysql C语言API编写程序—MYSQL数据库查询操作(执行查询操作,获取查询结果的字段数,记录行数,...

    //MYSQL_RES保存查询结构 MYSQL_RES* result_ = NULL; int error_code = 0; //保存错误码 char error_info[1024] = '\0 ...

  3. mysql创建模型_连接mysql数据库,创建用户模型

    安装与配置python3.6+flask+mysql数据库下载安装MySQL数据库 下载安装MySQL-python 中间件 pip install flask-sqlalchemy (Python的 ...

  4. c语言 mysql 查询数字_使用mysql C语言API编写程序—MYSQL数据库查询操作

    //MYSQL_RES保存查询结构 MYSQL_RES* result_ = NULL; int error_code = 0;//保存错误码 char error_info[1024] = '\0' ...

  5. mysql同步数据_实现MySQL数据库数据的同步方法介绍

    做开发的时候要做MySQL的数据库同步,两台安装一样的系统,都是FreeBSD5.4,安装了Apache 2.0.55和PHP 4.4.0,MySQL的版本是4.1.15,都是目前最新的版本. 1.安 ...

  6. mysql备份恢复_使用MySQL命令行备份及恢复数据库

    使用MySQL命令行,可以实现对数据库的备份以及恢复,下面就为您介绍使用MySQL命令行实现该功能的详细方法步骤,供您参考. MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd ...

  7. 系统中mysql设计过程_某系统 数据库设计过程记录

    数据库设计文档(MySQL) XXX 项目 MySQL + Elasticsearch 数据库架构设计 What & Why What 现在需要一个 能够暂时/临时承担系统检索需求, 长期承担 ...

  8. 怎么在linux下用mysql建库_在MySQL/MariaDB中创建数据库、数据库用户和授予特权(针对Linux平台)...

    在本文中,将学习MySQL/MariaDB数据库创建.数据库用户创建以及如何向用户授予权限,方法针对Linux平台.安装数据库请参考为CentOS 8操作系统安装MySQL的方法,以安装MySQL 8 ...

  9. mysql 增量备份_云计算-开源数据库-备份

    关于备份: 备份原因:怕丢,怕被误删. 备份目标:数据的一致性,服务的可用性. 备份技术:物理备份/冷备份 直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但不能恢复到不同的MySQL版 ...

  10. 添加mysql库路径_修改MySQL数据库存放路径

    MySQL 数据库默认存放路径是 /var/lib/mysql,要把它放在别的路径下,方法如下(以下操作需root权限): 1. 新建一个要存放的数据库的目录,比如:/home/jeff/mysql, ...

最新文章

  1. Affinity Propagation+聚类
  2. VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
  3. 那些做中台的程序员,后来都怎么样了?
  4. Talend Restful
  5. C# 特性(Attribute)
  6. 云联惠身份认证得多久_【转发扩散】你完成认证了吗?老来网APP也可以刷脸认证哦!...
  7. 通过phantomjs 进行页面截图
  8. for的部分使用方法
  9. gyp verb ensuring that file exists: C:\Python27\python.exe
  10. 微信设置字体后微信浏览器页面字体也会跟着改变的解决办法
  11. 槑图秀秀 (初学JAVA第三篇)
  12. python输入名字、输出_Python输入输出
  13. ubuntu16.04离线安装NIVIDIA驱动
  14. 吕梁云计算机中心,吕梁云计算中心综合实力全国排第三
  15. calcite连接mysql_calcite简单入门
  16. [读书笔记]多线程学习笔记
  17. 《iOS用户体验》总结与思考-改动版
  18. Python学习 Day30 正则表达式(二)
  19. 项目管理十大知识领域47个子过程
  20. 如何安装Endnote以及如何在word2013中关联endnote

热门文章

  1. php hbase thrift,php通过thrift操作hbase
  2. 编写iPhone应用程序有何不同
  3. kafka 重新分配partition
  4. 软件工程第0次作业 | 热身
  5. GoldenGate 12.3 MA架构介绍系列(4)–Restful API介绍
  6. 你知道军装照H5浏览了多少次吗? 10亿
  7. NOIP 2014 无线网络发射器选址
  8. 转载:eclipse 搭建SSH项目(第二篇,有具体的项目例子)
  9. (转)详解HTML网页源码的charset格式
  10. C# 使用PrintDocument类打印标签