La replicación en MySQL se basa en un servidor maestro que toma nota de todos los cambios en las bases de datos (actualizaciones, borrados, y así) en los logs binarios. Por lo tanto, para usar replicación, debe activar el log binario en el servidor maestro. Consulte Sección 5.10.3, “El registro binario (Binary Log)”.
Cada servidor esclavo recibe del maestro las actualizaciones guardadas que el maestro ha guardado en su log binario, de forma que el esclavo puede ejecutar las mismas actualizaciones en su copia de los datos.
Es extremadamente importante tener en cuenta que el log binario simplemente es un registro que comienza en un punto fijo en el tiempo en el que activa el log binario. Cualquier esclavo que inicialice necesita copias de las bases de datos del maestro tal y como estaban en el momento en que activó el log binario en el maestro. Si arranca sus esclavos con bases de datos que no están en el mismo estado que las del maestro cuando arrancó el log binario, es muy posible que fallen sus esclavos.
Una forma de copiar los datos del maestro al esclavo es usar el
comando LOAD DATA FROM MASTER
. Tenga en cuenta
que LOAD DATA FROM MASTER
funciona sólo si
todas las tablas en el maestro usan el motor de almacenamiento
MyISAM
. Además, este comando adquiere un
bloqueo de lectura global, así que no se puede actualizar el
maestro mientras las tablas se transfieren al esclavo. Cuando
implementemos la copia en caliente sin bloqueo, ya no será
necesario el bloqueo global de lectura.
Debido a estas limitaciones, recomendamos que en este punto use
LOAD DATA FROM MASTER
sólo si el conjunto de
datos en el maestro es relativamente pequeño, o si se puede
realizar un bloqueo de lectura prolongado en el maestro. Mientras
que la velocidad real de LOAD DATA FROM MASTER
puede variar de sistema a sistema, una buena regla de estimar
cuánto tarda es 1 segundo por 1MB de datos. Esta es una
estimación aproximada, pero puede encontrar que es bastante buena
si tanto el maestro como el esclavo son equivalentes a Pentium
700MHz y conectados mediante una red a 100Mbps .
Tras inicializar el esclavo con una copia de los datos del
maestro, se conecta al maestro y espera a procesar
actualizaciones. Si el maestro falla, o el esclavo pierde
conectividad con el maestro, el esclavo sigue intentando conectar
periódicamente hasta que es capaz de reanudar la espera de
actualizaciones. El intervalo de reintento lo controla la opción
--master-connect-retry
. Por defecto es de 60
segundos.
Cada esclavo registra dónde lo dejó. El servidor maestro tiene conocimiento de cuántos esclavos hay o cuántos están activos en un momento dado.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.