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' )
0 Comments