使用现有数据设置复制时,您需要决定如何最好地在启动复制服务之前将数据从主数据库获取到从数据库。
使用现有数据设置复制的基本过程如下:
在运行MySQL主服务器的情况下,创建一个在复制期间连接到主服务器时将被从服务器使用的用户。请参见第17.1.1.3节“创建要复制的用户”。
如果尚未server_id在主服务器上配置 系统变量并启用二进制日志记录,则需要将其关闭以配置这些选项。请参见 第17.1.1.1节“设置复制主配置”。
如果您必须关闭主服务器,这是一个快照其数据库的好机会。在关闭主服务器,更新配置并创建快照之前,您应该获取主服务器状态(请参见 第17.1.1.4节“获取复制主服务器二进制日志坐标”)。有关如何使用原始数据文件创建快照的信息,请参见 第17.1.1.6节“使用原始数据文件创建数据快照”。
如果您的主服务器已经正确配置,请获取其状态(请参见 第17.1.1.4节“获取复制主二进制日志坐标”),然后使用mysqldump拍摄快照(请参见 第17.1.1.5节“使用以下方法创建数据快照” mysqldump”),或使用第17.1.1.6节“使用原始数据文件创建数据快照”中的指南获取实时服务器的原始快照 。
更新从站的配置。请参见 第17.1.1.2节“设置复制从站配置”。
下一步取决于您如何在主数据库上创建数据快照。
如果您使用mysqldump:
使用该–skip-slave-start选项启动从属服务器,以 使复制不会开始。
导入转储文件:
shell> mysql < fulldb.dump
如果使用原始数据文件创建了快照:
将数据文件提取到您的从属数据目录中。例如:
shell> tar xvf dbdump.tar
您可能需要在文件上设置权限和所有权,以便从属服务器可以访问和修改它们。
使用该–skip-slave-start选项启动从属服务器,以 使复制不会开始。
从站配置从站的复制坐标。这告诉从服务器二进制日志文件和文件在其中需要开始复制的位置。另外,使用从属主机的登录凭据和主机名配置从属服务器。有关CHANGE MASTER TO所需语句的更多信息 ,请参见第17.1.1.10节“在从站上设置主配置”。
启动从属线程:
mysql> START SLAVE;
执行完此过程后,从属服务器应连接到主服务器并赶上自拍摄快照以来发生的所有更新。
如果您忘记server_id为主机设置 系统变量,则从机无法连接到它。
如果您忘记server_id为从站设置 系统变量,则会在从站的错误日志中得到以下错误:
Warning: You should set server-id to a non-0 value if master_host
is set; we will force server id to 2, but this MySQL server will
not act as a slave.
如果从属服务器由于任何其他原因而无法复制,则还可以在从属服务器的错误日志中找到错误消息。
从站使用存储在其主站信息存储库中的信息来跟踪已处理的主站的二进制日志量。存储库可以采用文件或表的形式,由master_info_repository系统变量设置的值确定 。当从服务器运行时 master_info_repository=FILE,您可以在其数据目录中找到两个文件,分别名为 master.info和 relay-log.info。如果 master_info_repository=TABLE 相反,此信息将保存在系统数据库的表 master_slave_info中 mysql。无论哪种情况,都 不要除非您确切地知道自己在做什么并且完全理解其中的含义,否则请删除或编辑文件或表。即使在这种情况下,最好还是使用该CHANGE MASTER TO 语句更改复制参数。从站可以使用语句中指定的值来自动更新状态文件。有关更多信息,请参见第17.2.2节“复制中继和状态日志”。
注意
主信息存储库的内容将覆盖命令行或中指定的某些服务器选项 my.cnf。有关更多详细信息,请参见 第17.1.4节“复制和二进制日志记录选项和变量”。
主服务器的单个快照足以满足多个从服务器的需求。要设置其他从属服务器,请使用相同的主快照并遵循上述过程的从属部分。




