Índice do fórum Treinamentos Avançados Treinamento MySQL: Administração, Backup & Recovery, Tuning e Replicação TABELA SUMIU, InnoDB foi vc??

TABELA SUMIU, InnoDB foi vc??


Mensagem Ter Ago 13, 2019 8:00 pm

Mensagens: 0
Boa tarde pessoal ..

Estou com alguns problemas e gostaria de saber se alguém já passou por isso?
Tenho o Mysql 5.6.35 com replicação em 3 servidores com o Galera cluster.

Ao fazer uma manutenção baixei os 3 nodos para desligar os servidores. Ao subir banco a banco verifiquei um erro no log.

[Warning] InnoDB: Load table 'sip/rel_hierarquia_unidade' failed, the table has missing foreign key indexes. Turn off 'foreign_key_checks' and try again

Ao conectar no banco e fazer um select simples na tabela, o banco me informou que a tabela não existia.
Deu um show tables e a tabela estava lá.

Pesquisei sobre referência órfão no innoDB e descrobi que existe uma BUG no mysql. Que pode ser visto nesse link https://bugs.mysql.com/bug.php?id=68148

Resumindo, você não pode excluir o índice de um FK. Se isso for feito a tabela perde a referência e retorna a mensagem que tabela não existe.

Fiz o procedimento informado no log, coloquei o parâmetro foreign_key_checks=0 e fiz a consulta na tabela novamente. Bingo, select executado com sucesso.
Verifique a estrutura do banco e todos os índices de FK existiam.

Pensei, deixa eu voltar como estava. Voltei o parâmetro foreign_key_checks=1 e fiz a consulta novamente.
Tudo funcionou perfeitamente.

Agora vem minha dúvida. Por que isso acontece?

Com esse problema não consigo sincronizar os outros nodos do cluster. Ate faz sentido se a tabela não existe a base que está subindo está diferente.
Depois de colocar o parâmetro foreign_key_checks=0 e fazer o select e voltar para foreign_key_checks=1 tudo volta ao normal .. Mas vamos la, não posso ficar fazendo isso cada vez que reinicio o banco.

Se alguém já passou por isso ou tem ideia de que seja por favor me de uma luz.

Mensagem Qui Set 05, 2019 1:10 pm
portilho Site Admin

Mensagens: 482
Oi.
Como o Link coloca, é Bug. É por isso que acontece.
Para resolver de forma definitiva, você terá que fazer dump / drop e Import do database.
E aproveita para subir esta versão, 5.7 no mínimo possui desempenho bem melhor.


Voltar para Treinamento MySQL: Administração, Backup & Recovery, Tuning e Replicação

cron