O escravo do Mysql não é retomado do mestre se o mestre for reiniciado

1

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
    
por Wizzard 22.09.2009 / 23:59

3 respostas

1

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 .

    
por 23.09.2009 / 04:28
0

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á?

    
por 23.09.2009 / 03:15
0

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.

    
por 16.10.2009 / 21:20