Adicionando tabelas na replicação do banco de dados master-mysql

1

Eu tenho um sistema simples de replicação do MySQL configurado com um único mestre e um único escravo. Se eu adicionar uma tabela ao mestre, ela aparecerá no escravo? Se eu adicionar uma coluna, ela aparecerá no escravo? Como sobre exclusões?

Esta questão pode ser encapsulada em:

Como exatamente as alterações de esquema funcionam em sistemas simples de replicação do MySQL?

    
por Greelmo 16.09.2010 / 18:18

2 respostas

2

Sim, as alterações de esquema são replicadas como qualquer outro evento. Os escravos do MySQL replicam os logs binários do master em um relay log e então executam os eventos. É claro que isso ocorre se replicate-do-db ou outra variável identificar o escopo específico em questão para executar as instruções.

Houve um bug no MySQL, onde se você executasse alterações especificando a tabela como database.table , ela não seria replicada. Ele exigiu uma instrução use para prosseguir com as consultas que correspondiam a uma variável replicate-do para realmente executar as consultas. Eu acredito que isso é abordado na versão atual, mas ainda é algo para estar ciente.

Esta funcionalidade é bem documentada no site do MySQL.

    
por 16.09.2010 / 18:35
0

Se você adicionar uma tabela ao mestre, ela será mostrada no escravo. Se você adicionar uma coluna, ela aparecerá no escravo. Se você excluir uma coluna, ela será excluída do escravo.

Sem filtros de replicação, o MySQL replica todos os dados e alterações de esquema. Criação e exclusão de bancos de dados também.

Dito isso, defendo veementemente os filtros de replicação.

Veja O MySQL diz que a replicação é bem, mas os dados não são copiados

Para a maioria das aplicações, deixá-lo totalmente aberto é perfeitamente adequado.

    
por 23.11.2010 / 18:34