▼ 2009/01/04(日) CORESERVER.JPでMySQL(DB)を自動バックアップする方法
adairyをデータベースで運用しだしてから気になっていたのがデータベースのバックアップ。ウェブコンテンツは他サーバにrsyncコマンドを使って二重化しています。(自動化できていないので、rsyncはまた別の機会で取り上げたいと思います。)
今回はデータベースを自動バックアップする方法をご紹介します。
一応CORESERVER.JP(コアサーバ)で動作確認を取れた方法をご紹介しますが、おそらく他のサーバでもそれほど大きな差は無いと思います。ご参考にしていただければ幸いです。
今回はデータベースを自動バックアップする方法をご紹介します。
一応CORESERVER.JP(コアサーバ)で動作確認を取れた方法をご紹介しますが、おそらく他のサーバでもそれほど大きな差は無いと思います。ご参考にしていただければ幸いです。
■ やりたいこと
- データベースのバックアップ(dumpファイル→圧縮)
- 何世代か残したい
- 他サーバへFTP転送
■ 設定手順
1.CORESERVER.JP側に「backup-mysql」ディレクトリを作る(/virtual/2.以下の2ファイルをbackup-mysql内に設置する。
- backup.sh(パーミッション755)
#!/bin/sh #===============================================================# # 設定(ここを自分に合わせる) DATABASE=【データベース名】 DBUSERNAME=【データベースユーザー名】 PASSWORD=【データベースパスワード】 XREAUSERNAME=【CORESERVERユーザー名】 BACKUPDIR=backup-mysql KEEPDAY=【何日間(何世代)バックアップを残すか】 # 初期化(XREA/CORESERVER用) PREFIX=【データベース名(ユーザー名_除く)】 SERVER=localhost NOWDATE=`date +%Y%m%d` DESTDIR=/virtual/$XREAUSERNAME/$BACKUPDIR DUMPFILE=mysql_$PREFIX.dump TARFILE=$PREFIX.$NOWDATE.tar.gz OLDDATE=`date "-d$KEEPDAY days ago" +%Y%m%d` # MySQLダンプ/圧縮 cd $DESTDIR /usr/local/mysql/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 cp $PREFIX.$NOWDATE.tar.gz sakura.$PREFIX.tar.gz #===============================================================# 【〜バックアップするDBの数だけすべて記入〜】 #===============================================================# ftp -n < ftp_command - ftp_command
open 【バックアップ先FTPサーバURL】 user 【FTPユーザー名】【FTPパスワード】 bin prompt cd backup-mysql put sakura.【データベース名(ユーザー名_除く)】.tar.gz ……【〜バックアップするDBをすべて記入〜】 quit
4.正常動作を確認後、cronでbackup.shを1日1回(例えば23:50)に設定
以上で完了です。
■ 参考サイト
以下のサイトを参考にさせていただきました。ありがとうございました。■ 関連エントリー
- TB-URL http://hitoxu.com/0516/tb/
-
▼
adiaryのデータベースをMySQLに移行しました。
ひとぅブログ
ひとぅブログではadiaryをMySQLは使わず、テキスト版(擬似データベース)を利用していました。サイドバーのSystem Infoの欄に「RDBMS : pseudo DB」と表示されていればテキスト版です。テキスト版のメリットはMySQLやPostg...
-
▼
CoreserverでMySQLのデータを自動的にバックアップする方法
ABCP-weblog
Coreserverで、MySQLデータベースを自動でバックアップする方法。以下のスクリプト(backup.sh)をcronで定期的に実行します。#!/bin/sh/usr/local/mysql/bin/mysqldump -h localhost -c...
-
▼
CORESERVERでWordpressのDBバックアップを自動化する
M::Dialog
MovableTypeで運用している時もそうでしたが、ブログのバックアップには無頓着な方だと思います。気の向いたときにブログシステム上でエクスポートするくらい。それでもMovableTypeの時は、静的ページを出力していたので、ブログ自体が表示されなくなる...

# matakichi 2009年11月28日(土) 午後8時45分
Wordpressのデータベースバックアップの参考にさせていただきました。
1からスクリプトを組む手間が省けて大変助かりました!
# ひとぅ 2009年11月29日(日) 午前1時54分
matakichiさん、コメントありがとうございます。
お役に立てたようでよかったです(*^_^*)。