是否有可能创build从主站binlog的开始,而不是先复制数据的MySQL的奴隶?

info:我的桌子都是innodb

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

但是,如果二进制日志从一开始就存在,我可以简单地将从站上的二进制日志位置设置为0,这样就不必复制任何数据,只要从属端口赶上最近的二进制日志条目?

这可以工作,如果

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

有一个问题:0没有字面意思。

对于不同版本的MySQL有一个不同的位置0

  • 位置107(MySQL 5.5)
  • 位置106(MySQL 5.1)
  • 位置98(MySQL 5.0及以前)

我很久以前在DBA StackExchange中写过这个:

  • Feb 04, 2011 : MySQL主binlog损坏
  • Jun 09, 2011 : Yum更新MySQL从5.1到5.5

如果自MySQL Data Load开始以来没有每个二进制日志,那么可以使用rsyncmysql重新启动一个副本:

  • Apr 08, 2011 : 从另一个奴隶创build一个MySQL奴隶,但指向主人
  • Jul 08, 2011 : MySQL主从停止复制(使用MyISAM)
  • Nov 06, 2012 : 如何高效地转储一个巨大的MySQL innodb数据库?

如果你真的拥有所有的binlog,并且数据库设置正确,我想不出任何技术原因。 binlog背后的全部原因是允许这样的事情。