Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

~veHagah !

[Resolvido] Recuperação de Base Corrompida

Recommended Posts

Olá pessoal.

 

Estou com um cliente que teve problemas no SQL com quedas de luz a todo momento, até que um momento a base estourou.

 

Possuo os arquivos mdf e ldf da base, porém ela não está anexada.

 

Já realizei vários processos, criando uma base vazia e substituindo os mdf e ldf e gerando alguns scripts que encontrei aqui no fórum e demais fóruns de ajuda.

 

Alguém que já tenha passado por esta situação, sabe como resolve-la?

 

Agradeço desde já,

veHagah.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você consegue anexar os arquivos ao server? Dá alguma mensagem?

 

Não, pelo fato do mdf/ldf estar corrompido, acontece o erro 9003

 

TÍTULO: Microsoft SQL Server Management Studio
------------------------------

Anexar banco de dados falhou para Servidor 'server-suporte'.  (Microsoft.SqlServer.Smo)

------------------------------
INFORMAÇÕES ADICIONAIS:

Ocorreu uma exceção ao executar um lote ou uma instrução Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

O número de verificação do log (336:8972:1) passado para a verificação do log no banco de dados 'imasteer' não é válido. Esse erro pode indicar dados corrompidos ou que o arquivo de log (.ldf) não corresponde ao arquivo de dados (.mdf). Se esse erro ocorreu durante a replicação, crie a publicação novamente. Caso contrário, restaure o backup se o problema resultar em uma falha durante a inicialização.
Não foi possível abrir o novo banco de dados 'imasteer'. CREATE DATABASE foi anulado. (Microsoft SQL Server, Erro: 9003)

 

Caso solucionado!

 

Compartilhando a solução com o pessoal:

 

- Criado um banco novo (CREATE TABLE NOVA_BASE);

- Alterado os MDF e LDF do mesmo (dentro da pasta DATA do SQL Server, para isso, parar os serviços do banco)

 

Rodado os seguintes scripts:

 

Colocar a base em modo EMERGENCY:

ALTER DATABASE nova_base SET EMERGENCY;

 

Coloca-la em modo "Single-User":

sp_dboption 'nova_base','single_user', true

 

Reparar o arquivo .ldf:

DBCC CHECKDB (nova_base, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;

 

Voltar a base para "Multi-User":

ALTER DATABASE nova_base SET MULTI_USER WITH ROLLBACK IMMEDIATE

 

A princípio seria isso.

Simples e fácil :grin:

 

Obrigado pela ajuda Prog.

 

Att,

veHagah

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.