在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
mysqldump在mysql中用于逻辑备份,虽然速度不快,但非常灵活,有很多功能,灵活使用的化绝对是利器。 首先思考一个问题,mysql为什么要备份,主要还是数据安全性,比如主库挂了,数据不小心被删除了,所以全量备份非常重要。 是从主库还是副库进行全量备份呢? 1:从主库 主库比较重要,但其实备份的时候并不会影响数据库 mysqldump --host= --user= --password= --single-transaction --master-data=1 --flush-logs --databases >~/db.log —single-transaction 参数能够报纸一致性读,不会锁表,也就是备份的时候不影响数据更新。
因为一致性读,能够保证coordinates点的位置,即使备份时间很久,也能得出正确的同步位置点。
—master-data参数也很重要,导出的语句会包含CHANGE MASTER TO语句,包括备份语句同步到的二进制文件和位置点。
—flush-logs会强制重新生成一个新的二进制文件,这样恢复的时候会比较方便。 2:从副库 感觉上从副库备份更安全。 mysqldump --host=--user= --password= --dump-slave=1 --flush-logs --apply-slave-statements --include-master-host-port --databases >~/db.log; — dump-slave和—master-data参数很类似:
记住一点它获取的是主库的bin log coordinates(不是备份库的)
dump出来的语句会包含 — Position to start replication or point-in-time recovery from。 —apply-slave-statements会让dump语句中自动包含start和stop slave语句。—include-master-host-port包含主库的连接信息。 必须记住一点,即使有—single-transaction语句,—dump-slave也会暂停mysql同步,也就是备份库的数据是落后于主库的,所以一般自动化脚本在备份的时候会先摘除备份库。
3:如何进行时间点恢复 没有实战过,首先基于最近的一次全量备份进行恢复,然后将后续的binlog文件导入(如果这些文件还在的话),所以副库最好也备份binlog语句。 如果数据被误删除了,将备份点(—flush-logs发挥作用了)到今天凌晨的binlog语句导入进来,或者找到安全的binlog位置点进行恢复。至于如何跳过“危险语句”是比较难控制的。 以上就是如何用mysqldump进行全量和时间点备份的详细内容,更多关于mysqldump进行全量和时间点备份的资料请关注极客世界其它相关文章! |
请发表评论