Memulihkan database ke lokasi baru (SQL Server)

Berlaku untuk:SQL Server

Artikel ini menjelaskan cara memulihkan database SQL Server ke lokasi baru, dan secara opsional mengganti nama database di SQL Server dengan menggunakan SQL Server Management Studio (SSMS) atau Transact-SQL. Anda dapat memindahkan database ke jalur direktori baru atau membuat salinan database pada instans server yang sama atau instans server yang berbeda.

Sebelum Anda mulai

Pembatasan dan batasan

  • Administrator sistem yang memulihkan cadangan database lengkap harus menjadi satu-satunya orang yang saat ini menggunakan database untuk dipulihkan.

Prasyarat

  • Di bawah model pemulihan penuh atau dicatat massal, sebelum Anda dapat memulihkan database, Anda harus mencadangkan log transaksi aktif. Untuk informasi selengkapnya, lihat Mencadangkan Log Transaksi (SQL Server).

  • Untuk memulihkan database terenkripsi, Anda harus memiliki akses ke sertifikat atau kunci asimetris yang digunakan untuk mengenkripsi database! Tanpa sertifikat atau kunci asimetris tersebut, Anda tidak dapat memulihkan database. Anda harus mempertahankan sertifikat yang digunakan untuk mengenkripsi kunci enkripsi database selama Anda memerlukan cadangan. Untuk informasi selengkapnya, lihat Sertifikat SQL Server dan Kunci Asimetris.

Rekomendasi

  • Untuk pertimbangan lain untuk memindahkan database, lihat Menyalin Database dengan Pencadangan dan Pemulihan.

  • Jika Anda memulihkan database SQL Server 2005 (9.x) atau yang lebih tinggi ke SQL Server, database akan dimutakhirkan secara otomatis. Biasanya, database akan segera tersedia. Namun, jika database SQL Server 2005 (9.x) memiliki indeks teks lengkap, proses peningkatan baik mengimpor, mengatur ulang, atau membangunnya kembali, tergantung pada pengaturan properti server upgrade_option . Jika opsi peningkatan diatur untuk mengimpor (upgrade_option = 2) atau membangun kembali (upgrade_option = 0), indeks teks lengkap tidak akan tersedia selama peningkatan. Bergantung pada jumlah data yang diindeks, impor dapat memakan waktu beberapa jam, dan pembangunan ulang dapat memakan waktu hingga 10 kali lebih lama. Perhatikan juga bahwa saat opsi peningkatan diatur ke impor, indeks teks lengkap terkait dibangun kembali jika katalog teks lengkap tidak tersedia. Untuk mengubah pengaturan properti server upgrade_option , gunakan sp_fulltext_service.

Keamanan

Untuk tujuan keamanan, kami sarankan Anda tidak melampirkan atau memulihkan database dari sumber yang tidak diketahui atau tidak tepercaya. Database tersebut dapat berisi kode berbahaya yang mungkin menjalankan kode Transact-SQL yang tidak diinginkan atau menyebabkan kesalahan dengan memodifikasi skema atau struktur database fisik. Sebelum Anda menggunakan database dari sumber yang tidak diketahui atau tidak tepercaya, jalankan DBCC CHECKDB pada database di server nonproduksi dan juga periksa kode, seperti prosedur tersimpan atau kode lain yang ditentukan pengguna, dalam database.

Izin

Jika database yang dipulihkan tidak ada, pengguna harus memiliki izin CREATE DATABASE untuk dapat menjalankan RESTORE. Jika database ada, izin RESTORE default ke anggota peran server tetap sysadmin dan dbcreator dan pemilik (dbo) database.

Izin RESTORE diberikan kepada peran di mana informasi keanggotaan selalu tersedia untuk server. Karena keanggotaan peran database tetap hanya dapat diperiksa ketika database dapat diakses dan tidak rusak, yang tidak selalu terjadi ketika RESTORE dijalankan, anggota peran database tetap db_owner tidak memiliki izin RESTORE.

