Bagikan melalui


Memindahkan Database Sistem

Topik ini menjelaskan cara memindahkan database sistem di SQL Server. Memindahkan database sistem mungkin berguna dalam situasi berikut:

  • Pemulihan dari kegagalan. Misalnya, database dalam mode tersangka atau telah dimatikan karena kegagalan perangkat keras.

  • Relokasi yang direncanakan.

  • Relokasi untuk pemeliharaan disk yang terjadwal.

Prosedur berikut 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 .

Prosedur dalam topik ini memerlukan nama logis file database. Untuk mendapatkan nama, kueri kolom nama dalam tampilan katalog sys.master_files .

Penting

Jika Anda memindahkan database sistem dan kemudian membangun kembali database master, Anda harus memindahkan database sistem lagi karena operasi pembangunan kembali menginstal semua database sistem ke lokasi defaultnya.

Dalam Topik Ini

Relokasi Terencana dan Prosedur Pemeliharaan Disk Terjadwal

Untuk memindahkan data database sistem atau file log sebagai bagian dari relokasi terencana atau operasi pemeliharaan terjadwal, ikuti langkah-langkah ini. Prosedur ini berlaku untuk semua database sistem kecuali database master dan Sumber Daya.

  1. Agar setiap file dipindahkan, jalankan pernyataan berikut.

    ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' )  
    
  2. 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.

  3. Pindahkan file ke lokasi baru.

  4. 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.

  5. 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>');  
    

Jika database msdb dipindahkan dan instans SQL Server dikonfigurasi untuk Email Database, selesaikan langkah-langkah tambahan ini.

  1. Verifikasi bahwa Service Broker diaktifkan untuk database msdb dengan menjalankan kueri berikut.

    SELECT is_broker_enabled   
    FROM sys.databases  
    WHERE name = N'msdb';  
    

    Untuk informasi selengkapnya tentang mengaktifkan Service Broker, lihat ALTER DATABASE (Transact-SQL).

  2. Verifikasi bahwa Email Database berfungsi dengan mengirim email pengujian.

Prosedur Pemulihan Kegagalan

Jika file harus dipindahkan karena kegagalan perangkat keras, ikuti langkah-langkah ini untuk memindahkan file ke lokasi baru. Prosedur ini berlaku untuk semua database sistem kecuali database master dan Sumber Daya.

Penting

Jika database tidak dapat dimulai, yaitu dalam kondisi mencurigakan atau dalam status belum sepenuhnya dipulihkan, hanya anggota dengan peran tetap sysadmin yang dapat memindahkan file tersebut.

  1. Hentikan instans SQL Server jika sudah berjalan.

  2. Mulai instans SQL Server dalam mode pemulihan khusus master dengan memasukkan salah satu perintah berikut pada prompt perintah. Parameter yang ditentukan dalam perintah ini peka terhadap huruf besar/kecil. Perintah gagal ketika parameter tidak ditentukan seperti yang ditunjukkan.

    • 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.

  3. 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 menggunakan utilitas sqlcmd , lihat Menggunakan Utilitas sqlcmd.

  4. Keluar dari utilitas sqlcmd atau SQL Server Management Studio.

  5. Hentikan instans dari SQL Server. Sebagai contoh, jalankan NET STOP MSSQLSERVER.

  6. Pindahkan file ke lokasi baru.

  7. Mulai ulang instans SQL Server. Sebagai contoh, jalankan NET START MSSQLSERVER.

  8. 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>');  
    

Memindahkan Database Master

