Como resolver o erro ao tentar usar o Attach num arquivo mdf no SQL Server

No artigo de hoje vamos demonstrar como solucionar o problema 5173 ao tentar Anexar / Attach um arquivo mdf no SQL Server.

Esse artigo eu fiz juntamente com a ajuda do grande Súlivan Simões ( LinkedIn ). Basicamente na situação problema, aconteceu que uma base foi desanexada / de-attach , e quando foi realizado a tentativa de anexar novamente, ele acusava uma falha nos arquivos ldf, dando o número de erro 5173.

Mensagem de Erro

Para solucionar esse problema, foi necessário fazer os seguintes procedimentos:

  1. Faça um backup do arquivo mdf original, por exemplo, bancotst_bkp.mdf
  2. Renomeie o arquivo mdf, por exemplo, bancotst_original.mdf
  3. Pelo Management Studio, crie um novo banco de dados com o mesmo nome (por exemplo bancotst), e digite a mesma pasta e nome do arquivo mdf e ldf originais, por exemplo, C:\SQL\bancotst.mdf e C:\SQL\bancotst.ldf
  4. Feche o Management Studio, e pare os serviços do SQL
  5. Remova os novos arquivos mdf e ldf criados
  6. Renomeie o arquivo do tópico 2, voltando o nome, por exemplo, de bancotst_original.mdf para bancotst.mdf
  7. Inicie os serviços do SQL
  8. Abra o Management, note que a base vai estar algo como Pendente / Pending, isso pois o SQL entendeu que alguma coisa estranha aconteceu (como a exclusão do ldf)
  9. Agora na query iremos executar os comandos para “recriar” o ldf, conforme abaixo
ALTER DATABASE [Nome da sua Base] SET EMERGENCY;
GO
ALTER DATABASE [Nome da sua Base] set single_user
GO
DBCC CHECKDB ([Nome da sua Base], REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;
GO
ALTER DATABASE [Nome da sua Base] set multi_user
GO

Após isso, caso queira, reinicie os serviços do SQL e já pode utilizar a base

Obs.: O script do passo 9, pode demorar para ser executado, dependendo do tamanho da base, e dos recursos do servidor.

Referências:

Bom pessoal por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação