Tivemos a replicação de mestre para mestre com dois nós de nó A e B, ambos em ambiente virtual. Inicialmente, houve uma interrupção (problema de espaço em disco) no nó A e a replicação foi interrompida. O tráfego no nível do aplicativo foi desviado para o nó B e realocado o armazenamento de dados do nó A e disponibilizado espaço.
O nó A foi iniciado com sucesso e ativado. A replicação foi iniciada e ocorreu um erro no nó B durante a sincronização com o nó A e o log do compartimento no nó B foi corrompido. A causa raiz ainda é um mistério. Mas a análise dos logs pode encontrar algumas entradas duplicadas e abaixo estão as informações do log de erro:
[ERROR] Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236).
[ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position', Error_code: 1236
111014 20:25:48 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.001067', position 183468345.
Como lidamos com a replicação nessa situação? Podemos pular o log bin atual e iniciar a replicação com o próximo log bin disponível e sua posição. É uma boa ideia sincronizar o nó B com o nó A:
CHANGE MASTER TO
MASTER_HOST='XX.XX.XXX.XXX',
MASTER_USER='replicate',
MASTER_PASSWORD='slave',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.001025',
MASTER_LOG_POS=4,
MASTER_CONNECT_RETRY=10;
A principal razão pela qual estou apresentando esse cenário é que não quero restaurar o banco de dados e construí-lo do zero, onde o backup do banco de dados tem cerca de 80 GB no nó B. Como posso reparar a replicação?