Move System Databases

Performans nedeni yada tasarımsal olarak büyük veri tabanları ile çalışıyor yada tempdb’yi çok kullanıp ayrı bir partition’a taşıma ihtiyacınız olursa bu işlemi aşağıdaki komutlar vasıtası ile gerçekleştirebilirsiniz.


İlk önce taşıyacağınız sistem database’inin disk üzerindeki fiziksel adını ve konumunu öğrenelim.

SELECT name, physical_name AS CurrentLocation
FROM sys.master_file s
WHERE database_id = DB_ID(N'tempdb');

Sonrasında fiziksel konumu değiştirmek için gerekli olan aşağıdaki komutları ALTER DATABASE ifadesi ile çalıştıralım.

 USE master;

 ALTER DATABASE tempdb
 MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');

 ALTER DATABASE tempdb
 MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf');

 

Çalışmakda olan SQL Server Instance’ını Restart edip aşağıdaki kodlar ile konum değişikliğini gözlemleyelim.

SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_file s
WHERE database_id = DB_ID(N'tempdb');

Son olarak orjinal konumdaki eski sistem database ve log dosyalarını silerek işlemimizi tamamlayalım.

Tempdb yi shrink etmek için kullanılabilecek script :

USE [tempdb]
GO
DBCC FREEPROCCACHE
DBCC SHRINKFILE ('tempdev' , 1024)
GO 

Kaynak;

Move System Databases

Bir cevap yazın