'LOAD DATA INFILE'在基于语句的复制中如何工作?

问题描述 投票:6回答:1

在MySQL中,使用基于语句的复制,我假设每个SQL语句在从属服务器上执行的方式与在主机上完全相同。但是,当我运行该语句时:

LOAD DATA INFILE 'filename' INTO SomeTable;

我不确定文件是否需要以与主服务器相同的方式存在于从服务器上。有人可以指出我该功能的文档吗?

mysql replication load-data-infile
1个回答
5
投票

[似乎在主数据库上用LOAD DATA INFILE加载的文件会通过复制日志自动从主数据库传输到副本。当副本到达基于语句的复制队列中的LOAD DATA INFILE时,副本将加载这些文件。

我从文档中的一些陈述中推断出这一点:

16.1:Backing Up Replication Slaves

如果您的MySQL服务器是从属服务器复制服务器,则无论您选择的备份方法还应该备份master.info当您返回时,和relay-log.info文件处理您的奴隶的数据。这些文件是一直需要恢复复制恢复从站的数据后。如果你的奴隶可以复制LOAD DATA INFILE命令,您应该还备份所有的SQL_LOAD- *文件可能存在于指定的目录中通过--slave-load-tmpdir选项。

16.1.2.3:Replication Slave Options and Variables

当从属SQL线程复制一个LOAD DATA INFILE语句,它从中提取要加载的文件中继日志到临时文件中然后将它们加载到表中。如果主服务器上加载的文件是从站上的巨大,临时文件也很大因此,可能是建议使用此选项来告诉从站将临时文件放在位于某些文件系统中的目录有很多可用空间。在在这种情况下,中继日志很大好,所以您可能还想使用--relay-log选项来放置中继该文件系统中的日志。

© www.soinside.com 2019 - 2024. All rights reserved.