
Tengo tres servidores, Servidor X, Y y Z.
Tengo la base de datos mysql principal en X (base de datos innodb).
ahora he creado Master-Slave de X a Y. Todo funciona bien aquí.
y ahora configuro Y como maestro para Z.
cuando muestro el estado de esclavo en Z (el tercer servidor)
mostrar estado de esclavo\G Slave_IO_State: esperando que el maestro envíe el evento ... Slave_IO_Running: Sí Slave_SQL_Running: Sí ... Segundos_detrás_del_maestro: 0
pero los datos no están sincronizados y no se ha movido nada de Y a Z. ¿Alguna idea de qué podría causar esto?
EDITAR
en my.cnf en el servidor Y, tengo la siguiente configuración:
actualizaciones-esclavo-de-registro=ON log-bin=mysql-bin
pero en mostrar variables como '%slave%' tengo
mostrar variables como '%esclavo%'; +---------------------+--------+ | nombre_variable | Valor | +---------------------+--------+ | init_slave | | | log_slave_updates | APAGADO | | protocolo_comprimido_esclavo | APAGADO | | modo_exec_esclavo | ESTRICTO | | esclavo_load_tmpdir | /tmp | | esclavo_net_timeout | 3600 | | esclavo_skip_errors | APAGADO | | intentos_de_transacción_esclavo | 10 | | sql_slave_skip_counter | | +---------------------+--------+
Gracias por tu ayuda
Respuesta1
Asegúrate de haber comenzado Y con--log-slave-actualizacionesopción para que Y registre las actualizaciones recibidas de X en su registro binario.
en my.cnf en el servidor Y, tengo la siguiente configuración:
log-slave-updates=ON
Utilice el valor booleano en lugar del valor de cambio:
log-slave-updates=true
Los resultados:
mysql> show global variables like '%slave%';
+---------------------------+--------+
| Variable_name | Value |
+---------------------------+--------+
| init_slave | |
| log_slave_updates | ON |
| slave_compressed_protocol | OFF |
| slave_exec_mode | STRICT |
| slave_load_tmpdir | /tmp |
| slave_net_timeout | 3600 |
| slave_skip_errors | OFF |
| slave_transaction_retries | 10 |
| sql_slave_skip_counter | |
+---------------------------+--------+
9 rows in set (0.00 sec)