La respuesta directa a su pregunta es Sí, pero depende de la versión de MySQL que esté ejecutando. Antes de MySQL 5.5, la replicación funcionaría de la siguiente manera:
- El maestro ejecuta SQL
- Evento SQL de registros maestros en sus registros binarios
- El esclavo lee el evento SQL de los registros binarios maestros
- Slave almacena el evento SQL en sus registros de retransmisión a través de un hilo de E / S
- Slave lee el siguiente evento SQL del registro de retransmisión a través de un subproceso SQL
- Esclavo ejecuta SQL
- Slave reconoce maestro de la ejecución completa del evento SQL
A partir de MySQL 5.5, utilizando la replicación semisincrónica , ahora la replicación funcionaría de la siguiente manera:
- El maestro ejecuta SQL
- Evento SQL de registros maestros en sus registros binarios
- El esclavo lee el evento SQL de los registros binarios maestros
- Slave reconoce maestro del recibo del evento SQL
- Slave almacena el evento SQL en sus registros de retransmisión a través de un hilo de E / S
- Slave lee el siguiente evento SQL del registro de retransmisión a través de un subproceso SQL
- Esclavo ejecuta SQL
- Slave reconoce maestro de la ejecución completa del evento SQL
Este nuevo paradigma permitirá que un esclavo esté más sincronizado con su maestro.
No obstante, la latencia dentro de la red podría obstaculizar la replicación de sincronización de MySQL hasta el punto en que vuelva a la replicación asincrónica de estilo antiguo. Por qué ? Si se produce un tiempo de espera sin que ningún esclavo haya reconocido la transacción, el maestro vuelve a la replicación asincrónica. Cuando al menos un esclavo semisincrónico se pone al día, el maestro vuelve a la replicación semisincrónica.
ACTUALIZACIÓN 2011-08-08 14:22 EDT
La configuración de la replicación semisíncrona de MySQL 5.5 es sencilla
Paso 1) Agregue estas cuatro (4) líneas a /etc/my.cnf
[mysqld]
plugin-dir=/usr/lib64/mysql/plugin
#rpl_semi_sync_master_enabled
#rpl_semi_sync_master_timeout=5000
#rpl_semi_sync_slave_enabled
Paso 2) Reinicia MySQL
service mysql restart
Paso 3) Ejecute estos comandos en el cliente MySQL
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
Paso 4) Descomente las tres opciones rpm_semi_sync después de la opción plugin-dir
[mysqld]
plugin-dir=/usr/lib64/mysql/plugin
rpl_semi_sync_master_enabled
rpl_semi_sync_master_timeout=5000
rpl_semi_sync_slave_enabled
Paso 5) Reinicie MySQL
service mysql restart
Todo listo !!! Ahora solo configure MySQL Replication como de costumbre.