变化莫测的mysqldump

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

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刷新二进制文件。

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


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

查看所有标签

猜你喜欢:

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

超级运营术

超级运营术

韩叙 / 中信出版社 / 2017-5

新产品上线,为什么仅仅500次转发能带来300个内测用户? 为什么每一次内容推送,都带来App的一次卸载高峰? 同类活动那么多,怎样做才能超越竞品,占据头条? 为什么有的文案像“小广告”,有的文案像贴心老友? 创业公司与大平台的玩法有何不同? …… 如何从“了解运营”到“精通运营”,可能是运营人*的困惑。《超级运营术》正是对这个问题的全面解答。韩叙总结10年运营......一起来看看 《超级运营术》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具

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

正则表达式在线测试