MySQLバックアップ

今回は、MySQLのバックアップをやってみましょう。

1.バックアップするフォルダ、初期ファイル、シェルファイルを作成

# mkdir /var/backup
# mkdir /var/backup/mysql
# touch /var/backup/mysql/bak.sql
# touch /var/backup/mysql/mysql_backup.sh

2.mysqldumpコマンドでデータベース全体をバックアップする。
mysql_backup.sh

bak=`date +%y%m%d`
cp /var/backup/mysql/bak.sql /var/backup/mysql/$bak.sql
mysqldump  --user=admin \
           --password=****** \
           --default-character-set=utf8 \
           --socket=/var/lib/mysql/mysql.sock \
           --all-databases > /var/backup/mysql/$bak.sql
bak2=`date --date "14 days ago" +%y%m%d`
rm -f /var/backup/mysql/$bak2.sql

3.cron設定

crontab -e

viが開くので

0 4 * * * /var/backup/mysql/mysql_backup.sh

↑と記述。

4.リストアの方法(2007年10月1日の分をリストアする場合)

$ mysql --user=admin --password=****** \
        --socket=/var/lib/mysql/mysql.sock \
        --default-character-set=utf8 < /var/backup/mysql/071001.sql


さらに、他サーバーへ差分バックアップするとよいでしょう。


※はまりどころ。
/var/backup/mysql/mysql_backup.sh
↑このファイルに実行権を与えないと、cronが実行できないので注意!

# chmod 700 /var/backup/mysql/mysql_backup.sh

などしてください。