Mysql y demora en la replicación… slave_compressed_protocol…

Un escenario común es tener un maestro Mysql y varias réplicas para distribuir la carga, la mayoría de las veces esto funciona bien, pero en ocasiones la distancia en transacciones entre el maestro y el esclavo puede ser muy grande.

El problema puede estar presente en la red, a veces se satura impidiendo que los logs pasen a tiempo. Pues bien, Mysql incluye un flag para ayudar en estas ocasiones.

slave_compressed_protocol

Este flag debemos configurarlo en el maestro y los esclavos, lo bueno es que es dinámico.
Pero, para poder que tome los cambios, primero debemos detener la replicación, y luego volverla a activar…

mysql> show global variables like 'slave_compressed_protocol';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| slave_compressed_protocol | OFF    |
+---------------------------+-------+
1 row in set (0.00 sec)
mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
mysql>  set global slave_compressed_protocol=1;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like 'slave_compressed_protocol';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| slave_compressed_protocol | On    |
+---------------------------+-------+
1 row in set (0.00 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

Otro flag que nos ayuda a mejorar la velocidad de las réplicas es habilitar el log binario en los esclavos, advierto que esto solo debe hacerse si la data esta respaldada, de lo contrario puede llevar a perdidas de información.

Para hacerlo, en my.cnf modificamos lo siguiente

#log-bin=mysql-bin

Solo comentar (#) la linea que dice log-bin=mysql-bin, reiniciar mysql y listo.

Con esto, la velocidad de las réplicas debe mejorar notablemente.

Un saludo

Deja tu comentario

%d bloggers like this: