mysqldump工具自带选项没有对导出备份文件压缩功能,可结合gzip只使用一条命令压缩导出文件,方法如下:
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.gz
参数解释:
-h 正式DB IP
-P 正式DB Port
-u 正式DB賬號
-p 正式DB賬號對應密碼
-R 導出存儲過程和函數
-E 導出事件
--single-transaction 事务一致性備份
--default-character-set 字符集,和正式db字符集一致
--log-error 錯誤日誌文件,如果備份時無錯誤發生,只寫空文件,有錯誤話寫具體內存
zabbix 导出DB name
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