mysql的分庫備份

czxin788發表於2016-04-30
mysql的分庫備份
分庫備份實際上就是執行一個備份語句(mysqldump)備份一個庫,如果資料庫裡面有多個庫,就執行多條相同的備份單個庫的備份語句進行備份,注意每個庫都可以用對應的備份的庫做為庫名,結尾加.sql.

我寫了如下的一個指令碼進行分庫備份:

[root@Mysql01 mysqldumpbak]# cat /usr/local/script/mysqldump.sh 
#!/bin/bash
cd /opt/db_backup/db_backup/mysql_bak/
rq=`date +%F`
mkdir $rq
cd $rq
echo '開始備份時間:' `date` >> backup.log
#由於本指令碼備份是採用了gizp壓縮備份,所以加壓時可以用gzip xxx.sql.gz進行解壓
mysql -udbbackup_user -p'xxxx'   -e "show databases" |grep -Evi "database|perfor|infor" |sed -r 's/^([a-z].*$)/mysqldump -udbbackup_user -p'xxx'  --routines --triggers --events --single-transaction --master-data=2  --log-error=backup.err  -B  \1|gzip > \1.sql.gz/g' |bash
echo '結束備份時間:' `date` >> backup.log



測試:
[root@Mysql01 mysqldumpbak]#sh  /usr/local/script/mysqldump.sh 
執行該指令碼後,會生產如下sql語句,並自動執行如下sql進行備份
/home/mysql/mysql/bin/mysqldump -udbbackup_user -pxx --routines --triggers --events --single-transaction --master-data=2  --log-error=backup.err  -B  app|gzip > app.sql.gz
/home/mysql/mysql/bin/mysqldump -udbbackup_user -pxx --routines --triggers --events --single-transaction --master-data=2  --log-error=backup.err  -B  ad|gzip > auod.sql.gz
/home/mysql/mysql/bin/mysqldump -udbbackup_user -pxx  --routines --triggers --events --single-transaction --master-data=2  --log-error=backup.err  -B  ad_moerben|gzip > auod_moerben.sql.gz
/home/mysql/mysql/bin/mysqldump -udbbackup_user -pxx  --routines --triggers --events --single-transaction --master-data=2  --log-error=backup.err  -B  ccms|gzip > cz_bj_cms.sql.gz
/home/mysql/mysql/bin/mysqldump -udbbackup_user -pxx  --routines --triggers --events --single-transaction --master-data=2  --log-error=backup.err  -B  cs|gzip > cz_bj_oms.sql.gz

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28916011/viewspace-2091324/,如需轉載,請註明出處,否則將追究法律責任。

相關文章