Eu tenho uma replicação MASTER/SLAVE ativa (Mariadb 10.2) com um único banco de dados (veja o cenário 1)
Eu decidi adicionar no banco de dados IMPORT para preencher o banco de dados MASTER conforme descrito no cenário 2. No entanto, a instância SLAVE fica OFF e o erro “ Importação de banco de dados desconhecido ” é rastreado.
Para superar isso, criei então um banco de dados com o mesmo nome no servidor SLAVE (importação) e o erro desapareceu (ver cenário 3).
Porém, o banco de dados criado (slave import) estava sem tabelas (de propósito) então para ter certeza que os dados são inseridos no slave eu testei criando uma tabela de teste no banco de dados MASTER e inseri dados do banco de dados de importação do Master .
Como resultado, os dados estavam obviamente disponíveis no banco de dados escravo mesmo que o banco de dados de importação do escravo não tivesse tabelas.
Então, basicamente, precisamos apenas do mesmo nome de banco de dados na seção slave para trabalhar sem a necessidade de tabelas.
Você poderia me explicar como funciona? E por que precisamos do mesmo db no escravo se for um formato baseado em linha?
Há várias coisas acontecendo aqui, e você precisará examinar sua configuração no mestre e no escravo para estabelecer onde há qualquer uma das seguintes opções definidas no mestre:
e se algum dos seguintes está definido no escravo:
O que você deve estar ciente é que o que importa é o banco de dados atual na conexão em que você está executando a criação do banco de dados/tabela porque o DDL ainda é registrado como instruções, mesmo em log binário baseado em linha.
Então se você fizer:
isso não será replicado.
A solução que você procura é:
1) No mestre, defina seu binlog_ignore_db =ignorado_import_database
2) Certifique-se de que o processo de importação de dados se conecte ao ignore_import_database quando estiver executando o carregamento de dados para que nenhum DDL o atravesse e certifique-se de que não haja troca de banco de dados ("use database some_unignored_db") dentro da carga útil de importação .