Hoje, após uma falha de energia, um banco de dados (com Recuperação: completo) mostra "Em Recuperação" no SSMS. Então:
myDatabase (Em recuperação) (status do banco de dados: recuperação, Desligamento)
Após terminar, no "processo de recuperação" o banco de dados mostra o nome myDatabase sem "(Em recuperação)". Achei que o problema estava resolvido, mas não.
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é que o "processo de recuperação" terminasse e então coloquei o banco de dados offline e o coloquei novamente online.
Reiniciei o servidor, reiniciei o computador e quando meu aplicativo estava rodando 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 consigo inserir dados, mas o estado está mostrando que algo acontece.
O log do servidor não está mostrando nada interessante. A única coisa anormal é que eu 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 online e mostra "myDatabase (em recuperação)". Se eu fechar o aplicativo, o banco de dados vai para Status: Normal. Isto está me enlouquecendo.
Eu até instalei uma nova instância do SQL Server e coloquei o banco de dados antigo "myDatabase" nele. O problema ainda acontece.
Quando executo esta consulta:
SELECT databasepropertyex('nyDatabase', 'STATUS')
Ele mostra recuperando, online, suspeito e de volta para online e depois recuperando e assim por diante.
Não tenho certeza se isso ajudaria a resolver o problema, mas você pode tentar.
Corre:
Veja se o acima tira o banco de dados do modo de recuperação. Se isso não acontecer, então o problema pode ser outro.
Você pode tentar o comando abaixo e ver se o banco de dados está corrompido?
Se detectar corrupção, talvez você queira reparar o banco de dados usando
DBCC CHECKDB
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 que não seja quando o banco de dados está sendo colocado off-line (de sua falha de energia original ou por tê-lo colocado off-line e on-line novamente)? Nesse caso, o banco de dados está ficando 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 para algo como uma falha de disco. O banco de dados não deve iniciar e entrar em recuperação durante as operações normais.
A resposta do wiki da comunidade foi originalmente deixada como uma edição da pergunta por seu autor:
O problema era que a propriedade do banco de dados
AutoClose
estava ativada.A solução foi definir
AutoClose
como false.