MySQL: caçando bancos de dados não utilizados

4

Existe algum comando para procurar bancos de dados que não tenham nenhuma atividade em um mês ou mais?

Basta fazer o SQL dumps por um mês e executar o diff e, se não houver diferenças, excluir esse banco de dados?

    
por raspi 02.06.2009 / 00:58

4 respostas

4

Depende do que você entende por atividade? Você não veria atualizações em um banco de dados ou alterações no backup de um banco de dados que foi projetado para armazenar dados somente leitura. Mas é possível que o banco de dados seja acessado com freqüência.

Você pode ativar o log de consulta do mysql e ver tudo o que é acessado , mas isso acontecerá ao custo do desempenho.

Você provavelmente poderia fazer algo Proxy Mysql . Você poderia configurá-lo com um pouco de trabalho para registrar todos os bancos de dados que foram acessados. Isso pode ter menos impacto no desempenho do que permitir o registro de tudo.

Basta olhar as datas dos arquivos * .myd para os bancos de dados do myisam, desde que o ativo significasse que alguém os estava escrevendo também.

    
por 02.06.2009 / 01:07
1

Diffing dumps SQL só irá mostrar se um banco de dados foi modificado, não se tiver sido consultado.

Você poderia usar o log de consultas lentas para ver quais consultas estão sendo executadas no banco de dados, embora eu não possa ter certeza agora se elas incluem o banco de dados em que a consulta foi executada.

Se você não se importa com as leituras, pode usar os logs de replicação do MySQL para ver se houve alguma atividade de gravação nesses bancos de dados.

    
por 02.06.2009 / 01:05
1

Uma consulta muito útil para mostrar o horário da última atualização de um DB:

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(MAX(UPDATE_TIME))) as last_update FROM information_schema.tables WHERE TABLE_SCHEMA='YourDatabaseNameHere' GROUP BY TABLE_SCHEMA;

Graças ao link

    
por 16.10.2013 / 13:54
0

Despejos não mostrariam nenhuma atividade, eles mostrariam falta de atualizações que NÃO são a mesma coisa.

Eu não sei se o mysql continuamente toca nos bancos de dados que ele abriu ou não. Se isso não acontecer, o mtime deve te dizer. Se isso acontecer, você provavelmente terá que olhar para os logs.

    
por 02.06.2009 / 01:02