介绍MySQL服务器使用基于二进制日志文件位置复制的方法。设置复制有许多不同的方法,使用的确切方法取决于您如何设置复制,以及您想要复制的源上的数据库中是否已经有数据。
要部署MySQL的多个实例,您可以使用InnoDB集群它能让你轻松地管理一组MySQL服务器实例MySQL壳.InnoDB集群将MySQL组复制封装在一个编程环境中,使您可以轻松部署MySQL实例集群来实现高可用性。此外,InnoDB集群与MySQL路由器,这使您的应用程序可以连接到集群,而无需编写自己的故障转移过程。然而,对于不需要高可用性的类似用例,您可以使用InnoDB ReplicaSet.可以找到MySQL Shell的安装说明在这里.
有一些通用的任务是常见的所有设置:
在源上,必须确保启用了二进制日志记录,并配置惟一的服务器ID。这可能需要重新启动服务器。看到17.1.2.1节,“设置复制源配置”.
在希望连接到源的每个副本上,必须配置惟一的服务器ID。这可能需要重新启动服务器。看到第17.1.2.2节,“设置副本配置”.
可以选择为副本创建一个单独的用户,以便在读取二进制日志进行复制时使用源进行身份验证。看到17.1.2.3节,“创建复制用户”.
在创建数据快照或启动复制过程之前,应该在源上在二进制日志中记录当前位置。在配置副本时需要这些信息,以便副本知道在二进制日志的哪里开始执行事件。看到第17.1.2.4节,“获取复制源二进制日志坐标”.
如果源上已经有数据,并希望使用它来同步副本,则需要创建一个数据快照来将数据复制到副本。使用的存储引擎对创建快照的方式有影响。当你使用
MyISAM
在允许源继续执行语句之前,必须停止源上的语句处理以获得读锁,然后获取其当前的二进制日志坐标并转储其数据。如果不停止语句的执行,则数据转储和源状态信息将不匹配,导致副本上的数据库不一致或损坏。有关复制aMyISAM
源,看第17.1.2.4节,“获取复制源二进制日志坐标”.如果你正在使用InnoDB
,则不需要读锁,且足够长的事务足以传输数据快照。有关更多信息,请参见第15.19节,“InnoDB和MySQL复制”.使用连接到源的设置配置副本,例如主机名、登录凭据和二进制日志文件名称和位置。看到第17.1.2.7节,“在副本上设置源配置”.
根据系统的需要,在源和副本上实现特定于复制的安全措施。看到第17.3节,“复制安全”.
设置过程中的某些步骤需要超级
特权。如果您没有此特权,则可能无法启用复制。
配置基本选项后,选择您的场景:
若要为重新安装源和不包含数据的副本设置复制,请参见第17.1.2.6.1节,“使用新源和副本设置复制”.
要使用现有MySQL服务器中的数据设置新源的复制,请参见第17.1.2.6.2节,“使用现有数据设置复制”.
若要在现有复制环境中添加副本,请参见17.1.2.8节,“在复制环境中添加副本”.
在管理MySQL复制服务器之前,请阅读整个章节并尝试所有提到的语句第13.4.1节,“用于控制源服务器的SQL语句”,第13.4.2节,“用于控制副本服务器的SQL语句”.还要熟悉中描述的复制启动选项第17.1.6节,“复制和二进制日志记录选项和变量”.