Memindahkan Database Pengguna
Berlaku untuk:SQL Server
Di SQL Server, Anda dapat memindahkan file data, log, dan katalog teks lengkap database pengguna ke lokasi baru dengan menentukan lokasi file baru dalam klausul FILENAME dari pernyataan ALTER DATABASE . Metode ini berlaku untuk memindahkan file database dalam instans SQL Server yang sama. Untuk memindahkan database ke instans SQL Server lain atau ke server lain, gunakan operasi pencadangan dan pemulihan atau lepaskan dan lampirkan.
Catatan
Artikel ini membahas pemindahan file database pengguna. Untuk memindahkan file database sistem, lihat Memindahkan Database Sistem.
Pertimbangan
Saat Anda memindahkan database ke instans server lain, untuk memberikan pengalaman yang konsisten kepada pengguna dan aplikasi, Anda mungkin harus membuat ulang beberapa atau semua metadata untuk database. Untuk informasi selengkapnya, lihat Mengelola Metadata Saat Membuat Database Tersedia di Instans Server Lain (SQL Server).
Beberapa fitur Mesin Database SQL Server mengubah cara Mesin Database menyimpan informasi dalam file database. Fitur-fitur ini dibatasi untuk edisi SQL Server tertentu. Database yang berisi fitur-fitur ini tidak dapat dipindahkan ke edisi SQL Server yang tidak mendukungnya. sys.dm_db_persisted_sku_features
Gunakan tampilan manajemen dinamis untuk mencantumkan semua fitur khusus edisi yang diaktifkan dalam database saat ini.
Prosedur dalam artikel ini memerlukan nama logis file database. Untuk mendapatkan nama, kueri kolom nama dalam tampilan katalog sys.master_files .
Dimulai dengan SQL Server 2008 R2 (10.50.x), katalog teks lengkap diintegrasikan ke dalam database daripada disimpan dalam sistem file. Katalog teks lengkap sekarang bergerak secara otomatis saat Anda memindahkan database.
Catatan
Pastikan akun layanan untuk layanan SQL Server Database Services memiliki izin ke lokasi file baru dalam sistem file. Untuk informasi selengkapnya, lihat Mengonfigurasi Izin Sistem File untuk Akses Mesin Database.
Prosedur Relokasi Terencana
Untuk memindahkan data atau file log sebagai bagian dari relokasi yang direncanakan, ikuti langkah-langkah berikut:
Agar setiap file dipindahkan, jalankan pernyataan berikut.
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );
Jalankan pernyataan berikut untuk membuat database offline.
ALTER DATABASE database_name SET OFFLINE;
Tindakan ini memerlukan akses eksklusif ke database. Jika koneksi lain terbuka ke database, pernyataan ALTER DATABASE akan diblokir hingga semua koneksi ditutup. Untuk mengambil alih perilaku ini, gunakan
WITH <termination>
klausul . Misalnya, untuk secara otomatis memutar kembali dan memutuskan sambungan semua koneksi lain ke database, gunakan:ALTER DATABASE database_name SET OFFLINE WITH ROLLBACK IMMEDIATE;
Pindahkan file atau file ke lokasi baru.
Jalankan pernyataan berikut.
ALTER DATABASE database_name SET ONLINE;
Verifikasi perubahan file dengan menjalankan kueri berikut.
SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files WHERE database_id = DB_ID(N'<database_name>');
Relokasi untuk Pemeliharaan Disk Terjadwal
Untuk merelokasi file sebagai bagian dari proses pemeliharaan disk terjadwal, ikuti langkah-langkah berikut:
Agar setiap file dipindahkan, jalankan pernyataan berikut.
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' );
Hentikan instans SQL Server atau matikan sistem untuk melakukan pemeliharaan. Untuk informasi selengkapnya, lihat Mulai, Hentikan, Jeda, Lanjutkan, Mulai Ulang Mesin Database, Agen SQL Server, atau Layanan Browser SQL Server.
Pindahkan file atau file ke lokasi baru.
Mulai ulang instans SQL Server atau server. Untuk informasi selengkapnya, lihat Mulai, Hentikan, Jeda, Lanjutkan, Mulai Ulang Mesin Database, Agen SQL Server, atau Layanan Browser SQL Server
Verifikasi perubahan file dengan menjalankan kueri berikut.
SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files WHERE database_id = DB_ID(N'<database_name>');
Prosedur Pemulihan Kegagalan
Jika file harus dipindahkan karena kegagalan perangkat keras, gunakan langkah-langkah berikut untuk memindahkan file ke lokasi baru.
Penting
Jika database tidak dapat dimulai, yaitu dalam mode tersangka atau dalam status belum dipulihkan, hanya anggota peran tetap sysadmin yang dapat memindahkan file.
Hentikan instans SQL Server jika dimulai.
Mulai instans SQL Server dalam mode pemulihan khusus master dengan memasukkan salah satu perintah berikut pada prompt perintah.
Untuk instans default (MSSQLSERVER), jalankan perintah berikut.
NET START MSSQLSERVER /f /T3608
Untuk instans bernama, jalankan perintah berikut.
NET START MSSQL$instancename /f /T3608
Untuk informasi selengkapnya, lihat Mulai, Hentikan, Jeda, Lanjutkan, Mulai Ulang Mesin Database, Agen SQL Server, atau Layanan Browser SQL Server.
Agar setiap file dipindahkan, gunakan perintah sqlcmd atau SQL Server Management Studio untuk menjalankan pernyataan berikut.
ALTER DATABASE database_name MODIFY FILE( NAME = logical_name , FILENAME = 'new_path\os_file_name' );
Untuk informasi selengkapnya tentang cara menggunakan utilitas sqlcmd , lihat Menggunakan Utilitas sqlcmd.
Keluar dari utilitas sqlcmd atau SQL Server Management Studio.
Hentikan instans SQL Server.
Pindahkan file atau file ke lokasi baru.
Mulai instans SQL Server. Misalnya, jalankan:
NET START MSSQLSERVER
.Verifikasi perubahan file dengan menjalankan kueri berikut.
SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files WHERE database_id = DB_ID(N'<database_name>');
Contoh
Contoh berikut memindahkan AdventureWorks2022
file log ke lokasi baru sebagai bagian dari relokasi yang direncanakan.
USE master;
GO
-- Return the logical file name.
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'AdventureWorks2022')
AND type_desc = N'LOG';
GO
ALTER DATABASE AdventureWorks2022 SET OFFLINE;
GO
-- Physically move the file to a new location.
-- In the following statement, modify the path specified in FILENAME to
-- the new location of the file on your server.
ALTER DATABASE AdventureWorks2022
MODIFY FILE ( NAME = AdventureWorks2022_Log,
FILENAME = 'C:\NewLoc\AdventureWorks2022_Log.ldf');
GO
ALTER DATABASE AdventureWorks2022 SET ONLINE;
GO
--Verify the new location.
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'AdventureWorks2022')
AND type_desc = N'LOG';
Lihat Juga
- MENGUBAH DATABASE (T-SQL)
- BUAT DATABASE (SQL Server Transact-SQL)
- Pencopotan dan Lampirkan Database (SQL Server)
- Memindahkan Database Sistem
- Memindahkan File Database
- BACKUP (Transact-SQL)
- RESTORE (Transact-SQL)
- Mulai, Hentikan, Jeda, Lanjutkan, Mulai Ulang Mesin Database, Agen SQL Server, atau Layanan Browser SQL Server
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk