Como Resolver o Problema ‘Banco de Dados não Pode ser Aberto’ do SQL Server Devido à Corrupção do MDF?

O arquivo de banco de dados mestre (MDF) é o arquivo de banco de dados principal no MS SQL Server que armazena todos os dados, incluindo visões, tabelas, procedimentos armazenados, chaves estrangeiras e chaves primárias. Às vezes, ao abrir o arquivo MDF, você pode enfrentar um problema em que o banco de dados do SQL Server não pode ser aberto e encontrar um erro, como o dado abaixo:

  • Erro do SQL Server 5171: MDF não é um arquivo de banco de dados primário
  • Incapaz de abrir o arquivo xxxxx.mdf. Erro do sistema operacional 5: (Acesso negado)”
  • ID do Evento 824: O SQL Server detectou um erro de I/O baseado em consistência lógica
  • Msg 8114, Nível 16, Estado 5, Linha 2: Erro ao converter o tipo de dado varchar para numérico

Esses erros geralmente ocorrem quando há corrupção no arquivo MDF. Neste artigo, explicaremos as possíveis razões por trás da corrupção dos arquivos MDF e mostraremos como reparar arquivos MDF corrompidos e resolver o problema.

Causas da Corrupção no Arquivo MDF

Existem várias razões que podem levar à corrupção no arquivo do banco de dados SQL Server (MDF). Algumas comuns são dadas abaixo:

Falha do MS SQL Server ou do Sistema

O MS SQL Server ou o sistema podem falhar devido a problemas com o sistema operacional, hardware ou software. Se o servidor ou sistema falhar ao trabalhar no arquivo MDF, isso pode danificar ou corromper o arquivo.

Desligamento Abrupto do Sistema

Uma falha de energia repentina ou desligamento forçado do sistema enquanto o SQL Server está em execução pode corromper o arquivo MDF armazenado em seu sistema.

Ataques de Malware ou Vírus

Malware ou vírus também podem danificar arquivos MDF e torná-los inacessíveis. Isso geralmente ocorre quando seu sistema não possui um software de proteção antivírus ou antimalware.

Problemas com a Unidade de Armazenamento

Setores defeituosos na unidade de armazenamento ou erros no sistema de arquivos podem corromper os arquivos do banco de dados SQL. Se a unidade estiver danificada, isso também pode causar corrupção nos arquivos MDF.

Métodos para Resolver o Problema ‘Banco de Dados não Pode ser Aberto’ Devido à Corrupção do Arquivo MDF

Se seu arquivo MDF estiver corrompido, você pode seguir os métodos abaixo mencionados para reparar e recuperar o arquivo MDF corrompido, assim resolvendo o problema “Banco de Dados não Pode ser Aberto” no SQL Server.

Método 1: Restaurar o Arquivo MDF a Partir do Backup 

Se você tiver criado um backup do seu arquivo MDF, então você pode restaurar o arquivo a partir do backup. Mas antes de restaurar, você precisa verificar se seu backup está completo e legível. Para isso, você pode usar o comando RESTORE VERIFY ONLY. Se este comando mostrar uma mensagem de sucesso, então você pode prosseguir para restaurar o backup. Para isso, use o comando Transact SQL abaixo:

MS SQL

 

Alternativamente, você pode usar o SQL Server Management Studio (SSMS) para restaurar o backup.

Método 2: Utilize o Comando DBCC CHECKDB

Se o backup não estiver atualizado ou houver um problema ao restaurar o arquivo de backup, então você pode usar o comando DBCC CHECKDB para reparar o arquivo MDF corrompido. Para reparar o arquivo do banco de dados, você precisa garantir que tenha direitos de administrador no banco de dados. Antes de reparar, defina o banco de dados para o modo de usuário único usando o comando abaixo:

MS SQL

 

Se não for possível definir o banco de dados para o modo SINGLE_USER, verifique se a opção AUTO_UPDATE_STATISTICS_ASYNC está definida como OFF

Em seguida, execute o comando DBCC CHECKDB conforme abaixo para reparar o arquivo do banco de dados (MDF): 

MS SQL

 

Quando o banco de dados for reparado, defina-o novamente para o modo MULTI_USER usando o comando abaixo:

MS SQL

 

Nota: O comando DBCC CHECKDB pode ajudar a reparar o arquivo MDF. No entanto, ao reparar o arquivo, ele pode desalocar páginas ou linhas, o que pode resultar em perda de dados. 

Método 3: Use uma Ferramenta Profissional de Reparo SQL

Reparar o banco de dados SQL usando o comando DBCC CHECKDB com a opção REPAIR_ALLOW_DATA_LOSS pode resultar em perda de dados. Para evitar a perda de dados, você pode usar um software poderoso de reparo MS SQL, como o Stellar Repair for MS SQL. Este software pode reparar arquivos MDF corrompidos e restaurar todos os objetos do arquivo, como chaves primárias, tabelas, gatilhos, visualizações, etc., sem alterar a estrutura original. Ele salva os dados do arquivo reparado em um novo arquivo MDF e em vários outros formatos, como CSV, HTML e XLS. O software suporta arquivos de banco de dados SQL (MDF e NDF) criados em sistemas Windows e Linux. 

Para Concluir

O problema ‘O banco de dados não pode ser aberto’ no MS SQL Server pode ocorrer devido à corrupção no arquivo MDF. Para corrigir esse problema, a maneira mais fácil é restaurar o arquivo MDF do último backup. Se o arquivo de backup estiver obsoleto ou não funcionar, você pode usar o comando DBCC CHECKDB para reparar o arquivo MDF corrompido. Se o comando DBCC CHECKDB falhar ao reparar o banco de dados, então use uma ferramenta de reparo SQL poderosa, como o Stellar Repair for MS SQL. Ele pode reparar arquivos MDF corrompidos e restaurar todos os dados para um novo arquivo MDF com total integridade. Você pode instalar a versão gratuita do Stellar Repair for MS SQL para examinar o arquivo MDF corrompido e visualizar os dados recuperáveis.

Source:
https://dzone.com/articles/resolve-sql-server-database-cannot-be-opened-mdf-issue