5061: ALTER DATABASE failed because a lock could not be placed on database
SQL ServerNe demek?
Bir ALTER DATABASE işlemi (ör. tek kullanıcı moduna alma, dosya değişikliği, seçenek ayarı), veritabanı üzerinde gereken lock'u alamadı çünkü başka etkin bağlantılar/oturumlar veritabanını kullanıyor.
Neden olur?
İşlem, veritabanının o an kullanımda olduğu bir sırada denendi; SET SINGLE_USER, RESTRICTED_USER ya da benzeri seçenek değişiklikleri için gereken özel lock, aktif kullanıcı bağlantıları nedeniyle alınamadı. Sık deploy/bakım sırasında uygulama bağlantıları açıkken görülür.
Nasıl çözülür?
Veritabanına bağlı diğer oturumları belirleyin (sys.dm_exec_sessions, sp_who2) ve güvenle kapatın. Bakım için ROLLBACK seçeneğiyle mevcut transaction'ları geri alarak modu değiştirin: ALTER DATABASE [db] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; İşlemi uygulama trafiği düşükken/bakım penceresinde yapın. İşiniz bitince MULTI_USER moduna geri döndürmeyi unutmayın.
Aynı motorda diğer kayıtlar
- 40501The service is currently busy. Retry the request after 10 seconds
- 8645A time out occurred while waiting for memory resources to execute the query
- 8651Could not perform the operation because the requested memory grant was not available
- 3702Cannot drop database because it is currently in use
- 15138The database principal owns a schema in the database, and cannot be dropped
- 1934INSERT/UPDATE failed because the following SET options have incorrect settings
- 468Cannot resolve the collation conflict