我在单个 Centos 服务器上有一个相当大(约 50m 行)的数据库。我想设置复制,但现有数据库没有二进制日志。
有没有办法追溯添加二进制日志以便可以复制数据?
如果没有,我认为唯一的方法是使用 mysqldump 转储数据库,然后将其导入到启用了二进制日志的新安装的服务器中,然后将该新服务器用作新的主服务器——这有什么问题吗?我是否需要使用任何特定标志导出/导入数据?
我在单个 Centos 服务器上有一个相当大(约 50m 行)的数据库。我想设置复制,但现有数据库没有二进制日志。
有没有办法追溯添加二进制日志以便可以复制数据?
如果没有,我认为唯一的方法是使用 mysqldump 转储数据库,然后将其导入到启用了二进制日志的新安装的服务器中,然后将该新服务器用作新的主服务器——这有什么问题吗?我是否需要使用任何特定标志导出/导入数据?
是的。尽管它需要重新启动服务器,但您可以随时将单个 MySQL 服务器升级到复制集群中的 Master。
这些步骤在手册中有很好的记录:https ://dev.mysql.com/doc/refman/5.7/en/replication-configuration.html
本质上,您通过开始收集二进制日志将您的单个 MySQL 升级为 master。二进制日志记录开始后,您可以从正在运行的主服务器创建初始导出以填充从服务器。
mysqldump
使用该--master-data=1
选项运行。该选项将允许从站识别在主站上创建导出的时间点。导入该导出完成后,从属服务器可以使用
master-data
查询主服务器,以重播自创建 mysqldump 导出以来发生的主服务器上二进制日志中的任何和所有事务。