怎么用shell脚本自动修复mysql损坏的表

  介绍

本篇内容介绍了“怎么用shell脚本自动修复mysql损坏的表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

<强>问题描述:最近查看mysql数据库服务器日志,老发现有表损坏的错误日志,比如:120724 7:30:48(错误)/数据/软/mysql/libexec/mysqld:表& # 39;。/博客/wp_links& # 39;被标记为最后坠毁(自动)修复失败的手动修复了表后正常了,没过几天又发现出现错误。

<强>解决方法:于是就写了个脚本来自动修复。是根据一定时间检测一次日志,如果有这样的错误记录时,就对出错的表进行修复来达到自动修复的目的,为了防止日志中错误记录的重复执行,每次检测完日志后特将日志文件清空。

此类脚本的方法其实有很多,只不过这是其中一种而已,有错误之处大家提出来,多多指教。

# !/bin/sh ,   ,   DB_USER=皉oot",   DB_PASS=?23456”,   DB_NAME=癰log",   LOG_PATH=?数据/db/errlog.log",   时间=' date  + Y % - % - % d",“% H: % m: % S的,,   表='/usr/bin/awk  & # 39;/& # 39;“repair  failed" & # 39;/, {print  $ 6} & # 39;, LOG_PATH 美元;|,sort  -k1n  |, uniq  -c  |, awk  -F “& # 39;“, & # 39; {print  $ 2} & # 39;, |, awk  -F  & # 39;/& # 39;, & # 39; {print  3美元}& # 39;’,,   ,   if  [, -n “TABLES"美元;,),,   then ,   for 才能小姐:拷贝的/usr/bin/awk  & # 39;/& # 39;“repair  failed" & # 39;/, {print  $ 6} & # 39;, LOG_PATH 美元;|,sort  -k1n  |, uniq  -c  |, awk  -F “& # 39;“, & # 39; {print  $ 2} & # 39;, |, awk  -F  & # 39;/& # 39;, & # 39; {print  3美元}& # 39;’,,   do 才能;   ,,,/数据/软/mysql/bin/mysql  - u DB_USER 美元;- p DB_PASS 美元;DB_NAME 美元;-e “repair  TABLE 我美元,祝辞,repair_小姐:美元,   ,,,if  grep “OK", repair_小姐:美元在/dev/null    ,,,then ,   ,,,,,echo “TIME 美元;repair  TABLES 小姐:美元成功!“,   ,,,else    ,,,,,echo “TIME 美元;repair  TABLES 美元小姐:失败!“,   ,,,fi ,   ,,,rm  -rf  repair_小姐:美元,   ,,done    else    echo 才能“There  is  no  need 用repair 从而表!“,   fi ,   :在$ LOG_PATH

怎么用shell脚本自动修复mysql损坏的表

怎么用shell脚本自动修复mysql损坏的表