SQL SERVER – Veritabanını OFFLINE Moda Almak Çok Uzun Sürüyor?

Bazı durumlarda veritabanını kullanım dışı bırakma ihtiyacından dolayı offline moda almak isteyebilirsiniz. Veritabanını offline moda almak için aşağıdaki komutu kullanabilirsiniz;

[sql]

ALTER DATABASE [AdventureWorks2014] SET OFFLINE

[/sql]

Yukarıdaki komut ile veritabanınızı offline moda alabilirsiniz ancak yukarıdaki komut veritabanı üzerinde yapılan işlemler ve bekleyen görevlere göre çok uzun sürebilir. Bunun sebebi SQL Server veritabanını offline moda almadan önce üzerinde bekleyen işlemleri tamamlamak istemesindendir. Yukarıdaki komutu çalıştırdınız ve offline moda alma komutunuzun tamamlanması uzun sürmeye başladıysa öncelikle aşağıdaki sorgu yardımı ile SQL Server veritabanı üzerinde hangi işlemleri tamamlamaya çalışıyor onu görebilirsiniz.

[sql]

SELECT * FROM sys.dm_os_waiting_tasks WHERE session_id>50

[/sql]

Sorguda da görüldüğün üzere “Where session_id>50 ” koşulunu ekledim. Bunun sebebi ilk 50 id’yi SQL Server‘in kendi kullanımına ayrılmış olmasıdır. Session_Id 50‘den sonraki kayıtlar kullanıcı işlemlerini vermektedir.

Veritabanını offline moda alma işleminin uzun sürmesinin sebebi “session_id 54” olan bir işlemin tamamlanmasını SQL Server bekliyor demektir. İlgili işlemin içeriğini yani çalıştırılan komut cümlesini aşağıdaki sorgu yardımıyla görebilirsiniz.

[sql]

DBCC INPUTBUFFER(54)

[/sql]

 

Artık hangi sorgunun çalıştığını tespit ettiğimize göre işlemin sonlanmasını bekleyebilir veya işlemi Kill komutu ile sonlandırabiliriz. Yoğun çalışan bir veritabanında yukarıdaki gibi tek bir sorgu yerine birçok sorgu çalışıyor olabilir. Tüm bu işlemleri tek tek sonlandırmak veya tümünün bitmesini beklemek yerine aşağıdaki komut yardımıyla veritabanını çok hızlı bir şekilde offline moda alabiliriz.

[sql]

ALTER DATABASE [AdventureWorks2014] SET OFFLINE WITH ROLLBACK IMMEDIATE

[/sql]

Veritabanını ofline moda almak için yazmış olduğumuz sorgumuza “WITH ROLLBACK IMMEDIATE” ekledik. Bu komut sayesinde veritabanı üzerinde bekleyen tüm işlemler geri alınıp sonlandıracak ve veritabanını offline moda alacaktır. Çok acil bir durum yoksa veritabanında çalışan işlemlerin tamamlanmasını beklemenizi tavsiye ederim.

 

Faydalı olması dileğiyle…

 

Mesut Güneş

Selçuk Üniversitesi Bilgisayar programcılığı bölümünden mezun olduktan sonra birçok firmada Yazılım, İş zekası ve Veritabanı Uzmanı olarak çalıştım. Şuan Türkiye’nin en büyük şirketlerinden biri olan Doğan Online’da Veritabanı Yöneticisi olarak çalışıyorum.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.