安旨ワイン探し安旨ワイン探し

安くて美味しい【安旨ワイン】を探し求めて飲んだワインをMEMO

Home » IT備忘録 » MySQLデータベースをバックアップ

MySQLデータベースをバックアップ

time 2011/11/29

hiromasa.anotherさんの所にあったXREA/CORESERVER用のスクリプトを自分の使ってるinetdで動くように変更してみた。

[html]
#!/bin/sh

# 設定
DATABASE=MYSQLデータベース名
DBUSERNAME=MYSQLアカウント名
PASSWORD=MYSQLパスワード
USERHOME=アカウントのディレクトリ(public_htmlの一階層上を指定)
BACKUPDIR=バックアップを置くディレクトリ
KEEPDAY=バックアップを補完しておく日数(2週間だったら14d)

# 初期化
PREFIX=mysql
SERVER=localhostもしくはmysqlサーバーホスト
NOWDATE=`date +%Y%m%d`
DESTDIR=$USERHOME/$BACKUPDIR
DUMPFILE=$PREFIX.$NOWDATE.dump
TARFILE=$PREFIX.$NOWDATE.tar.gz
OLDDATE=`date -v-$KEEPDAY +%y%m%d`

# MySQLダンプ/圧縮
cd $DESTDIR
/usr/local/bin/mysqldump $DATABASE –host=$SERVER -u $DBUSERNAME –password=$PASSWORD > $DUMPFILE
tar zcvf $TARFILE $DUMPFILE

# 処理判定
if [ $? != 0 -o ! -e $TARFILE ]; then
echo "backup faild — ($DUMPFILE)"
exit 1
fi

# 圧縮前ファイル削除
rm -f $DUMPFILE

# n日ローテートを削除
rmfile=$DESTDIR/$PREFIX.$OLDDATE.tar.gz
if [ -e $rmfile ]; then
rm -f $rmfile
fi
[/html]

バックアップを利用して復元する場合はこうするそうだ。
[html]
mysql -u [ユーザ名] -p –default-character-set=utf8 [データベース名] < [バックアップ.dumpファイル]
ex. mysql -u MYSQLアカウント名 -p –default-character-set=utf8 MYSQLデータベース名 < mysql.日付.dump
[/html]

down

コメントする




過去の記事