SQL Database farklı diske taşıma işlemi

SQL TempDB taşıma işleminden daha önceki “SQL TempDB farklı diske taşıma işlemi” isimli makalemde söz etmiştik. Bu makalede ise farklı bir yöntem gerektiren uygulama database veri ve log dosyalarımızı farklı disklere taşıyor olacağız.

Database veri konumlarını performans sorunları ve disk kapasite yetersizlikleri gibi nedenlerden dolayı taşımamız gerekebilir. Aşağıda F: disk üzerinde bulunan TEST isimli bir database ve log dosyamız bulunuyor. Örnek senaryomuzda F: HardDisk üzerinde bulunan Log dosyamızı K: SSD Disk üzerine taşıyor olacağız.

Taşıma işlemi öncesi veri kaybını önlemek adına kesinti planlamasının yapılmış olması gerekir. Planlama ve bildirim sonrası DB ‘e bağlı olan kullanıcıları aşağıdaki komut ile kill ediyoruz.

USE [master];

DECLARE @kill varchar(8000) = '';  
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), session_id) + ';'  
FROM sys.dm_exec_sessions
WHERE database_id  = db_id('TEST')

EXEC(@kill);

Tüm DB bağlantılarını kopardıktan sonra Sağ Click => Tasks => Detach seçeneği ile DB ‘i sunucudan ayırıyoruz.

Karşımıza gelen ekranda DB ‘in ayrılma işlemi için hazır olduğunu görüyoruz. OK ile ayrıma işlemini tamamlıyoruz.

Ayırma işlemi sonrasında TEST_Log.ldf dosyamızı K: diskimize kopyaladık. Tüm işlemler tamamlanıp test edildikten sonra F: diskindeki eski log dosyamızı sileceğiz.

Kopyalama işleminden sonra Database => Sağ Click => Attach seçeneği ile DB dosyamızı tekrar ekleyeceğiz.

Çıkan pencerede “Add” diyerek F: diskimizde bulunan Database eklenir.

Burada dikkat edilmesi gereken önemli nokta, F: diskimizde bulunan DB yi ekledikten sonra aşağıdaki açılan pencerede olduğu gibi, TEST_log.ldf dosya konumunu taşıdığımız K: diski ile değiştirmek olacak.

Log dosya konumunu yeni konumumuz ile değiştirdikten sonra OK diyerek işlemleri tamamlıyoruz. Testlerimizi yaptıktan sonra eski konumumuzda bulunan Log dosyasını silebilirsiniz.

About the Author

Bir cevap yazın

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