TOP ▲
itcore TOP
> TIPS
> mysql_bkup.php
タグ:mysql バックアップ MySQL バックアップ | itcore 2019年
日次フルバックアップ
2世代
DB
テーブル
全DB
全テーブル
全DBを日次でバックアップして7世代保管する。
mkdir -p /root/cron
vi /root/cron/mysql_bkup.sh
mkdir -p /var/bkup_mysql
pw=[パスワード]
w=`date '+%w'` # 曜日を数字で返す
mysqldump -uroot -p$pw -A > /var/bkup_mysql/all_$w.sql
chmod +x /root/cron/mysql_bkup.sh
crontab -e
0 1 * * * /root/cron/mysql_bkup.sh > /root/cron/mysql_bkup.log 2>&1
アプリケーションが安定してデータも増えてきたのでバックアップを2世代にする。
vi /root/cron/mysql_bkup.sh
mkdir -p /var/bkup_mysql
pw=[パスワード]
d=`date '+%d'` # 日を数字で返す
flg=$(($d % 2)) # 0又は1を返す
mysqldump -uroot -p$pw -A > /var/bkup_mysql/all_$flg.sql
DBを指定して手動でバックアップする。
vi /root/mysql_bkup.sh
pw=[パスワード]
db=uri
file=/var/bkup_mysql/$db-`date '+%Y%m%d_%H%M%S'`.sql
mysqldump -uroot -p$pw $db > $file
sh -x /root/mysql_bkup.sh
テーブルを指定して手動でバックアップする。
vi /root/mysql_bkup.sh
pw=[パスワード]
db=ehr
tbl=working
file=/var/bkup_mysql/$db-$tbl-`date '+%Y%m%d_%H%M%S'`.sql
mysqldump -uroot -p$pw $db $tbl > $file
sh -x /root/mysql_bkup.sh
全てのデータベースをデータベース毎のファイルにバックアップする。
バックアップシェルを生成するシェル。
# vi /root/mysqldump_dbs_make.sh
pw=[パスワード]
dir=/var/bkup_mysql
mkdir -p $dir
echo pw=$pw > /root/mysqldump_dbs_go.sh
echo dir=$dir >> /root/mysqldump_dbs_go.sh
mysql -uroot -sN -p$pw -e "show databases" |awk '{print "mysqldump -uroot -p$pw --single-transaction --quick " $0 " > $dir/" $0 "-`date '+%Y%m%d_%H%M%S'`.sql"}' >> /root/mysqldump_dbs_go.sh
バックアップシェルの生成
# sh -x /root/mysqldump_dbs_make.sh
内容を確認
# cat /root/mysqldump_dbs_go.sh
バックアップを実行
# sh -x /root/mysqldump_dbs_go.sh
バックアップされたファイルを確認
# ls -lrt /var/bkup_mysql
指定したDBの全てのテーブルをテーブル毎のファイルにバックアップする。
バックアップシェルを生成するシェル。
# vi /root/mysqldump_tbs_make.sh
pw=[パスワード]
db=uri
dir=/var/bkup_mysql
mkdir -p $dir
echo pw=$pw > /root/mysqldump_tbs_go.sh
echo db=$db >> /root/mysqldump_tbs_go.sh
echo dir=$dir >> /root/mysqldump_tbs_go.sh
mysql -uroot -sN -p$pw -e "use $db; show tables" |awk '{print "mysqldump -uroot -p$pw --single-transaction --quick $db " $0 " > $dir/$db-" $0 "-`date '+%Y%m%d_%H%M%S'`.sql"}' >> /root/mysqldump_tbs_go.sh
バックアップシェルの生成
# sh -x /root/mysqldump_tbs_make.sh
内容を確認
# cat /root/mysqldump_tbs_go.sh
バックアップを実行
# sh -x /root/mysqldump_tbs_go.sh
バックアップされたファイルを確認
# ls -lrt /var/bkup_mysql