- 1. DBのエクスポート
- 2. cronでスケジュール登録する(mysql.dumpをcronで実行する)
- 3. cron登録する(mysql.dumpをcronで実行する)
- 4. データベースをリストア
1. DBのエクスポート
1.1. カレントディレクトリにエクスポートする
# mysqldump --user=root --password=hogehoge rinkai > rinkai.sql
1.2. 指定の場所にエクスポートする
# mysqldump --user=root --password=hogehoge rinkai > /var/backup/rinkai.sql
2. cronでスケジュール登録する(mysql.dumpをcronで実行する)
2.1. ファイルを作成
# touch /root/dum.sh
2.1. ファイルを編集
# vi /root/dum.sh
# !/bin/sh
mysqldump --user=root --password=hogehoge rinkai > /var/backup/rinkai_`date +%Y%m%d-%H%M`.sql
※7日以上たったdumpを削除する場合
#!/bin/sh
jikan=`date +%Y%m%d-%H%M`
mysqldump --user=root --password=*** rinkai > /var/backup/rinkai_$jikan.sql
tar zcvf /var/backup/rinkai_$jikan.tar.gz -C /var/backup/ rinkai_$jikan.sql
rm /var/backup/rinkai_$jikan.sql
find /var/backup/ -mtime +7 -exec rm -f {} \;
2.3. バックアップディレクトリ作成
# mkdir /var/backup
2.4. 実行権限付与(2.1のファイルに対して)
# chmod a+x /root/dum.sh
3. cron登録する(mysql.dumpをcronで実行する)
3.1. shファイルの編集(1分単位で実行)
# vi /var/spool/cron/root
*/1 * * * * /root/dum.sh
3.2. ログを確認する
# tail -f /var/log/cron
Jul 9 01:07:01 rinkaisen CROND[4968]: (root) CMD (/root/dum.sh)
3.3. 実行確認する
# ll /var/backup
結果
合計 16
-rw-r--r-- 1 root root 1899 7月 9 01:01 2014 rinkai_20140709-0101.sql
-rw-r--r-- 1 root root 1899 7月 9 01:06 2014 rinkai_20140709-0106.sql
-rw-r--r-- 1 root root 1899 7月 9 01:07 2014 rinkai_20140709-0107.sql
-rw-r--r-- 1 root root 1899 7月 9 01:08 2014 rinkai_20140709-0108.sql
4. データベースをリストア
4.1. DB接続
# mysql --user=root --password=hogehoge
4.2. DB削除
mysql> drop database rinkai;
4.3. DB作成
mysql> create database rinkai;
4.4. リストア
■カレントディレクトリの場合
# mysql --user=root --password=hogehoge rinkai < rinkai.sql
■場所を指定する場合
# mysql --user=root --password=hogehoge rinkai < /var/backup/rinkai.sql