Eu escrevi um plugin simples do Nagios que chama mysqlcheck (que verifica tabelas corrompidas) e dará um aviso se houver algum corrompido.
No entanto, nenhuma das minhas tabelas está corrompida agora. Portanto, não tenho 100% de certeza de que meu plug-in esteja funcionando bem. Eu tenho um servidor de desenvolvimento que não é crítico. Como posso forçar uma (ou alguma) das tabelas a ficar corrompida para que eu possa testar o alerta dos meus nagios?
Para o registro, o servidor é o Ubuntu Dapper e o mysql é a versão 5.0
Respostas:
Geralmente, você não pode fazer backup dos bancos de dados copiando-os de / var / lib / mysql e copiando-os novamente porque eles estão corrompidos; você deve usar o mysqldump.
Portanto, se você for para uma das pastas do banco de dados em / var / lib / mysql, ou seja, / var / lib / mysql / myDB / e mexer com alguns dos arquivos que devem fazê-lo :-)
Então, eu recomendaria copiar um dos arquivos, editar um pouco com um editor hexadecimal e copiá-lo novamente.
fonte
fonte
Você pode usar uma ferramenta de difusão como o zzuf para difundir um arquivo de banco de dados preexistente, por exemplo
fonte
Isso deve servir:
fonte
Eu sugeriria que uma maneira mais realista de simular falhas seria puxar o tapete por baixo dos pés do MySQL enquanto ele realiza uma atualização intensiva. A emissão de SIGKILL para o
mysqld
processo deve ser suficiente. Provavelmente, quando você reiniciar o MySQL, as tabelas em questão serão marcadas como travadas.Como alternativa, sugiro aplicar as sugestões de outras pessoas, mas ao
.MYI
arquivo indec, e não ao arquivo de dados.fonte
exemplo:
fonte
talvez uma execução de comando que faça algo como o seguinte:
fonte