SSMS
 sql >> Base de Dados >  >> Database Tools >> SSMS

SQL Server:Como anexar/reparar um banco de dados desanexado/danificado?


Você pode tentar uma solução alternativa. Resumidamente:
  1. Crie um banco de dados fictício com o mesmo nome (pode ser necessário remover o banco de dados real primeiro, salvar os arquivos originais ou renomear em seguida).
  2. Retire o dummy off-line (desanexar e (definir off-line ou parar o serviço SQL)).
  3. Exclua arquivos fictícios, substitua-os pelos arquivos reais do banco de dados.
  4. Tente reconectar o banco de dados

Editar

Conforme nota de comentário do OP, você também pode precisar reconstruir o log (se você perdeu transações)

  1. ALTER DATABASE [MyDatabase ] REBUILD LOG ON (NAME='MyDatabaseLog',FILENAME='D:\Microsoft SQL Server\YourDataPath\Data\Logfile.ldf')

    e coloque o banco de dados no log de vários usuários (retirar o banco de dados pode exigir que você o coloque no modo de uso único)

  2. ALTER DATABASE [nomdb] SET MULTI_USER

Para todos os detalhes sangrentos, você pode consultar o Artigo de Paul Randal

(Observe neste artigo que o autor usa o EMERGENCY MODE para (tentar) reparar o log de transações)

Já usei com sucesso mas dependendo da extensão do dano ou outros detalhes pode ser uma tarefa impossível. Considere restaurar um backup.

Observe que essas acrobacias são boas em um servidor de desenvolvimento, mas você realmente precisa planejar (e detalhar) a recuperação de desastres em um servidor de produção.