Memulihkan database ke lokasi baru; secara opsional mengganti nama database menggunakan SQL Server Management Studio

  1. Koneksi ke instans mesin database SQL Server yang sesuai, lalu di Object Explorer, pilih nama server untuk memperluas pohon server.

  2. Klik kanan Database, lalu pilih Pulihkan Database. Kotak dialog Pulihkan Database akan terbuka.

  3. Pada halaman Umum , gunakan bagian Sumber untuk menentukan sumber dan lokasi kumpulan cadangan yang akan dipulihkan. pilih salah satu dari opsi berikut ini:

    • Database

      Pilih database yang akan dipulihkan dari daftar drop-down. Daftar hanya berisi database yang telah dicadangkan sesuai dengan riwayat pencadangan msdb .

    Catatan

    Jika cadangan diambil dari server yang berbeda, server tujuan tidak akan memiliki informasi riwayat cadangan untuk database yang ditentukan. Dalam hal ini, pilih Perangkat untuk menentukan file atau perangkat yang akan dipulihkan secara manual.

    • Perangkat

      Pilih tombol telusuri (...) untuk membuka kotak dialog Pilih perangkat cadangan. Dalam kotak Jenis media cadangan, pilih salah satu jenis perangkat yang tercantum. Untuk memilih satu atau beberapa perangkat untuk kotak media Cadangan, pilih Tambahkan.

      Setelah Anda menambahkan perangkat yang Anda inginkan ke kotak daftar Media cadangan, pilih OK untuk kembali ke halaman Umum .

      Dalam kotak daftar Sumber: Perangkat: Database , pilih nama database yang harus dipulihkan.

      Catatan Daftar ini hanya tersedia ketika Perangkat dipilih. Hanya database yang memiliki cadangan pada perangkat yang dipilih yang akan tersedia.

  4. Di bagian Tujuan , kotak Database secara otomatis diisi dengan nama database yang akan dipulihkan. Untuk mengubah nama database, masukkan nama baru dalam kotak Database .

  5. Dalam kotak Pulihkan ke , biarkan default sebagai Ke cadangan terakhir yang diambil atau pilih Garis Waktu untuk mengakses kotak dialog Garis Waktu Cadangan untuk memilih titik waktu secara manual untuk menghentikan tindakan pemulihan. Lihat Garis Waktu Pencadangan untuk informasi selengkapnya tentang menunjuk titik waktu tertentu.

  6. Di kumpulan Cadangan untuk memulihkan kisi, pilih cadangan yang akan dipulihkan. Kisi ini menampilkan cadangan yang tersedia untuk lokasi yang ditentukan. Secara default, rencana pemulihan disarankan. Untuk mengambil alih rencana pemulihan yang disarankan, Anda dapat mengubah pilihan di kisi. Cadangan yang bergantung pada pemulihan cadangan sebelumnya secara otomatis dibatalkan pilihannya ketika cadangan sebelumnya dibatalkan pilihannya.

    Untuk informasi tentang kolom di kumpulan Cadangan untuk memulihkan kisi, lihat Memulihkan Database (Halaman Umum).

  7. Untuk menentukan lokasi baru file database, pilih halaman File , lalu pilih Relokasi semua file ke folder. Sediakan lokasi baru untuk folder File data dan folder file Log. Untuk informasi selengkapnya tentang kisi ini, lihat Memulihkan Database (Halaman File).

  8. Pada halaman Opsi , sesuaikan opsi jika Anda mau. Untuk informasi selengkapnya tentang opsi ini, lihat Memulihkan Database (Halaman Opsi).

Memulihkan database ke lokasi baru; secara opsional mengganti nama database menggunakan T-SQL

  1. Secara opsional, tentukan nama logis dan fisik file dalam kumpulan cadangan yang berisi cadangan database lengkap yang ingin Anda pulihkan. Pernyataan ini mengembalikan daftar database dan file log yang terkandung dalam kumpulan cadangan. Sintaks dasarnya adalah sebagai berikut:

    PULIHKAN FILELISTONLY DARI <backup_device> DENGAN FILE = backup_set_file_number

    Di sini, backup_set_file_number menunjukkan posisi cadangan dalam set media. Anda dapat memperoleh posisi kumpulan cadangan dengan menggunakan pernyataan RESTORE HEADERONLY . Untuk informasi selengkapnya, lihat Menentukan kumpulan cadangan.

    Pernyataan ini juga mendukung beberapa opsi WITH. Untuk informasi selengkapnya, lihat MEMULIHKAN FILELISTONLY (Transact-SQL).

  2. Gunakan pernyataan RESTORE DATABASE untuk memulihkan cadangan database lengkap. Secara default, file data dan log dipulihkan ke lokasi aslinya. Untuk merelokasi database, gunakan opsi MOVE untuk merelokasi setiap file database, dan untuk menghindari tabrakan dengan file yang ada.

Sintaks Transact-SQL dasar untuk memulihkan database ke lokasi baru dan nama baru adalah:

RESTORE DATABASE *new_database_name*  

FROM *backup_device* [ ,...*n* ]  

