Atualmente, me deparo com um problema, que um banco de dados SQL Server tem o estado 'recuperação pendente' todas as manhãs. Ninguém iniciou uma recuperação de banco de dados, o próprio servidor decide fazê-lo.
O processo de recuperação fica travado e o SQL Server para de funcionar, pois seu limite de memória é atingido.
Temporariamente, posso resolvê-lo reiniciando o MSSQLSERVER
processo e colocando o banco de dados offline e novamente online. No entanto, como isso parece estar acontecendo todos os dias agora, essa é uma solução inaceitável.
Estou ansioso para saber:
- Quais são os possíveis motivos pelos quais um SQL Server inicia automaticamente esse processo de restauração automatizado
- Existem logs/eventos que eu possa procurar, para encontrar o motivo.
- Como posso resolver :)
Qualquer ajuda ou dica será muito apreciada.
Atualização: o banco de dados estava no recovery pending
, não no restore pending
. O SSMS está instalado no idioma alemão e não me mostrou o status em inglês.
Tenho a sensação de que o que você realmente tem é "recuperação pendente" e não "restauração pendente". Se você examinar a documentação de sys.databases, a coluna de estado, verá que não existe um estado chamado "restauração pendente". Então, vou assumir que é de fato "recuperação pendente" abaixo. Se for qualquer outra coisa, informe-nos, mostre como é no SSMS Object Explorer, bem como a coluna de estado de sys.databases.
Recuperação pendente significa que o SQL Server não pôde fazer a recuperação na inicialização do banco de dados. Observe que o início do banco de dados pode ocorrer fora da inicialização do SQL Server. Ter a opção de banco de dados autoclose definida como true é um desses casos.
De qualquer forma, sempre que a recuperação não for possível, o banco de dados entrará em recuperação pendente. Mas o SQL Server documentará o motivo, no arquivo de log de erros. Portanto, sua tarefa é caçar essas mensagens de erro e agir sobre elas. Meu palpite é que qualquer um dos arquivos de banco de dados é usado por algum outro processo (antivírus, coisa de instantâneo, etc). Mas, posteriormente, os arquivos podem ser acessados pelo SQL Server.