mysqldump工具自帶選項沒有對導出備份文件壓縮功能,可結合gzip只使用一條命令壓縮導出文件,方法以下:mysql
mysqldump壓縮導出:
# mysqldump -h192.168.0.3 -P3306 -uroot -ppwd123 --single-transaction --default-character-set=utf8 -R -E zabbix --log-error=zabbix2018030709.log |gzip > zabbix2018030709.sql.gzsql
參數解釋:
-h 正式DB IP
-P 正式DB Port
-u 正式DB賬號
-p 正式DB賬號對應密碼
-R 導出存儲過程和函數
-E 導出事件
--single-transaction 事務一致性備份
--default-character-set 字符集,和正式db字符集一致
--log-error 錯誤日誌文件,若是備份時無錯誤發生,只寫空文件,有錯誤話寫具體內存
zabbix 導出DB nameshell
mysqldump壓縮導出後導入:
# gunzip < zabbix2018030709.sql.gz |mysql -uroot -ppwd123 zabbix工具
將mysqldump壓縮導出寫成shell腳本(可供conrtab定時執行)
# vi zabbixdbbak.sh
FILENAME=`date +%Y%m%d%H`
cd /data/dbbak
mysqldump -h192.168.0.3 -P3306 -uroot -ppwd123 --single-transaction --default-character-set=utf8 -R -E zabbix --log-error='zabbix'$FILENAME.log |gzip > 'zabbix'$FILENAME.sql.gz
find /data/dbbak/zabbix*.gz -mtime +7 -exec rm -f {} \;
find /data/dbbak/zabbix*.log -mtime +7 -exec rm -f {} \;
# crontab -e
30 0 * * * sh /data/dbbak/zabbixdbbak.sh 1>/data/dbbak/zabbixdbbakcron.log 2>>/data/dbbak/zabbixdbbakcron.bad事件