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刷新二进制文件。
当然现实中没有那么完美,避免影响线上服务,以及避免导致数据完整性和一致性很重要。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 记一次ajax的JSESSIONID 变化解决、非跨域变化
- ReactNative字体大小不随系统字体大小变化而变化
- 三月新变化
- 2019 年总结:拥抱变化
- InnoDB mutex 变化历程
- CMMI 2.0术语变化
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
UML和模式应用
拉曼 / 李洋、郑䶮 / 机械工业出版社 / 2006-5 / 66.00元
《UML和模式应用(原书第3版)》英文版面世以来,广受业界专家和读者的好评,历经3个版本的锤炼,吸收了大量OOA,D的精华思想和现代实践方法。全书叙述清晰、用词精炼、构思巧妙,将面向对象分析设计的概念、过程、方法、原则和个人的实践建议娓娓道来,以实例为证,将软件的分析和设计的过程叙述得如逻辑推理一般,于细节处见真知。 《UML和模式应用(原书第3版)》是一本经典的面向对象分析设计技术的入门书......一起来看看 《UML和模式应用》 这本书的介绍吧!