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

时间:2008-12-10 13:01:35

标签: mysql replication load-data-infile

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

LOAD DATA INFILE 'filename' INTO SomeTable;

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

1 个答案:

答案 0 :(得分: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选项放置   中继登录该文件系统。