Memulihkan cadangan database diferensial (SQL Server)

Berlaku untuk:SQL Server

Topik ini menjelaskan cara memulihkan cadangan database diferensial di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL.

Dalam Topik Ini

Sebelum Anda mulai

Batasan dan Pembatasan

  • RESTORE tidak diperbolehkan dalam transaksi eksplisit atau implisit.

  • Cadangan yang dibuat oleh versi SQL Server yang lebih baru tidak dapat dipulihkan di versi SQL Server yang lebih lama.

  • Di SQL Server, Anda dapat memulihkan database pengguna dari cadangan database yang dibuat dengan menggunakan SQL Server 2005 (9.x) atau versi yang lebih baru.

Prasyarat

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

Keamanan

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 (untuk opsi FROM DATABASE_SNAPSHOT, database selalu ada).

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.

Menggunakan SQL Server Management Studio

Untuk memulihkan cadangan database diferensial

  1. Setelah Anda menyambungkan ke instans Mesin Database Microsoft SQL Server yang sesuai, di Object Explorer, klik nama server untuk memperluas pohon server.

  2. Luaskan Database. Bergantung pada database, pilih database pengguna atau perluas Database Sistem, lalu pilih database sistem.

  3. Klik kanan database, arahkan ke Tugas, arahkan ke Pulihkan, lalu klik Database.

  4. Pada halaman Umum , gunakan bagian Sumber untuk menentukan sumber dan lokasi kumpulan cadangan yang akan dipulihkan. Pilih salah satu 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

      Klik 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, klik Tambahkan.

      Setelah Anda menambahkan perangkat yang Anda inginkan ke kotak daftar Media cadangan, klik 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.

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

    Catatan

    Untuk menghentikan pemulihan pada titik waktu tertentu, klik Garis Waktu untuk mengakses kotak dialog Garis Waktu Cadangan. Untuk bantuan menghentikan pemulihan database pada titik waktu tertentu, lihat Memulihkan Database SQL Server ke Titik Waktu (Model Pemulihan Penuh).

  6. Di kumpulan Cadangan untuk memulihkan kisi, pilih cadangan melalui cadangan diferensial yang ingin Anda pulihkan.

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

  7. Pada halaman Opsi , di panel Opsi pemulihan, Anda dapat memilih salah satu opsi berikut, jika sesuai dengan situasi Anda:

    • Timpa database yang ada (DENGAN REPLACE)

    • Mempertahankan pengaturan replikasi (WITH KEEP_REPLICATION)

    • Perintah sebelum memulihkan setiap cadangan

    • Membatasi akses ke database yang dipulihkan (WITH RESTRICTED_USER)

    Untuk informasi selengkapnya tentang opsi ini, lihat Memulihkan Database (Halaman Opsi).

  8. Pilih opsi untuk kotak Status pemulihan . Kotak ini menentukan status database setelah operasi pemulihan.

    • RESTORE WITH RECOVERY adalah perilaku default yang membuat database siap digunakan dengan menggulung balik transaksi yang tidak dilakukan. Log transaksi tambahan tidak dapat dipulihkan. Pilih opsi ini jika Anda memulihkan semua cadangan yang diperlukan sekarang.

    • PULIHKAN DENGAN NORECOVERY yang membuat database tidak beroperasi, dan tidak mengembalikan transaksi yang tidak dilakukan. Log transaksi tambahan dapat dipulihkan. Database tidak dapat digunakan hingga dipulihkan.

    • PULIHKAN DENGAN SIAGA yang meninggalkan database dalam mode baca-saja. Ini membatalkan transaksi yang tidak dilakukan, tetapi menyimpan tindakan batalkan dalam file siaga sehingga efek pemulihan dapat dikembalikan.

    Untuk deskripsi opsi, lihat Memulihkan Database (Halaman Opsi).

  9. Operasi pemulihan akan gagal jika ada koneksi aktif ke database. Centang opsi Tutup koneksi yang ada untuk memastikan bahwa semua koneksi aktif antara Management Studio dan database ditutup.

  10. Pilih Perintah sebelum memulihkan setiap cadangan jika Anda ingin diminta di antara setiap operasi pemulihan. Ini biasanya tidak diperlukan kecuali database besar dan Anda ingin memantau status operasi pemulihan.

  11. Secara opsional, gunakan halaman File untuk memulihkan database ke lokasi baru. Untuk bantuan dalam memindahkan database, lihat Memulihkan Database ke Lokasi Baru (SQL Server).

  12. PilihOK.

Menggunakan T-SQL

Untuk memulihkan cadangan database diferensial

  1. Jalankan pernyataan RESTORE DATABASE, yang menentukan klausul NORECOVERY, untuk memulihkan cadangan database lengkap yang datang sebelum cadangan database diferensial. Untuk informasi selengkapnya, lihat Cara: Memulihkan Pencadangan Penuh.

  2. Jalankan pernyataan RESTORE DATABASE untuk memulihkan cadangan database diferensial, menentukan:

    • Nama database tempat pencadangan database diferensial diterapkan.

    • Perangkat cadangan tempat cadangan database diferensial dipulihkan.

    • Klausul NORECOVERY jika Anda memiliki cadangan log transaksi untuk diterapkan setelah cadangan database diferensial dipulihkan. Jika tidak, tentukan klausul RECOVERY.

  3. Dengan model pemulihan penuh atau dicatat massal, memulihkan cadangan database diferensial memulihkan database ke titik di mana pencadangan database diferensial selesai. Untuk memulihkan ke titik kegagalan, Anda harus menerapkan semua cadangan log transaksi yang dibuat setelah cadangan database diferensial terakhir dibuat. Untuk informasi selengkapnya, lihat Menerapkan Pencadangan Log Transaksi (SQL Server).

Contoh (Transact-SQL)

J. Memulihkan cadangan database diferensial

Contoh ini memulihkan database dan cadangan database diferensial MyAdvWorks database.

-- Assume the database is lost, and restore full database,   
-- specifying the original full database backup and NORECOVERY,   
-- which allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   RECOVERY;  
GO  

B. Memulihkan database, database diferensial, dan pencadangan log transaksi

Contoh ini memulihkan database, database diferensial, dan cadangan MyAdvWorks log transaksi database.

-- Assume the database is lost at this point. Now restore the full   
-- database. Specify the original full database backup and NORECOVERY.  
-- NORECOVERY allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
-- Now restore each transaction log backup created after  
-- the differential database backup.  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log1  
   WITH NORECOVERY;  
GO  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log2  
   WITH RECOVERY;  
GO  

Tugas Terkait

Lihat Juga

Pencadangan Diferensial (SQL Server)
RESTORE (Transact-SQL)