mysql定期最適化テーブルスクリプト


オープンソースの関係型データベースmysqlは実際の生産環境で大量に使用されていますが、長期にわたって従来の使用は外在的な要因によってテーブルが破損するに違いありません.また、大量の削除を経てデータを調べた後、必ず多くのディスクスペースが回収されていません.では、mysqlの下のmysqlcheckスクリプトツールを使用して定期的に修復することができます.
#!/bin/bash

export mysql_bin=/usr/local/mysql/bin/
export logs_dir=/data/backup/mysql_backup/optimize_logs/
export datetime=`date +"%Y%m%d"`

if [ ! -e "$logs_dir" ];then
                mkdir -p $logs_dir
fi

echo "`date` start optimize" | tee -a $logs_dir/optimize-${datetime}.log

$mysql_bin/mysqlcheck -Ao --auto-repair -uroot
$mysql_bin/mysql -Bse "flush query cache;"
#flush    ,      

if [ $? -eq 0  ]
       then
               echo "`date` optimize success" | tee -a $logs_dir/optimize-${datetime}.log
       else
               echo "`date` optimize fail" | tee -a $logs_dir/optimize-${datetime}.log
fi

find $logs_dir -type f -ctime +30 -name "optimize*" -exec rm -vf {} \;

crontabを通じてタイミングを作って、普通は1ヶ月に1回で十分で、頻繁にしてはいけません
00 00 1 * * /usr/local/scripts/optimize.sh