SQL Server mostra banco de dados em recuperação

23

Hoje, após uma falha de energia, um banco de dados (com Recuperação: cheio) mostra "Em recuperação" no SSMS. Tão:

myDatabase (Em recuperação) (status do banco de dados: recuperação, Desligamento)

Após a conclusão, o "processo de recuperação" do banco de dados mostra o nome myDatabase sem "(Em recuperação)". Eu pensei que o problema estava resolvido, mas não estava.

Quando iniciei o aplicativo que usa esse banco de dados, o texto extra "(Em recuperação)" aparece novamente ao lado do nome do meu banco de dados.

Esperei até o "processo de recuperação" terminar e, em seguida, coloquei o banco de dados offline e o coloquei online novamente.

Reiniciei o servidor, reiniciei o computador e, quando meu aplicativo estava sendo executado, o texto extra aparece novamente. Nos logs do SQL Server, a mensagem "Iniciando o banco de dados 'myDatabase'" aparece algumas vezes. Parece que o banco de dados está funcionando porque posso inserir dados, mas o estado está mostrando que algo acontece.

O log do servidor não está mostrando nada de interessante. A única coisa anormal é que tenho 30 entradas de "Iniciando o banco de dados 'myDatabase'".

Eu sei que quando o servidor inicia, todo banco de dados passa por recuperação antes de estar pronto para uso. Mas no meu caso, o banco de dados fica on-line e mostra "myDatabase (In recovery)". Se eu fechar o aplicativo, o banco de dados vai para Status: Normal. Isto está me enlouquecendo.

Até instalei uma nova instância do SQL Server e coloquei o banco de dados antigo "myDatabase". O problema ainda acontece.

Quando executo esta consulta:

SELECT databasepropertyex('nyDatabase', 'STATUS')

Ele mostra a recuperação on-line, a suspeita e a volta para on-line e, em seguida, a recuperação e assim por diante.

Andres
fonte

Respostas:

2

Resposta do wiki da comunidade originalmente deixada como uma edição da pergunta por seu autor:

O problema era que a propriedade do banco de dados AutoCloseestava ativada.

A solução foi configurada AutoClosepara false.

user126897
fonte
16

Não tenho certeza se isso ajudaria a resolver o problema, mas você pode tentar.

Corre:

RESTORE DATABASE YourDatabase WITH RECOVERY

Veja se o exposto acima tira o banco de dados do modo de recuperação. Caso contrário, o problema pode ser outra coisa.

Você pode tentar o comando abaixo e ver se o banco de dados está corrompido?

DBCC CHECKDB ('YourDBname') WITH NO_INFOMSGS, ALL_ERRORMSGS

Se detectar corrupção, convém reparar o banco de dados usando DBCC CHECKDB

RK Kuppala
fonte
6

Sempre que você coloca um banco de dados online, ele passa por um processo de recuperação. Estou um pouco confuso com a sua formulação do problema. Você está vendo o banco de dados entrar em recuperação a qualquer momento, exceto quando o banco de dados está sendo colocado offline (por causa da falta de energia original ou por você ter colocado o offline e novamente online)? Nesse caso, o banco de dados ficará offline por algum outro motivo. É melhor verificar os logs do servidor SQL para ver o que está acontecendo.

Você também deve verificar o log de eventos do Windows em busca de algo como uma falha no disco. O banco de dados não deve iniciar e entrar em recuperação durante operações normais.

Ben Thul
fonte