TOP ▲ itcore TOPTIPSmysql_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