Pergunta

Sou uma pessoa com TOC, acho que deixei cair algo acidentalmente no meu mysql.

O problema é que tenho cerca de 50 bancos de dados e não consigo verificar tudo manualmente :(

Existe uma maneira de verificar esse tipo de mudança?Tentei ver os carimbos de data e hora em /var/lib/mysql, mas não ajudou, estava olhando os carimbos de data e hora do diretório.

Eu também corri:

SELECT table_schema,table_name,update_time FROM information_schema.tables WHERE update_time > (NOW() - INTERVAL 1 day)

ele retornou apenas bancos de dados alterados nos últimos segundos.

Foi útil?

Solução

Depois de muito debater com a tabela information_schema.tables, finalmente descobri a resposta para o seu problema - o tempo de atualização não funciona para o InnoDB.Veja os pontos aqui por a.out e ajacian81.

A única maneira de fazer isso é implementar tabelas de registro (como sugerido por Bill Karwin, um pouco guru do MySQL/banco de dados).

A única outra coisa que consigo pensar é usar um backup e um programa diff para comparar a saída de texto das consultas do seu banco de dados atual e de backup.Horrível, eu sei, mas existem ferramentas que podem fazer isso se for crítico.Existe o próprio MySQL (MySQLdiff - em utilitários), você pode tentar Liquibase ou Voar para longe (que acredito ter essa funcionalidade) ou Google"programas de comparação de banco de dados mysql".

Eu também encontrei isso publicar útil para perceber que as tabelas information_schema são dinâmicas.

Talvez eu também tenha um pouco de TOC (não posso deixar isso passar!:-) ) mas também encontrei este tópico - confira a resposta de Jacket - Percona pode ser a melhor opção se você realmente precisar dessa funcionalidade.No entanto, é obviamente tarde demais para a sua situação específica.Acho que são backups para você :-(.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a dba.stackexchange
scroll top