ZDIRY-TUFWT-EBONM-EYJ00-IDBLANTER.COM
ZDIRY-TUFWT-EBONM-EYJ00

BLANTERWISDOM105

Rename Database, Physical Database Di SQL Server

6/11/2020

Problem Rename Database SQL Server

Kadang-kadang kita perlu mengubah nama database pada Sql Server. Misalkan Ketika kita akan Restore Database dengan nama sama dengan database yang lama. Namun setelah mengganti nama database, physical database (mdf dan ldf) tidak secara otomatis ikut berubah atau tetep sama. Sehingga membingungkan kita untuk identifikasi file database yang sesuai untuk database tersebut. Sebagai praktik yang terbaik, kita harus mengganti nama physical database agar sesuai dengan nama database sehingga terhindar dari kesalahan. Jika anda ingin mengubah nama Database dan physical database secara sekaligus maka cara yang saya bagikan ini sangat berguna.

Solution Rename Database SQL Server

Seperti yang kita tahu bahwa physical database memiliki dua nama, yaitu yang satu dikenal dengan nama file logs dan yang lainnya adalah nama file fisik (mdf). Nama file fisik adalah nama file actual di system Operasi Windows.

Ada beberapa cara untuk mengubah nama physical database anda dari database SQL Server. Anda dapat offline-kan database dan kemudian anda menjalankan ALTER dan rename secara langsung dengan Open Folder di SQL Server Management Studio. Dalam hal ini, saya akan menunjukkan kepada anda metodenya secara tahap demi tahap untuk mengubah nama database beserta physical database.

Rename Database SQL Server

Sekarang kita akan memeriksa nama file physical database dengan menjalankan kode T-SQL di bawah ini untuk memvalidasi pembuatan database.


USE [DATABASE_NAME]
SELECT file_id, name as [DATABASE_NAME], physical_name
FROM sys.database_files

Pemeriksaan nama file physical database dapat juga dilakukan dengan SQL Server Management Studio, dengan cara klik kanan mouse pada Database > Properties > Files.

Setelah kita mengetahui nama physical database dan directory path yang menyimpan file. Selanjutnya kita menjalankan T-SQL di bawah ini,


-- CARA RENAME DATABASE
ALTER DATABASE [DATABASE_NAME] MODIFY NAME = [NEW_DATABASE_NAME]

Set Offline Database

Yang telah saya ungkapkan sebelumnya, proses rename physical database diharuskan untuk menonaktifkan Database (offline database). Jika tidak akan tampil pesan error.

The process cannot access the file because it is being used by another process.”.

Oleh karena itu jalankan T-SQL di bawah ini,


-- Nonaktifkan Database agar bisa rename file mdf dan log
USE [master];
GO
--Disconnect all existing session.
ALTER DATABASE [NEW_DATABASE_NAME] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
--Change database in to OFFLINE mode.
ALTER DATABASE [NEW_DATABASE_NAME] SET OFFLINE

Sekarang apakah kondisi NEW_DATABASE_NAME dalam keadaan Offline. Jalanlan T-SQL di bawah ini,


--Cek apakah database sudah nonaktif atau tidak
Select name as [NEW_DATABASE_NAME], State_desc from sys.databases

Rename Physical Database SQL Server

Merubah physical database file harus dibarengi dengan merubah nama database pada tabel sys.databases sehingga ada kesesuaian antar nama database di data dan nama file physical database. Jalankan T-SQL di bawah ini dengan hati-hati.


ALTER DATABASE [NEW_DATABASE_NAME] MODIFY FILE (Name='DATABASE_NAME', FILENAME='C:Program FilesMicrosoft SQL ServerMSSQL13.SQLMS2016MSSQLDATANEW_DATABASE_NAME.mdf')
ALTER DATABASE [NEW_DATABASE_NAME] MODIFY FILE (Name='DATABASE_NAME_log', FILENAME='C:Program FilesMicrosoft SQL ServerMSSQL13.SQLMS2016MSSQLDATANEW_DATABASE_NAME_log.ldf')

-- Rename file yang ada di folder explorer sesuai dengan yang dibutuhkan
-- Untuk rename file MDF dan Log gunakan SQL Server Management Studio atau menggunakan script di bawah ini
EXEC xp_cmdshell 'RENAME "C:Program FilesMicrosoft SQL ServerMSSQL13.SQLMS2016MSSQLDATADATABASE_NAME.mdf", "NEW_DATABASE_NAME.mdf"'
GO

EXEC xp_cmdshell 'RENAME "C:Program FilesMicrosoft SQL ServerMSSQL13.SQLMS2016MSSQLDATADATABASE_NAME_log.ldf", "NEW_DATABASE_NAME_log.ldf"'
GO

Rename Physical Database Melalui Open Folder SQL Server Management Studio

Cara ini memang bisa dilakukan namun kurang efektif karena tidak serta merta merubah merubah data kolom filename pada tabel sys.databases namun patut di coba.


Catatan: Membuka folder directory path C:\Program Files\Microsoft SQL Server\MSSQL13.SQLMS2016\MSSQL\DATA\ tidak bisa melalui Explorer jadi harus melalui SQL Server Management Studio.

Rename Logical Name Database SQL Server

Setelah merubah nama file physical database, akan lebih baik merubah logical name yang tersimpan pada database sekaligus mengaktifkan Kembali database agar dapat di akses dengan cara menjalankan T-SQL di bawah ini,


-- AKtifkan kembali Database
ALTER DATABASE [NEW_DATABASE_NAME] SET ONLINE
Go
ALTER DATABASE [NEW_DATABASE_NAME] SET MULTI_USER
Go
ALTER DATABASE [NEW_DATABASE_NAME] MODIFY FILE ( NAME = 'DATABASE_NAME', NEWNAME = 'NEW_DATABASE_NAME' )
ALTER DATABASE [NEW_DATABASE_NAME] MODIFY FILE ( NAME = 'DATABASE_NAME_log', NEWNAME = 'NEW_DATABASE_NAME_log' )
Share This :

0 Comments