
Eu tenho três servidores, Servidor X, Y e Z.
Eu tenho o banco de dados mysql principal em X (banco de dados innodb).
agora criei Master-Slave de X para Y. tudo está funcionando bem aqui.
e agora defino Y como mestre para Z.
quando mostro o status de escravo em Z (o terceiro servidor)
mostrar status de escravo\G Slave_IO_State: Esperando que o mestre envie o evento ... Slave_IO_Running: Sim Slave_SQL_Running: Sim ... Segundos_Atrás_Master: 0
mas os dados não estão sincronizados e nada foi movido de Y para Z. alguma ideia do que pode causar isso?
EDITAR
em my.cnf no servidor Y, tenho a seguinte configuração:
log-slave-updates=ON log-bin=mysql-bin
mas em mostrar variáveis como '%slave%' eu tenho
mostrar variáveis como '%slave%'; +---------------------------+--------+ | Nome_variável | Valor | +---------------------------+--------+ | escravo_inicial | | | log_slave_updates | DESLIGADO | | escravo_comprimido_protocol | DESLIGADO | | escravo_exec_mode | ESTRITO | | escravo_load_tmpdir | /tmp | | escravo_net_timeout | 3600 | | escravo_skip_errors | DESLIGADO | | escravo_transação_retries | 10 | | sql_slave_skip_counter | | +---------------------------+--------+
Obrigado pela ajuda
Responder1
Certifique-se de ter iniciado Y com--log-slave-atualizaçõesopção para que as atualizações recebidas de X sejam registradas por Y em seu log binário.
em my.cnf no servidor Y, tenho a seguinte configuração:
log-slave-updates=ON
Use o valor booleano em vez do valor switch:
log-slave-updates=true
Os 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)