りんちゃんの日記

日常を書き留めていきます。

mySQL dump

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