Aujourd'hui, après une panne de courant, une base de données (avec Recovery: full) affiche "In Recovery" dans SSMS. Alors:
myDatabase (En cours de récupération) (état de la base de données: récupération, arrêt)
Une fois terminé, le «processus de récupération» de la base de données affiche le nom myDatabase sans «(en cours de récupération)». Je pensais que le problème était résolu, mais ce n'était pas le cas.
Lorsque j'ai démarré l'application qui utilise cette base de données, le texte supplémentaire "(En cours de récupération)" apparaît à nouveau à côté du nom de ma base de données.
J'ai attendu la fin du «processus de récupération», puis j'ai mis la base de données hors ligne et l'ai remise en ligne.
J'ai redémarré le serveur, redémarré l'ordinateur et lorsque mon application était en cours d'exécution, le texte supplémentaire apparaît à nouveau. Dans les journaux SQL Server, le message "Démarrage de la base de données 'myDatabase'" apparaît plusieurs fois. Il semble que la base de données fonctionne parce que je peux insérer des données, mais l'état montre que quelque chose se produit.
Le journal du serveur ne montre rien d'intéressant. La seule chose anormale est que j'ai 30 entrées de "Démarrage de la base de données 'myDatabase'".
Je sais que lorsque le serveur démarre, chaque base de données passe par la récupération avant d'être prête à l'emploi. Mais dans mon cas, la base de données est mise en ligne puis affiche "myDatabase (In recovery)". Si je ferme l'application, la base de données passe à Status: Normal. Ça me rend fou.
J'ai même installé une nouvelle instance de SQL Server et y ai placé l'ancienne base de données "myDatabase". Le problème persiste.
Lorsque j'exécute cette requête:
SELECT databasepropertyex('nyDatabase', 'STATUS')
Il montre la récupération, en ligne, suspect et le retour en ligne, puis la récupération et ainsi de suite.