Eu li os documentos dizendo que log_slave_updates é necessário. Faz sentido para uma situação geral de promoção.
Mas isso ainda é necessário para algo que você pretende ser um escravo somente leitura que nunca será promovido?
Eu li os documentos dizendo que log_slave_updates é necessário. Faz sentido para uma situação geral de promoção.
Mas isso ainda é necessário para algo que você pretende ser um escravo somente leitura que nunca será promovido?
Sim, você deve configurá-lo ao usar o gtid, caso contrário, o mysql não iniciará , fornecendo o seguinte erro:
O escravo requer seus próprios logs binários executados para se posicionar automaticamente no caso de uma parada (por exemplo, se travar) ou uma mudança de mestre (o hardware no mestre falha sem possibilidade de correção e outro escravo é promovido como o novo escravo), mesmo que não vá ser um mestre em si nunca. Embora eu suponha que isso possa ser controlado exclusivamente na memória durante a execução, aposto que ele precisa de seus próprios logs binários como proteção contra falhas em caso de falha.
Você pode pensar que isso é um grande problema, mas é um pequeno fardo em troca de não ter que lidar mais com arquivos binlog e endereços binlog pos . Além disso, logs binários no escravo sempre foram uma boa ideia. Você ainda pode limpá-los automaticamente
expire-logs-days/max-binlog-size
se o tamanho for o problema. E com o group-commit em 5.6, a penalidade de desempenho deve ser mínima . A outra coisa pela qual não useilog_slave_updates
antes (verificar se nenhuma gravação foi feita nos escravos) agora pode ser controlada comgtid_executed
valores.Em poucas palavras, configure-o e não se preocupe na maioria dos casos.