变化莫测的mysqldump

栏目: IT技术 · 发布时间: 4年前

mysqldump是 mysql 官方机型逻辑备份的工具,作用非常多,可以进行全量备份,结合binlog还以做增量备份,也是做从库的利器,正确理解它非常有用。

今天列举我目前比较关心的几个点。

1:是否要锁表

默认的情况下它是锁表的,相当于调用—add-locks参数,在每个表备份前后增加LOCK TABLES和UNLOCK TABLES语句,这样数据库表就只读了。

去年我做副库的时候,以防万一,喜欢调用FLUSH TABLES WITH READ LOCK语句,让全库只读,实际上增加—lock-all-tables即可。

难道mysqldump备份的时候,数据库就不能DDL了?锁表是为了避免数据一致性的问题,尤其影响事务,比如东西卖出去了,钱没收到。

其实对于InnoDB来说,完全可以使用—single-transaction参数,这样能够进行一致性读,这样整个库就不会阻塞读写了。

2:做从库

结合—single-transaction,完全可以在主库上进行备份,备份后如何记录pos点呢?总不能手动记录,其实可以使用—master-data选项。

这样导出的 sql 语句中,会记录CHANGE MASTER TO语句,这样副库导入数据的时候就非常方便了。

3:基于从库备份

主库比较重要,尽量少的影响它,可以基于从库备份,—dump-slave类似于—master-data,也可以记录副库的pos点。

再结合—apply-slave-statements选项,这样连 STOP SLAVE 和START SLAVE 语句也记录到sql文件中了。

4:如何做增量备份

全量备份和增量备份很重要,在做完备份后,如果能够重新刷新二进制文件,这样将来出问题后,先全量恢复,然后基于新的二进制文件进行增量备份,为了达到这个目的,可以使用—flush-logs刷新二进制文件。

当然现实中没有那么完美,避免影响线上服务,以及避免导致数据完整性和一致性很重要。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

互联网+ 战略版

互联网+ 战略版

刘润 / 中国华侨出版社 / 2015-5-1 / 49.8

1、“互联网+”上升为国家战略,“互联网+”成为下一个超级畅销书的热点话题在商业环境巨变的今天,传统企业该怎么走?传统企业转型是一个系统工程,如何定战略、抓主要矛盾? 2、首本“互联网+传统企业”的战略指导书。“我互联网+”时代到来了,传统企业的外部环境发生了哪些变化?了解商业新生代的新商业环境,跟之前工业时代的不同,从战略上指导传统企业转型,更安全也更大局把握游刃有余。一起来看看 《互联网+ 战略版》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试