[ WITH  

 {  

    [ **RECOVERY** | NORECOVERY ]  

    [ , ] [ FILE ={ *backup_set_file_number* | @*backup_set_file_number* } ]  

    [ , ] MOVE '*logical_file_name_in_backup*' TO '*operating_system_file_name*' [ ,...*n* ]  

}  

;  

Catatan

Saat bersiap untuk merelokasi database pada disk yang berbeda, Anda harus memverifikasi bahwa ruang yang memadai tersedia dan mengidentifikasi potensi tabrakan dengan file yang ada. Ini melibatkan penggunaan pernyataan RESTORE VERIFYONLY yang menentukan parameter MOVE yang sama dengan yang Anda rencanakan untuk digunakan dalam pernyataan RESTORE DATABASE Anda.

Tabel berikut ini menjelaskan argumen pernyataan RESTORE ini dalam hal memulihkan database ke lokasi baru. Untuk informasi selengkapnya tentang argumen ini, lihat RESTORE (Transact-SQL).

new_database_name
Nama baru untuk database.

Catatan

Jika Anda memulihkan database ke instans server yang berbeda, Anda bisa menggunakan nama database asli alih-alih nama baru.

backup_device [ , ...n ]
Menentukan daftar yang dipisahkan koma dari 1 hingga 64 perangkat cadangan tempat cadangan database akan dipulihkan. Anda dapat menentukan perangkat cadangan fisik, atau Anda dapat menentukan perangkat cadangan logis yang sesuai, jika ditentukan. Untuk menentukan perangkat cadangan fisik, gunakan opsi DISK atau TAPE:

{ DISK | TAPE } =physical_backup_device_name

Untuk informasi selengkapnya, lihat Perangkat Cadangan (SQL Server).

{ RECOVERY | NORECOVERY }
Jika database menggunakan model pemulihan penuh, Anda mungkin perlu menerapkan pencadangan log transaksi setelah memulihkan database. Dalam hal ini, tentukan opsi NORECOVERY.

Jika tidak, gunakan opsi RECOVERY, yang merupakan default.

FILE = { backup_set_file_number | @backup_set_file_number }
Mengidentifikasi kumpulan cadangan yang akan dipulihkan. Misalnya, backup_set_file_number 1 menunjukkan cadangan pertama yang ditetapkan pada media cadangan dan backup_set_file_number 2 menunjukkan kumpulan cadangan kedua. Anda dapat memperoleh backup_set_file_number kumpulan cadangan dengan menggunakan pernyataan RESTORE HEADERONLY .

Ketika opsi ini tidak ditentukan, defaultnya adalah menggunakan kumpulan cadangan pertama pada perangkat cadangan.

Untuk informasi selengkapnya, lihat "Menentukan Kumpulan Cadangan," dalam Argumen RESTORE (Transact-SQL).

PINDAHKAN 'logical_file_name_in_backup' KE 'operating_system_file_name' [ ,...n ]
Menentukan bahwa data atau file log yang ditentukan oleh logical_file_name_in_backup akan dipulihkan ke lokasi yang ditentukan oleh operating_system_file_name. Tentukan pernyataan MOVE untuk setiap file logis yang ingin Anda pulihkan dari kumpulan cadangan ke lokasi baru.

Opsi Deskripsi
logical_file_name_in_backup Menentukan nama logis data atau file log dalam kumpulan cadangan. Nama file logis data atau file log dalam kumpulan cadangan cocok dengan nama logisnya dalam database saat kumpulan cadangan dibuat.



Catatan: Untuk mendapatkan daftar file logis dari kumpulan cadangan, gunakan RESTORE FILELISTONLY.
operating_system_file_name Menentukan lokasi baru untuk file yang ditentukan oleh logical_file_name_in_backup. File dipulihkan ke lokasi ini.

Secara opsional, operating_system_file_name menentukan nama file baru untuk file yang dipulihkan. Ini diperlukan jika Anda membuat salinan database yang ada pada instans server yang sama.
n Adalah tempat penampung yang menunjukkan bahwa Anda dapat menentukan pernyataan MOVE tambahan.

Contoh (Transact-SQL)

Contoh ini membuat database baru bernama MyAdvWorks dengan memulihkan cadangan AdventureWorks2022 database sampel, yang mencakup dua file: AdventureWorks2022_Data dan AdventureWorks2022_Log. Database ini menggunakan model pemulihan sederhana. Database AdventureWorks2022 sudah ada pada instans server, sehingga file dalam cadangan harus dipulihkan ke lokasi baru. Pernyataan RESTORE FILELISTONLY digunakan untuk menentukan jumlah dan nama file dalam database yang sedang dipulihkan. Cadangan database adalah cadangan pertama yang ditetapkan pada perangkat cadangan.

Catatan

Contoh pencadangan dan pemulihan log transaksi, termasuk pemulihan titik waktu, gunakan MyAdvWorks_FullRM database yang dibuat seperti AdventureWorks2022 contoh berikut MyAdvWorks . Namun, database yang MyAdvWorks_FullRM dihasilkan harus diubah untuk menggunakan model pemulihan penuh dengan menggunakan pernyataan Transact-SQL berikut: ALTER DATABASE <database_name> SET RECOVERY FULL.

USE master;  
GO  
-- First determine the number and names of the files in the backup.  
-- AdventureWorks2022_Backup is the name of the backup device.  
RESTORE FILELISTONLY  
   FROM AdventureWorks2022_Backup;  
-- Restore the files for MyAdvWorks.  
RESTORE DATABASE MyAdvWorks  
   FROM AdventureWorks2022_Backup  
   WITH RECOVERY,  
   MOVE 'AdventureWorks2022_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf',   
   MOVE 'AdventureWorks2022_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf';  
GO  
  

Untuk contoh cara membuat cadangan AdventureWorks2022 database lengkap database, lihat Membuat Pencadangan Database Lengkap (SQL Server).

Tugas terkait

Baca juga