2008-12-10 21 views
6

En MySQL, usando replicación basada en instrucciones, supongo que cada instrucción SQL se ejecuta en el esclavo exactamente de la misma manera que en el maestro. Sin embargo, cuando ejecuta la instrucción:¿Cómo funciona 'LOAD DATA INFILE' en la replicación basada en declaraciones?

LOAD DATA INFILE 'filename' INTO SomeTable; 

No estoy seguro de si el archivo debe existir en el esclavo de la misma manera en que lo hace en el maestro. ¿Alguien puede indicarme la documentación de esta función?

Respuesta

5

Parece que el archivo que carga con LOAD DATA INFILE en el maestro se transfiere automáticamente a través del registro de replicación del maestro al esclavo. El esclavo carga estos archivos cuando llega al LOAD DATA INFILE en la cola de replicación basada en instrucciones.

estoy deduciendo esto desde un par de declaraciones en los documentos:

16.1: Backing Up Replication Slaves

Si el servidor MySQL es un servidor esclavo de replicación , a continuación, independientemente de el método de copia de seguridad que elija, usted también debe realizar una copia de seguridad de los archivos master.info y relay-log.info cuando respalde los datos de su esclavo. Estos archivos son siempre necesarios para reanudar la replicación después de restaurar los datos del esclavo. Si su esclavo está sujeto a la replicación de los comandos LOAD DATA INFILE, también debe hacer una copia de seguridad de cualquier archivo SQL_LOAD- * que pueda existir en el directorio especificado mediante la opción --slave-load-tmpdir.

16.1.2.3: Replication Slave Options and Variables

Cuando el flujo SQL esclavo replica un comando DATA INFILE carga, extrae el archivo para ser cargado desde el log retardado en archivos temporales, y después carga estos en la mesa. Si el archivo cargado en el maestro es enorme, los archivos temporales en el esclavo también son enormes. Por lo tanto, podría ser aconsejable utilizar esta opción para indicar el esclavo para poner archivos temporales en un directorio ubicado en algún sistema de archivos que tiene un montón de espacio disponible. En ese caso, los registros de retransmisión son enormes como , por lo que es posible que también desee usar la opción --relay-log para colocar los registros de retransmisión en ese sistema de archivos.

Cuestiones relacionadas