本节介绍如何设置MySQL服务器使用二进制日志文件位置复制。有许多不同的方法可以设置复制,具体使用哪种方法取决于您如何设置复制,以及您希望复制的源上的数据库中是否已经有数据。
要部署多个MySQL实例,可以使用InnoDB集群使您可以轻松地管理一组MySQL服务器实例在MySQL壳.InnoDB Cluster将MySQL Group Replication包装在一个编程环境中,使您能够轻松部署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节,“复制和二进制日志选项和变量”.