简介
MySQL master实例(数据库更改的来源)将更新和改动作为“事件”写入binary log。
根据数据库更改的不同,binary log中的信息会以不同的日志格式存储。
每个slave接收一份包含binary log全部内容的拷贝文件。slave将决定binary log文件中的哪些语句是被执行的。除非你指定,否则master的binary log中的所有事件都将在slave上执行。如果有必要,你可以配置slave只去执行针对某个库和某张表的事件。
重要
你不能设置master只去记录确切的事件。
每个slave保存一份binary log坐标的记录:由master处理过的文件名和坐标。这意味着多个slaves可以连接到master并且执行同一binary log的不同部分。因为该过程由slaves控制,个别的slave可以在不影响master操作的情况下连接或断开连接。同时因为每个slave记录了binary log的当前位置,对slave来说有必要在断开连接并重新连接后,继续执行,
master和每个slave必须使用unique ID配置(使用server-id选项)。初次之外,每个slave必须配置master的以下信息:host name,log file name,position
配置步骤摘要
- 在master上,必须开启binary log并且配置一个唯一的server ID。可能需要重启服务器。
- 在每个需要连接到master的slave上,必须设置一个唯一的server ID。可能需要重启服务器。
- 为连接master的slave创建独立的用户,用于当slave在master读取binary log的认证。(可选)
- 在创建数据快照或开启复制进程之前,在master上应该记录binary log的当前位置。当你配置slaves的时候需要使用这个信息让slave知道应该在binary log的哪里开始执行事件。
参考资料
Binary Log File Position Based Replication Configuration Overview
Setting Up Binary Log File Position Based Replication
网友评论