16.1.2 设置基于二进制日志文件位置的复制
本节介绍如何设置 MySQL 服务器以使用基于二进制日志文件位置的复制。设置复制的方法有很多种,具体使用的方法取决于您如何设置复制,以及源数据库中是否已经有数据。
所有设置都有一些通用的通用任务:
-
在源上,必须启用二进制日志记录并配置唯一的服务器 ID。这可能需要重新启动服务器。参见第 16.1.2.1 节,“设置复制源配置”。
-
在要连接到源的每个副本上,必须配置唯一的服务器 ID。这可能需要重新启动服务器。参见第 16.1.2.5.1 节,“设置副本配置”。
-
(可选)为副本创建一个单独的用户,以便在读取二进制日志进行复制时在与源进行身份验证期间使用。参见第 16.1.2.2 节,“创建要复制的用户”。
-
在创建数据快照或开始复制过程之前,应在源上将当前位置记录在二进制日志中。配置副本时,您需要此信息,以便副本知道二进制日志中从何处开始执行事件。参见第 16.1.2.3 节,“获取复制源的二进制日志坐标”。
-
如果源上已经有数据,并且想要使用它来同步副本,则需要创建数据快照以将数据复制到副本。您使用的存储引擎会影响创建快照的方式。使用MyISAM时,必须在源上停止处理语句以获得读锁,然后获取其当前的二进制日志坐标并转储其数据,然后再允许源 continue 执行语句。如果不停止执行语句,则数据转储和源的状态信息将不匹配,从而导致副本数据库不一致或损坏。有关复制MyISAM源的更多信息,请参见第 16.1.2.3 节,“获取复制源的二进制日志坐标”。如果使用InnoDB,则不需要读取锁定,并且足够长的事务可以传输数据快照。有关更多信息,请参见第 14.20 节“ InnoDB 和 MySQL 复制”。
-
使用连接到源的设置配置副本,例如主机名,登录凭据以及二进制日志文件名和位置。参见第 16.1.2.5.2 节“在副本服务器上设置源配置”。
Note
设置过程中的某些步骤需要SUPER特权。如果您没有此特权,则可能无法启用复制。
配置基本选项后,选择您的方案:
-
要设置复制以全新安装源和不包含数据的副本,请参见第 16.1.2.5.3 节“在新源和副本之间设置复制”。
-
要使用现有 MySQL 服务器上的数据设置新源的复制,请参见第 16.1.2.5.4 节“使用现有数据设置复制”。
-
要将副本添加到现有复制环境中,请参见第 16.1.2.6 节,“将副本添加到复制拓扑”。
在 ManagementMySQL 复制服务器之前,请阅读整章并尝试第 13.4.1 节“用于控制复制源服务器的 SQL 语句”和第 13.4.2 节“用于控制副本服务器的 SQL 语句”中提到的所有语句。还应熟悉第 16.1.6 节“复制和二进制日志记录选项和变量”中描述的复制启动选项。