Tenho um banco de dados que era um parceiro espelhado e entrou em estado suspenso. (O Servidor Mirror foi desligado).
Tirei o banco de dados principal do espelhamento usando o SSMS. Mas agora não consigo restaurar o banco de dados espelho para poder configurar o espelhamento novamente.
Quando executo ALTER DATABASE X SET PARTNER OFF
no espelho, logs do SQL Server
Erro 3456 (não foi possível refazer o registro de log)
Quando executo RESTORE
este banco de dados a partir de um backup - o SQL Server me diz que não posso porque o banco de dados está envolvido no espelhamento.
Existe alguma outra maneira de descartar esse banco de dados com segurança? Não posso colocá-lo offline e não posso excluí-lo pelos mesmos motivos. Parece que não consigo remover o espelhamento no Mirror, por algum motivo. obrigada
Editar:
Eu provavelmente deveria dar mais informações. A situação surgiu porque desliguei o sistema operacional antes de interromper os serviços do SQL Server e do SQL Agent. (Assumir que o sistema operacional acionaria um desligamento seguro desses serviços, como outros, não é sábio).
Isso provavelmente causou algum tipo de corrupção que torna o banco de dados não editável, mesmo para removê-lo do espelhamento. Além de desligar o SQL Server, mover os .mdf / .ldf
arquivos e reiniciá-lo, existem outras opções? Posso realmente tentar editar o .ldf
arquivo para remover o registro ofensivo ou algo assim?
Primeiro desligar o Windows sem parar o SQL Server primeiro não causou isso. Isso não fará nada de ruim para o banco de dados, pois todos os serviços são encerrados corretamente quando o Windows é instruído a desligar.
Presumo que o princípio esteja offline e não possa ser colocado online?
Tente forçar o banco de dados a ficar online.
Isso deve colocar o banco de dados online, o que deve permitir que você remova o espelhamento e descarte o banco de dados (ou faça o que for necessário com ele).
O erro 3456 é um erro de incompatibilidade de LSN e indica um banco de dados corrompido. A recuperação não será bem-sucedida neste banco de dados. Como a remoção do espelhamento no banco de dados envolve a execução da recuperação e a recuperação não pode prosseguir devido à corrupção, meu palpite é que você não terá sucesso em tentar desligar o parceiro, nem em tentar forçar o serviço. Como o banco de dados está corrompido de qualquer maneira (e talvez seu principal também esteja corrompido, aliás), há pouco incentivo para tentar colocar esse banco de dados online. Você deve apenas descartá-lo e criar um novo a partir de um backup em boas condições.
Este é um problema conhecido que a Microsoft resolveu na atualização cumulativa 6 .
Eu desliguei os serviços do SQL Server e renomeei os
.mdf / .ldf
arquivos para algo diferente e reiniciei o SQL Server.Em seguida, consegui colocar o banco de dados offline. E então eu fui capaz de largá-lo. Eu restaurei o banco de dados do Primário e posteriormente consegui configurar o espelhamento.
Ainda não sei por que o erro 3456 ocorreu durante a perda de conectividade de rede do sistema operacional. Se eu descobrir (o que espero fazer), atualizarei esta resposta. Obrigado a todos que tentaram ajudar.