Bir gün tail log backup almaya çalışırken Backup cannot process database.. hatasıyla karşılaştım. Araştırmalarım sonucunda ilgili hatanın veritabanı altındaki açmış olduğum session’dan kaynaklandığını görmüş oldum. Bu hata, “AdventureWorks2012” veritabanının şu anki oturum tarafından kullanıldığını ve bu nedenle tail-log backup işlemi yapılamadığını* söylüyor. Çözüm olarak master veritabanında çalışmanızı öneriyor.
Bu hata mesajına normal log backup veya full backup alındığında karşılaşılmaz sadece tail log backup alındığında karşılaşılmaktadır. Bunun sebebine değinelim:
Tail-log backup, bir veritabanını RESTORE işlemine hazırlamak veya kurtarma modunda (RECOVERY) tutarken son işlem günlüğünü (transaction log) yakalamak için kullanılır.
Bu işlem, veritabanını exclusive lock (özel kilit) modunda kullanır ve başka bağlantıların erişimine izin vermez. Eğer siz aynı oturumda (session) hedef veritabanını kullanıyorsanız (USE [TEST1] gibi), SQL Server bu kilitlenmeyi çözemez ve hata verir.
Tail-log backup, veritabanını single-user mode (tek kullanıcı modu) gibi davrandığı için, başka bir bağlamda (master gibi) çalıştırmak gerekir.
Eğer hedef veritabanında (USE [TEST1]) çalışırsanız, SQL Server sizin oturumunuzu kapatamaz ve backup işlemi başarısız olur.
Aşağıdaki resimde dikkat edersek çalıştırmaya çalıştığım kod bloğunun AdventureWorks2012 altında çalıştığını gözlemledim. Resimde sol üst tarafta..

Kod bloğunu master veritabanı altında çalıştırdığımda sorunsuz bir şekilde işlemimi tamamlamış oldum.

Tekrar çalıştırdığımızda hata mesajıyla karşılaşırsak use master’dan sonra aşağıdaki iki kod bloğunun eklenmesi gerekmektedir.
Not: Böyle bir hata mesajı alırsanız Exclusive access could not be obtained because the database is in use. İlgili makaleden çözüme ulaşabilirsiniz.
use master
ALTER DATABASE AdventureWorks2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE AdventureWorks2012 restricted_user with rollback immediate
ALTER DATABASE AdventureWorks2012 SET MULTI_USER WITH ROLLBACK IMMEDIATE
Başka bir makalede görüşmek dileğiyle kalın sağlıcakla.
“Yeryüzünde birbirine komşu kara parçaları, üzüm bağları, ekinler, bir kökten birkaç gövde hâlinde çatallı çıkan hurma ağaçları ve bir kökten tek sürgü halinde çatalsız çıkan hurma ağaçları vardır. Bunların hepsi aynı suyla sulanmaktadır. Buna rağmen canlılara sağladıkları ürünler bakımından, ayrıca tat, gıda ve kalite açısından biz onları farklı farklı yapıyor ve bazısını bazısına tercih edilir kılıyoruz. Elbette bunlarda aklını kullanan kimseler için dersler ve ibretler vardır.” Rad-4
1 thought on “MSSQL Server BACKUP cannot process database ‘XXX’ because it is in use by this session. It is recommended that the master database be used when performing this operation. Solution to the error”