Todos os bancos de dados MySQL perdidos da noite para o dia


15

Após uma ligação de um cliente para dizer que seu site está inoperante, eu descobri que o MySQL em nosso servidor RackSpace Cloud Windows 2008 não estava em execução. Reiniciei o MySQL, mas recebi o erro 'Acesso negado ao usuário' no navegador para todos os sites com banco de dados MySQL. Quando olho para o MySql Server 5.5 / data, não existem pastas além do mysql e performance_schema. Parece que todos os bancos de dados e dados foram apagados. Alguém sabe o que pode ter acontecido e para onde foram os dados? Ainda por cima, encontrei este servidor ausente do nosso serviço de backup.

O ps parece estar após o Windows Update às 4:01 desta manhã.


Existem entradas relevantes no seu sistema e nos logs do MySQL?
user9517

1
"Ainda por cima, encontrei este servidor ausente do nosso serviço de backup." Ai.
Tom O'Connor

o arquivo de log inicia às 09:00 desta manhã quando iniciei o MySQL: InnoDB: arquivo de log. \ ib_logfile0 não existia: novo a ser criado InnoDB: definindo arquivo de log. \ ib_logfile0 tamanho para 5 MB InnoDB: o banco de dados grava fisicamente o arquivo : espere ...
Iain

1
Isso é mais do que o último problema, mas talvez você possa tentar algum software de recuperação de dados. Você deve desligar o servidor o mais rápido possível e acessar os discos offline.
Dan

7
Tem certeza de que está procurando no diretório certo? Pode-se alterar os datadirarquivos de configuração sem recarregar o MySQL e, em seguida, esse problema aparece apenas após a reinicialização do MySQL (possivelmente acionada pela atualização do sistema).
gertvdijk

Respostas:


32
  1. Entre em contato com o suporte da Rackspace. É para isso que eles estão lá.
  2. Faça tudo o que eles sugerem.
  3. Se isso não funcionar, tente a sugestão de Dan para o software de recuperação de dados.
  4. Use isso como uma oportunidade de crescimento e aprendizado.

Sempre garanta o backup de todos os seus servidores e teste os backups regularmente. Não há nenhum ponto em ter um serviço de backup se você nunca testar realmente se pode restaurar a partir dele.

Ah, e desative as atualizações automáticas. Somente faça isso depois de testar o impacto da atualização, de preferência em outro servidor configurado de forma idêntica.


6
+1 Essa realmente deve ser uma resposta canônica para perguntas sobre como restaurar dados que não foram armazenados em backup.
dunxd

2
Obrigado pela ajuda pessoal. gertvdijk me colocou nas linhas corretas, pois encontrou as pastas de dados também em Arquivos de programas / MySQL, bem como ProgramData / MySQL, e restaurou a partir da combinação de pastas de dados e arquivo ibdata1 após reinstalar o MySQL. Quanto à causa do problema original que causou corrupção e impediu o MySQL de iniciar, a única pista que tenho é a atualização do Windows às 4 da manhã de hoje, mas não posso dizer que foi isso com certeza. Destacou que este servidor foi omitido do programa de backup e que seria o responsável pelo problema.
Iain

1
Você deve alterar as configurações do servidor para que as atualizações do sistema não sejam instaladas automaticamente e sem supervisão, a menos que você controle por outros meios exatamente quais atualizações estão instaladas. E se uma atualização alterar o comportamento do sistema de forma a interromper os sites de seus clientes?
um CVn

5
Isso é um problema de fronteira, mas considere mover seus bancos de dados mysql para um servidor linux. Suas atualizações de segurança automáticas nunca reiniciam o servidor e todos os principais fornecedores de distribuição testam a compatibilidade das atualizações com um porograma principal como o mysql (por outro lado, a Microsoft ou a Oracle não testam o mysql em uma atualização do Windows). Um cronjob de backup é provavelmente um pouco mais fácil e mais confiável do que a maioria dos softwares de backup do Windows.
perfil completo de Bryan Waters
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.