SQL Server – Rename Logical Database File Name Operasyonu

Veritabanlarımız bir data (.mdf) bir de log (.ldf) dosyalarından oluşmaktadır. Birden fazla data file veya log file eklenebilmektedir. Ve bu file larımızın bir de logical name leri bulunmaktadır. Eskiden oluşturulmuş veritabanlarınız mevcut ve bu veritabanlarınızın logical name lerinin herhangi bir standardı veya anlamsız olduğunu düşünüyorsunuz ve file lara bir standart oluşturmak istediğiniz de logical name leri değiştirmeniz gerekmkete ise bu makalemiz de adım adım logical name leri nasıl değiştireceğinizi öğreneceksiniz.

Demo_SQLTR adında veritabanı oluşturup 3 adet data file ve 1 adet log file oluşturuyoruz.

-- Demo_SQLTR adında veritabanı oluşturuyoruz.
CREATE DATABASE [Demo_SQLTR]
 CONTAINMENT = NONE
 ON  PRIMARY
( NAME = N'Demo_SQLTR', FILENAME = N'D:\DATA\Demo_SQLTR.mdf',SIZE = 5MB , MAXSIZE = UNLIMITED, FILEGROWTH = 10MB ),
( NAME = N'Demo_SQLTR_1', FILENAME = N'D:\DATA\Demo_SQLTR_1.ndf',SIZE = 5MB , MAXSIZE = UNLIMITED, FILEGROWTH = 10MB ),
( NAME = N'Demo_SQLTR_2', FILENAME = N'D:\DATADemo_SQLTR_2.ndf' ,SIZE = 5MB , MAXSIZE = UNLIMITED, FILEGROWTH = 10MB )
 LOG ON
( NAME = N'Demo_SQLTR_log', FILENAME = N'L:\LOG\Demo_SQLTR_log.ldf',SIZE = 10MB , MAXSIZE = 1GB , FILEGROWTH = 10%)
GO

Şimdi ise oluşturduğumuz veritabanını backup ını alalım.

BACKUP DATABASE [Demo_SQLTR] TO DISK = 'D:\DATA\Demo_SQLTR_Backup.bak'
GO

Aşağıda ki script ile oluşturduğumuz veritabanımızın logical name ini görüp path bilgisine erişebilirsiniz.

-- Demo_SQLTR veritabanımızın dosyalarını ve path bilgilerini sorguluyoruz.
USE Demo_SQLTR
GO
SELECT file_id, name as [logical_file_name],physical_name
from sys.database_files

Eğer tek bir data file ın logical name ini değiştirecekseniz,

USE [master];
GO
ALTER DATABASE [Demo_SQLTR] MODIFY FILE ( NAME = Demo_SQLTR, NEWNAME = Demo_SQLTR_DATA );
GO

Yukarıda ki işlem ile birinci File ın Logical Name ine _DATA ifadesini ekledik ve aşağıdaki query miz ile kontrolü sağlayalım.

USE Demo_SQLTR
GO
SELECT file_id, name as [logical_file_name],physical_name
from sys.database_files

Gördüğünüz üzere file_id si 1 olan 1. File ımzın yeni adı Demo_SQLTR_DATA olarak değişmiştir. Tüm file larımızı değiştirecek isek ,

USE [master];
GO
ALTER DATABASE [Demo_SQLTR] MODIFY FILE ( NAME = Demo_SQLTR_DATA, NEWNAME = Demo_SQLTR_Main_DATA );
GO
ALTER DATABASE [Demo_SQLTR] MODIFY FILE ( NAME = Demo_SQLTR_1, NEWNAME = Demo_SQLTR_Index_DATA );
GO
ALTER DATABASE [Demo_SQLTR] MODIFY FILE ( NAME = Demo_SQLTR_2, NEWNAME = Demo_SQLTR_Temp_DATA );
GO
ALTER DATABASE [Demo_SQLTR] MODIFY FILE ( NAME = Demo_SQLTR_log, NEWNAME = Demo_SQLTR_LOG_FILE );
GO

Yukarıda ki scriptimiz ile tüm file larımzın logical name lerini değiştirdik ve aşağıda ki scriptle teyid ediyoruz hızlı bir şekilde.

USE Demo_SQLTR
GO
SELECT file_id, name as [logical_file_name],physical_name
from sys.database_files

Kontrollerimiz sonrası işlemlerimizin başarılı olduğunuz görmekteyiz. Sizlerde bu şekilde veritabanlarınızın logical name lerini değiştirebilirsiniz.

Kolay Gelsin.

Leave a Reply

Your email address will not be published. Required fields are marked *