Upgrades de pacotes do MySQL (Debian apt-get) sempre quebram a replicação master-master devido a mudanças no esquema mysql

5

Eu tenho a master-master replication configurada em 2 servidores Debian, e eles replicam tudo, incluindo o próprio banco de dados mysql (para que novos usuários e outros também possam replicar). Isso geralmente funciona muito bem, exceto que a maioria, se não todas, as atualizações apt para o mysql envolvem algumas mudanças no esquema do banco de dados mysql, que causam erros de replicação que interrompem a replicação. Em última análise, eu sempre preciso corrigir manualmente, ignorando as declarações erradas de cada lado. Isso é sempre demorado, e eu me preocupo com a possibilidade de cometer erros ao fazer isso manualmente (ignorando muitas instruções, misturando os detalhes de CHANGE MASTER, etc.).

Existe algo que eu possa fazer para garantir que as atualizações do apt-get para o MySQL no futuro sejam processadas sem problemas, sem causar problemas de replicação? Certamente há uma boa prática bem estabelecida para isso?

    
por dlo 28.04.2015 / 03:37

2 respostas

2

Não sei se funcionará para cada possível cenário de atualização, mas testei isso e a atualização funcionou sem problemas de replicação:

# /etc/mysql/conf.d/binlog_ignoredb_mysql.cnf.disabled
# Rename this to end in .cnf prior to performing 'apt-get upgrade'.
# Otherwise, its attempts to 'ALTER TABLE users' will cause replication errors.
# After upgrade is complete, rename back to .disabled and then /etc/init.d/mysql restart

[mysqld]
binlog-ignore-db=mysql

Observe que meu teste foi em uma pequena atualização (5.5.41 a 5.5.43).

    
por 08.05.2015 / 07:08
1

seria bom saber quais comandos quebraram sua replicação, mas eu suponho que o script mysql_upgrade seria aquele trapaceiro. Se sim, você pode reconstruir o pacote mysql, adicionando ao script de pós-instalação um --skip-write-binlog (isso não é necessário após 5.6.7)

Mas normalmente eu nunca iria apenas atualizar o servidor que está em produção, parar o slave, atualizá-lo e reconectá-lo. Este é o caminho zen.

    
por 02.05.2015 / 01:55