ITPub博客

首页 > 数据库 > MySQL > mysqldump压缩备份导出导入(含定期备份shell脚本)

mysqldump压缩备份导出导入(含定期备份shell脚本)

原创 MySQL 作者:guocun09 时间:2018-03-07 11:04:48 0 删除 编辑

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 > zabbix20180307 09.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 -p pwd123  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


mysqldump导出数据一致性主要有single-transaction 和 lock-all-tables 二选一控制的:

single-transaction 

是在导出开始时设置事务隔离状态并使用一致性快照开始事务,而后马上unlock tables,

然后执行导出,导出过程不影响其它事务或业务连接,但只支持类似innodb多版本特性的引擎,

因为保证了即使导出期间其它操作(事务点t2)改变了数据,而导出时仍能取出导出开始的事务点t1时的数据。

简单地说,就是通过回滚段能记录不同的事务点的各版本数据

single-transaction 的流程:

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ

START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */

SHOW MASTER STATUS -- 这一步就是取出 binlog index and position

UNLOCK TABLES

...dump...


lock-all-tables

是一开始执行 FLUSH TABLES WITH READ LOCK; 加全局读锁,会阻塞其它写操作,直到dump完毕。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25583515/viewspace-2151580/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
DBA,掌握Oracle,SQLServer,MySQL,hadoop,casscandra等数据库。喜爱深入研究数据库技术原理,擅长管理和优化工作。

注册时间:2011-10-02

  • 博文量
    177
  • 访问量
    686665