Como verificar se uma importação do mysql foi concluída com sucesso

2

Eu fiz um mysql DBname < dumpFile.sql e como um idiota de verdade, eu não contei sobre o processo, que eventualmente acabou com minha sessão ssh com o cano quebrado. Como faço para, usando o arquivo de despejo, verificar se a importação foi concluída no banco de dados do mysql? RHEL 6, mysql 5.1.6.

    
por usedTobeaMember 25.04.2014 / 19:36

4 respostas

2

Verifique a última inserção do arquivo de despejo (é texto, corrija-o) e veja se os dados chegaram ao seu banco de dados.

    
por 27.04.2014 / 12:07
0

Um de:

  • Faça um despejo do banco de dados e diferencie o antigo e o novo

  • Elimine o banco de dados e importe novamente os dados

por 25.04.2014 / 19:37
0

Basta fazer um mysqldump do novo banco de dados e compará-lo com o banco de dados antigo.

    
por 25.04.2014 / 19:38
0

Assumindo que suas versões do MySQL em ambos os servidores correspondam (ou estejam muito próximas da correspondência) ...

Etapa 1

No prompt do MySQL, execute CHECKSUM TABLE table_name; e veja se a soma de verificação corresponde nos dois locais.

Observe que isso levará um pouco de tempo para executar e amarrar sua mesa. No entanto, mesmo com vários GBs de dados, deve ser menos de um minuto ou mais ... a menos que sua configuração de caixa esteja de alguma forma instável.

link

Etapa 2

Como há uma pequena chance de colisão de checksum em tabelas não correspondentes e também para a posteridade, essa é a sua etapa de backup.

Executar (depois de alterar your_database_name e your_table_name) ...

SELECT CONCAT(table_schema, '.', table_name) AS 'database.table',
     FORMAT(table_rows, 0) AS table_rows,
     FORMAT(data_length, 0) AS data_length,
     FORMAT(index_length, 0) AS index_length
FROM information_schema.TABLES
WHERE table_schema = 'your_database_name'
AND table_name = 'your_table_name';


Se tudo combina, você está pronto para ir! Se não, você terá que cavar mais fundo.

Uma incompatibilidade no tamanho do índice só pode não ser um problema porque uma importação geralmente (dependendo das configurações) cria novos índices na importação sem fragmentação. No entanto, se os índices não corresponderem e você quiser tentar sincronizá-los antes de continuar, execute OPTIMIZE TABLE na tabela de origem e verifique novamente se isso resolve o problema.

Existe um caso de borda para o tamanho do índice que eu ainda não resolvi, apenas FYI ... Por que o tamanho dos índices de tabela MyISAM do MySQL (aka arquivo MYI) não coincide com a importação de mysqldump?

Conclusão

Isso funciona para mim em 99% dos casos sem um problema. Deve-se notar que eu uso principalmente MyISAM (por várias razões), mas isso deve ser bom para o InnoDB também. Espero que ajude!


Esta é a resposta que você estava procurando ... (mão de Jedi de ondas)

    
por 30.04.2014 / 19:38

Tags