Untuk memindahkan database master, ikuti langkah-langkah ini.

  1. Dari menu Mulai , arahkan ke Semua Program, arahkan ke Microsoft SQL Server, arahkan ke Alat Konfigurasi, lalu klik SQL Server Configuration Manager.

  2. Di simpul Layanan SQL Server, klik kanan instans SQL Server (misalnya, SQL Server (MSSQLSERVER)) dan pilih Properti.

  3. Dalam kotak dialog Properti SQL Server (instance_name), klik tab Parameter Startup .

  4. Dalam kotak Parameter yang ada , pilih parameter -d untuk memindahkan file data master. Klik Perbarui untuk menyimpan perubahan.

    Dalam kotak Tentukan parameter startup , ubah parameter ke jalur baru database master.

  5. Dalam kotak Parameter yang ada , pilih parameter -l untuk memindahkan file log master. Klik Perbarui untuk menyimpan perubahan.

    Dalam kotak Tentukan parameter startup , ubah parameter ke jalur baru database master.

    Nilai parameter untuk file data harus mengikuti -d parameter dan nilai untuk file log harus mengikuti -l parameter . Contoh berikut menunjukkan nilai parameter untuk lokasi bawaan file data master.

    -dC:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\master.mdf

    -lC:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\mastlog.ldf

    Jika relokasi yang direncanakan untuk file data master adalah E:\SQLData, nilai parameter akan diubah sebagai berikut:

    -dE:\SQLData\master.mdf

    -lE:\SQLData\mastlog.ldf

  6. Hentikan instans SQL Server dengan mengklik kanan nama instans dan memilih Hentikan.

  7. Pindahkan file master.mdf dan mastlog.ldf ke lokasi baru.

  8. Mulai ulang instans SQL Server.

  9. Verifikasi perubahan file untuk database master dengan menjalankan kueri berikut.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID('master');  
    GO  
    

Memindahkan Database Sumber Daya

Lokasi database Resource adalah <drive>:\Program Files\Microsoft SQL Server\MSSQL<version>.<instance_name>\MSSQL\Binn\. Database tidak dapat dipindahkan.

Tindak Lanjut: Setelah Memindahkan Semua Database Sistem

Jika Anda telah memindahkan semua database sistem ke drive atau volume baru atau ke server lain dengan huruf drive yang berbeda, buat pembaruan berikut.

  • Ubah jalur log SQL Server Agent. Jika Anda tidak memperbarui jalur ini, SQL Server Agent akan gagal dimulai.

  • Ubah lokasi default database. Membuat database baru mungkin gagal jika huruf dan jalur drive yang ditentukan sebagai lokasi default tidak ada.

Mengubah Jalur Log Agen SQL Server

  1. Dari SQL Server Management Studio, di Object Explorer, perluas SQL Server Agent.

  2. Klik kanan Log Kesalahan dan klik Konfigurasikan.

  3. Dalam kotak dialog Konfigurasi Log Kesalahan Agen SQL Server, tentukan lokasi baru file SQLAGENT.OUT. Lokasi defaultnya adalah C:\Program Files\Microsoft SQL Server\MSSQL12.<>instance_name\MSSQL\Log\.

Mengubah lokasi default database

  1. Dari SQL Server Management Studio, di Object Explorer, klik kanan server SQL Server dan klik Properti.

  2. Dalam kotak dialog Properti Server, pilih Pengaturan Database.

  3. Di bawah Lokasi Default Database, telusuri ke lokasi baru untuk kedua file data dan log.

  4. Hentikan dan mulai layanan SQL Server untuk menyelesaikan perubahan.

Contoh

A. Memindahkan database tempdb

Contoh berikut memindahkan tempdb data dan file log ke lokasi baru sebagai bagian dari relokasi yang direncanakan.

Nota

Karena tempdb dibuat ulang setiap kali instans SQL Server dimulai, Anda tidak perlu memindahkan data dan file log secara fisik. File dibuat di lokasi baru ketika layanan dimulai ulang di langkah 3. Hingga layanan dimulai ulang, tempdb terus menggunakan data dan file log di lokasi yang ada.

  1. Tentukan nama tempdb file logis database dan lokasinya saat ini pada disk.

    SELECT name, physical_name AS CurrentLocation  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'tempdb');  
    GO  
    
  2. Ubah lokasi setiap file dengan menggunakan ALTER DATABASE.

    USE master;  
    GO  
    ALTER DATABASE tempdb   
    MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');  
    GO  
    ALTER DATABASE tempdb   
    MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf');  
    GO  
    
  3. Hentikan dan mulai ulang instans SQL Server.

  4. Verifikasi perubahan file.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'tempdb');  
    
  5. Hapus file tempdb.mdf dan templog.ldf dari lokasi asli.

Lihat Juga

Database Sumber Daya
tempdb database
Master Database
msdb Database
Database model
Memindahkan Database Pengguna
Memindahkan File Database
Mulai, Hentikan, Jeda, Lanjutkan, Mulai Ulang Mesin Database, Agen SQL Server, atau Layanan Browser SQL Server
ALTER DATABASE (Transact-SQL)
Membangun Kembali Database Sistem