2023年7月30日MySQL
MySQLのハウスキーピング用スクリプト
データベースのバックアップスクリプト
処理概要
バックアップ対象
ログファイル
- 作業の経過が分かるように開始時刻と終了時刻を出力する
- バックアップ失敗時はファイル名に _error が付与される
#/bin/bash
# rootのパスワードを設定
PW="***"
# バックアップファイルのパス設定
BACKUP_DIR="/home/script/data/mysql_backup"
FILENAME=date +"%Y%m%d%H%M%S"
# ログファイルのパス設定
LOG_DIR="/home/script/log/mysql_backup"
TMP_FILE=${LOG_DIR}/${FILENAME}_tmp.log
LOG_FILE=${LOG_DIR}/${FILENAME}.log
ERR_LOG_FILE=${LOG_DIR}/${FILENAME}_error.log
# ディレクトリの作成
mkdir -p ${BACKUP_DIR}
mkdir -p ${LOG_DIR}
echo "バックアップ開始:"date +%H:%M:%S
> ${TMP_FILE}
echo "" >> ${TMP_FILE}
# バックアップ処理
mysqldump --opt --password=${PW} workbook > ${BACKUP_DIR}/${FILENAME}.sql
if [ $? = 0 ]; then
echo "バックアップ正常終了:"date +%H:%M:%S
>> ${TMP_FILE}
mv ${TMP_FILE} ${LOG_FILE}
else
echo "バックアップ失敗:"date +%H:%M:%S
>> ${TMP_FILE}
mv ${TMP_FILE} ${ERR_LOG_FILE}
fi
exit 0
データベースのメンテナンススクリプト
処理概要
メンテナンス対象
ログファイル
- 作業の経過が分かるように開始時刻と終了時刻を出力する
- 最適化の実行前後でテーブルのステータスをログに出力する
#/bin/bash
# rootのパスワードを設定
PW="***"
# ログファイルのパス設定
FILENAME=date +"%Y%m%d%H%M%S"
LOG_DIR="/home/script/log/mysql_mainte"
LOG_FILE=${LOG_DIR}/${FILENAME}.log
mkdir -p ${LOG_DIR}
echo "メンテナンス開始:"date +%H:%M:%S
> ${LOG_FILE}
echo "" >> ${LOG_FILE}
echo "最適化前のステータス" >> ${LOG_FILE}
mysql workbook -u root -p${PW} -e "show table status\G" >> ${LOG_FILE}
echo "" >> ${LOG_FILE}
echo "最適化開始:"date +%H:%M:%S
>> ${LOG_FILE}
echo "" >> ${LOG_FILE}
mysqlcheck workbook --auto-repair --optimize -u root -p${PW} >> ${LOG_FILE}
echo "" >> ${LOG_FILE}
echo "最適化完了:"date +%H:%M:%S
>> ${LOG_FILE}
echo "" >> ${LOG_FILE}
echo "最適化後のステータス" >> ${LOG_FILE}
mysql workbook -u root -p${PW} -e "show table status\G" >> ${LOG_FILE}
echo "" >> ${LOG_FILE}
echo "メンテナンス完了:"date +%H:%M:%S
>> ${LOG_FILE}
exit 0