Heartbeat en la replicación de MySQL 5.5
La nueva versión MySQL 5.5 incluye mejoras en la replicación que hace casi obligatorio la actualización a esta nueva versión mayor. Una de ellas ya se comentó en este blog, la replicación semi-síncrona. Ahora vamos a hablar de otra mejora, la inclusión de un heartbeat para la replicación.
Heartbeat es un término (traducido como latidos) usado por muchas aplicaciones de alta disponibilidad. El funcionamiento es sencillo, un sistema envía latidos (que no son más que unos pequeños paquetes de datos) y en el momento que el receptor no los reciba sabrá que el primer equipo se habrá caído.
Esto nos permite saber de una forma casi instantánea cuando una replicación se ha parado. En MySQL 5.5 es el maestro quien envía los latidos al esclavo y si este deja de recibirlos dará por supuesto que la comunicación se ha caído. La configuración es muy sencilla:
STOP SLAVE; CHANGE MASTER TO master_heartbeat_period=segundos; START SLAVE;
El valor en segundos puede ir desde 0.001 a 4294967. Si no se indica nada, por defecto el valor será el resultado de slave_net_timeout/2. Así el slave indica al master cada cuanto tiempo debe enviar el latido.
Y podemos comprobar el estado con este comando:
node2 [localhost] {msandbox} ((none)) > show status like '%heartbeat%'; +---------------------------+-------+ | Variable_name | Value | +---------------------------+-------+ | Slave_heartbeat_period | 1.000 | | Slave_received_heartbeats | 1670 | +---------------------------+-------+ 2 rows in set (0.00 sec)
Comments
- Brigo on January 7, 2013, at 03:35 AM







