MySQLMySQL

主库已有数据时,如何进行主备复制?

2019-08-29  本文已影响0人  ChinaXieShuai

主库已有数据时,如何进行主备复制?

在大多数业务场景下,DBA做主备复制的搭建的时候,主库都已经有数据。那么,在主库有数据的情况下,如何进行主备复制?
mysql提供了如下几种方案:

这里详细讲解下mysqldump方式,其他备份方式,简单讲解下。

一、冷备份

冷备份基本操作很是粗暴,先关闭数据库,然后将数据复制到备库,再重启主库,这时主库会重新生成binlog日志文件,然后再备库执行 change master to...指向新生成的binlog文件的起始处,再接着执行start slave;进行主备复制。
这种方式缺点很明显,需要停数据库。

二、热备份

针对于使用MyISAM的存储引擎的表。这里不做描述

三、使用mysqldump

只包含InnoDB的表,那么可以使用mysqldump的方式。
一般使用命令:
mysqldump --single-transation --all-databases --master-data=1 > dump.sql
这里对上面的mysqldump命令做一下解释:

所以,当主库有数据时,执行上面的mysqldump --single-transation --all-databases --master-data=1 > dump.sql指令将数据导入至dump.sql,再将dump.sql文件导出至备库的服务器。在备库执行dump.sql导入数据,导入完成后,再执行start slave;进行主备复制。就可以从导出数据dump.sql数据的那一刻开始继续复制主库的数据了。

五、使用快照或备份

只要知道备份的时间点,和快照时刻对应的二进制文件和偏移量就可以,在出现问题时,根据快照进行回滚。并根据二进制文件和偏移量进行主备复制。

六、使用percona Ctrabackup开源热备份工具

这里不做描述

本文是作者根据日常业务场景,写出的一些解决问题或学习实验的历程。如有错误的地方,还请指出,相互学习,共同进步。谢谢!

上一篇:MySQL如何配置主从复制,主从复制异常如何定位修复?

上一篇 下一篇

猜你喜欢

热点阅读