DBAtlas · Atlas d'exploitation des bases de données

5061: ALTER DATABASE failed because a lock could not be placed on database (échec d'ALTER DATABASE : impossible de poser un verrou sur la base)

SQL Server

Que signifie cette erreur ?

Une opération ALTER DATABASE (par ex. passage en mode mono-utilisateur, modification d'un fichier, réglage d'une option) n'a pas pu obtenir le verrou requis sur la base car d'autres connexions/sessions actives l'utilisent.

Cause

L'opération a été tentée alors que la base était utilisée ; le verrou exclusif requis pour SET SINGLE_USER, RESTRICTED_USER ou des changements d'options similaires n'a pas pu être obtenu à cause des connexions utilisateur actives. Fréquent lors de déploiements/maintenances fréquents alors que des connexions applicatives sont ouvertes.

Comment la corriger

Identifiez les autres sessions connectées à la base (sys.dm_exec_sessions, sp_who2) et fermez-les en toute sécurité. Pour une maintenance, changez le mode en annulant les transactions ouvertes avec l'option ROLLBACK : ALTER DATABASE [db] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; Effectuez l'opération lorsque le trafic applicatif est faible ou pendant une fenêtre de maintenance. Pensez à repasser en MULTI_USER une fois terminé.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur