从站上是否需要二进制日志才能进行复制?

Dav*_*all 9 mysql replication

我有一个带有主站和从站的 MySQL 数据库设置。据我了解,master将事务事件写入二进制日志,由slave读取并执行,从而使slave成为master的连续副本。

我的印象是,在我可以安全地清除它之前,我需要确保从站已经消耗了一个特定的二进制日志文件。但是现在我已经阅读了一些文档,表明从站并没有真正使用二进制日志以便于复制。相反,从站上感兴趣的是中继日志。二进制日志只有在我需要进行时间点恢复时才有趣。这样对吗?

如果正确,这是否意味着我可以随时关闭从站上的二进制日志或清除它们?

Jeh*_*aki 7

这是对的:

  1. 主服务器写入其“二进制日志”文件
  2. 从机读取其主机的二进制文件并将其写入其“中继日志”文件
  3. 从机执行其“中继日志”文件中的语句。

因此,出于复制目的,不需要从站的二进制文件。

是的,如果不需要用于“备份”等其他目的,您可以禁用二进制日志记录或清除这些文件。


Rol*_*DBA 6

除了进行时间点恢复之外,从站启用二进制日志记录还有两个原因。

原因#1

如果奴隶也是主人

  • 必须在从属设备上启用二进制日志记录
  • 必须在从站上启用log-slave-updates

这将允许另一个从站连接到启用了二进制日志记录的从站作为主站

原因#2

如果 Slave 不是 Master,但您想故障转移到 Slave 以成为新的 Master

  • 必须在从属设备上启用二进制日志记录
  • log-slave-updates 不得在从属服务器上启用(只要数据库服务器具有从属服务器的角色,这将防止二进制日志在从属服务器上增长)

这样,在将应用程序故障转移到从站成为主站后,您不必重新启动 mysql 来启用它。然后,您可以设置到新主服务器的复制。