是否可以从主 binlog 的启动创建 mysql 从属,而无需先复制数据?

是否可以从主 binlog 的启动创建 mysql 从属,而无需先复制数据?

信息:我的表都是 innodb。

我知道我可以通过将数据从主服务器复制到从服务器并记录 binlog 中的位置并在从服务器上设置该位置来创建一个 mysql 从服务器。因此,从服务器应该能够重放自备份和同步以来的所有主 binlog 条目。

但是,如果 binlog 从一开始就存在,我是否可以简单地将从属服务器上的 binlog 位置设置为 0,从而不必复制任何数据,而只是让从属服务器赶上最新的 binlog 条目?

答案1

如果可以的话

  • 您在一个空的 MySQL 实例中加载了数据
  • 你从一开始就启用了二进制日志记录
  • 你从未删除过任何二进制日志

有一个问题:没有文字位置 0。

不同版本的 MySQL 有不同的位置 0

  • 位置 107 (MySQL 5.5)
  • 位置 106 (MySQL 5.1)
  • 位置 98(MySQL 5.0 及之前版本)

我很久以前在 DBA StackExchange 中写过这篇文章:

如果自 MySQL 数据加载开始以来您没有每个二进制日志,则可以使用以下命令进行复制rsync并重新启动mysql

答案2

如果你真的有所有的 binlog,并且数据库设置正确,我想不出有什么技术原因不可以。binlog 背后的全部原因就是允许这种事情。

相关内容