Parece que reiniciar o mestre apaga os logs binários, por algum motivo. O MySQL não fará isso sozinho; ele está recebendo o comando RESET MASTER
em algum momento, ou algo na inicialização do servidor está limpando /var/run
.
Eu tenho a configuração de replicação entre dois servidores mysql, um é um mestre e o outro é o escravo.
Isso funciona bem, a menos que o mestre seja reiniciado por qualquer motivo. Quando voltar, o escravo não se conecta. No escravo eu faço um escravo inicial; então falha com
090922 17:49:59 [ERRO] Falha ao abrir o registro de retransmissão '/var/run/mysqld/mysqld-relay-bin.000009' (relay_log_pos 67391580) 090922 17:49:59 [ERROR] Não foi possível encontrar o registro de destino durante a inicialização do relay
E eu sou forçado a pegar todos os dados do mestre e carregá-los de volta no escravo e começar de novo.
Como posso evitar que isso aconteça? Portanto, se o mestre for reiniciado, não é uma missão refazer todos os bancos de dados.
Aqui está o arquivo de configuração Red Hat 5, mysql 5.0.45
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=1
server-id = 9180
slave_compressed_protocol=1
max_allowed_packet=16M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Parece que reiniciar o mestre apaga os logs binários, por algum motivo. O MySQL não fará isso sozinho; ele está recebendo o comando RESET MASTER
em algum momento, ou algo na inicialização do servidor está limpando /var/run
.
Eu já vi isso uma vez antes, quando a configuração no escravo estava usando um nome DNS para se conectar ao mestre. No meu caso, a solução foi usar o endereço IP.
A propósito, quando você diz "eu faço um escravo inicial", você está parando primeiro, não está?
Eu já vi isso antes. Não coloque seus logs no / var / run. Se bem me lembro, o sistema apaga os arquivos nesse diretório automaticamente. Tente colocar seus binlogs em outro diretório e veja se seu erro aparece novamente.
Tags mysql replication