Embora algumas configurações de innodb_flush_method
combinadas com determinado hardware possam resultar em perda de dados com uma falha de hardware, nenhuma combinação de innodb_flush_method
e innodb_flush_log_at_trx_commit
explica como o ib_logfile1 & ib_logfile2 pode ser dias obsoletos.
Eu migrei os servidores por volta do registro de data e hora dos arquivos do banco de dados. Eu trouxe o mysql para baixo lentamente em ambos os servidores e rsync / var / lib / mysql de um para o outro. Os webapps surgiram e fizeram check-out no novo servidor.
Mas, e se eu esqueci de monit unmonitor mysql
no servidor alvo e ele reiniciou o mysql? Talvez eu tivesse substituído os dados e arquivos de log em um servidor mysql em execução? O mysql continuaria a liberar dados para inodes obsoletos?
Um teste rápido depois, e a resposta é sim. O MySql não percebe que está gravando em identificadores de arquivos inválidos quando seus dados e arquivos de log foram substituídos, mas o buffer pool na memória é capaz de satisfazer todas as consultas. Dado o tamanho do nosso banco de dados (pequeno) e volume de consulta (baixo), o pool de buffer provavelmente teria continuado a lidar com nossos pedidos por algum tempo.