Memulihkan Pencadangan Log Transaksi (SQL Server)

Berlaku untuk:SQL Server

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

Dalam Topik Ini

Sebelum Anda mulai

Prasyarat

  • Cadangan harus dipulihkan dalam urutan pembuatannya. Sebelum Anda dapat memulihkan cadangan log transaksi tertentu, Anda harus terlebih dahulu memulihkan cadangan sebelumnya berikut tanpa mengembalikan transaksi yang tidak dilakukan, yaitu DENGAN NORECOVERY:

    • Cadangan database lengkap dan cadangan diferensial terakhir, jika ada, yang diambil sebelum pencadangan log transaksi tertentu. Sebelum pencadangan database penuh atau diferensial terbaru dibuat, database harus menggunakan model pemulihan penuh atau model pemulihan yang dicatat secara massal.

    • Semua pencadangan log transaksi yang diambil setelah pencadangan database lengkap atau cadangan diferensial (jika Anda memulihkannya) dan sebelum pencadangan log transaksi tertentu. Pencadangan log harus diterapkan dalam urutan pembuatannya, tanpa celah dalam rantai log.

      Untuk informasi selengkapnya tentang pencadangan log transaksi, lihat Pencadangan Log Transaksi (SQL Server) dan Menerapkan Pencadangan Log Transaksi (SQL Server).

Keamanan

Izin

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

Peringatan

Proses normal pemulihan adalah memilih cadangan log dalam kotak dialog Pulihkan Database bersama dengan data dan cadangan diferensial.

Untuk memulihkan cadangan log transaksi

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

  2. Perluas Database, dan, bergantung pada database, pilih database pengguna atau perluas Database Sistem dan pilih database sistem.

  3. Klik kanan database, arahkan ke Tugas, arahkan ke Pulihkan, lalu klik Log Transaksi, yang membuka kotak dialog Pulihkan Log Transaksi.

    Catatan

    Jika Log Transaksi berwarna abu-abu, Anda mungkin perlu memulihkan cadangan penuh atau diferensial terlebih dahulu. Gunakan kotak dialog Pencadangan database .

  4. Pada halaman Umum, dalam kotak Daftar database, pilih nama database. Hanya database dalam status pemulihan yang tercantum.

  5. Untuk menentukan sumber dan lokasi kumpulan cadangan yang akan dipulihkan, klik salah satu opsi berikut:

    • Dari cadangan database sebelumnya

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

    • Dari file atau pita

      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 .

  6. Di Pilih cadangan log transaksi untuk memulihkan kisi, pilih cadangan yang akan dipulihkan. Kisi ini mencantumkan cadangan log transaksi yang tersedia untuk database yang dipilih. Cadangan log hanya tersedia jika LSN Pertamanya lebih besar dari LSN Terakhir database. Cadangan log tercantum dalam urutan nomor urutan log (LSN) yang dikandungnya, dan harus dipulihkan dalam urutan ini.

    Tabel berikut mencantumkan header kolom kisi dan menjelaskan nilainya.

    Header Nilai
    Pulihkan Kotak centang terpilih menunjukkan kumpulan cadangan yang akan dipulihkan.
    Nama Nama kumpulan cadangan.
    Komponen Komponen yang dicadangkan: Database, File, atau <kosong> (untuk log transaksi).
    Database Nama database yang terlibat dalam operasi pencadangan.
    Tanggal Mulai Tanggal dan waktu ketika operasi pencadangan dimulai, disajikan dalam pengaturan regional klien.
    Tanggal Selesai Tanggal dan waktu ketika operasi pencadangan selesai, disajikan dalam pengaturan regional klien.
    LSN Pertama Mencatat nomor urut transaksi pertama dalam kumpulan cadangan. Kosong untuk pencadangan file.
    LSN Terakhir Nomor urutan log dari transaksi terakhir dalam kumpulan cadangan. Kosong untuk pencadangan file.
    Titik Pemeriksaan LSN Nomor urutan log dari titik pemeriksaan terbaru pada saat cadangan dibuat.
    LSN Penuh Nomor urutan log dari cadangan database lengkap terbaru.
    Server Nama instans Mesin Database yang melakukan operasi pencadangan.
    Nama Pengguna Nama pengguna yang melakukan operasi pencadangan.
    Ukuran Ukuran cadangan yang diatur dalam byte.
    Posisi Posisi set cadangan dalam volume.
    Kedaluwarsa Tanggal dan waktu set cadangan kedaluwarsa.
  7. Pilih salah satu pilihan berikut:

    • Titik waktu

      Pertahankan default (Terbaru mungkin) atau pilih tanggal dan waktu tertentu dengan mengklik tombol telusuri, yang membuka kotak dialog Pemulihan Titik waktu.

    • Transaksi yang ditandai

      Pulihkan database ke transaksi yang ditandai sebelumnya. Memilih opsi ini meluncurkan kotak dialog Pilih Transaksi Ditandai, yang menampilkan kisi yang mencantumkan transaksi yang ditandai yang tersedia dalam cadangan log transaksi yang dipilih.

      Secara default, pemulihan sudah terserah, tetapi tidak termasuk, transaksi yang ditandai. Untuk memulihkan transaksi yang ditandai juga, pilih Sertakan transaksi yang ditandai.

      Tabel berikut mencantumkan header kolom kisi dan menjelaskan nilainya.

      Header Nilai
      <Kosong> Menampilkan kotak centang untuk memilih tanda.
      Tanda Transaksi Nama transaksi yang ditandai yang ditentukan oleh pengguna saat transaksi dilakukan.
      Tanggal Tanggal dan waktu transaksi ketika dilakukan. Tanggal dan waktu transaksi ditampilkan seperti yang dicatat dalam tabel msdbgmarkhistory , bukan dalam tanggal dan waktu komputer klien.
      Deskripsi Deskripsi transaksi yang ditandai yang ditentukan oleh pengguna saat transaksi dilakukan (jika ada).
      LSN Nomor urutan log dari transaksi yang ditandai.
      Database Nama database tempat transaksi yang ditandai dilakukan.
      Nama Pengguna Nama pengguna database yang melakukan transaksi yang ditandai.
  8. Untuk menampilkan atau memilih opsi tingkat lanjut, klik Opsi di panel Pilih halaman .

  9. Di bagian Opsi pemulihan, pilihannya adalah:

    • Mempertahankan pengaturan replikasi (WITH KEEP_REPLICATION)

      Mempertahankan pengaturan replikasi saat memulihkan database yang diterbitkan ke server selain server tempat database dibuat.

      Opsi ini hanya tersedia dengan opsi Biarkan database siap digunakan dengan menggulung balik transaksi yang tidak dilakukan... (dijelaskan nanti), yang setara dengan memulihkan cadangan dengan opsi PEMULIHAN .

      Memeriksa opsi ini setara dengan menggunakan opsi KEEP_REPLICATION dalam pernyataan TRANSACT-SQLRESTORE .

    • Perintah sebelum memulihkan setiap cadangan

      Sebelum memulihkan setiap kumpulan cadangan (setelah yang pertama), opsi ini memunculkan kotak dialog Lanjutkan dengan Pemulihan , yang meminta Anda untuk menunjukkan apakah Anda ingin melanjutkan urutan pemulihan. Dialog ini menampilkan nama set media berikutnya (jika tersedia), nama kumpulan cadangan, dan deskripsi kumpulan cadangan.

      Opsi ini sangat berguna ketika Anda harus menukar kaset untuk set media yang berbeda. Misalnya, Anda dapat menggunakannya ketika server hanya memiliki satu perangkat pita. Tunggu hingga Anda siap untuk melanjutkan sebelum mengklik OK.

      Mengklik Tidak meninggalkan database dalam status pemulihan. Sesuai kenyamanan Anda, Anda dapat melanjutkan urutan pemulihan setelah pemulihan terakhir yang selesai. Jika cadangan berikutnya adalah data atau cadangan diferensial, gunakan tugas Pulihkan Database lagi. Jika cadangan berikutnya adalah cadangan log, gunakan tugas Pulihkan Log Transaksi.

    • Membatasi akses ke database yang dipulihkan (WITH RESTRICTED_USER)

      Membuat database yang dipulihkan hanya tersedia untuk anggota db_owner, dbcreator, atau sysadmin.

      Memeriksa opsi ini identik dengan menggunakan opsi RESTRICTED_USER dalam pernyataan TRANSACT-SQLRESTORE .

  10. Untuk opsi Status pemulihan, tentukan status database setelah operasi pemulihan.

    • Biarkan database siap digunakan dengan mengembalikan transaksi yang tidak dilakukan. Log transaksi tambahan tidak dapat dipulihkan. (PULIHKAN DENGAN PEMULIHAN)

      Memulihkan database. Opsi ini setara dengan opsi PEMULIHAN dalam pernyataan TRANSACT-SQLRESTORE .

      Pilih opsi ini hanya jika Anda tidak memiliki file log yang ingin Anda pulihkan.

    • Biarkan database tidak beroperasi, dan jangan gulung balik transaksi yang tidak dilakukan. Log transaksi tambahan dapat dipulihkan. (PULIHKAN DENGAN NORECOVERY)

      Membiarkan database tidak dipulihkan, dalam status PEMULIHAN . Opsi ini setara dengan menggunakan opsi NORECOVERY dalam pernyataan TRANSACT-SQLRESTORE .

      Saat Anda memilih opsi ini, opsi Pertahankan pengaturan replikasi tidak tersedia.

      Penting

      Untuk cermin atau database sekunder, selalu pilih opsi ini.

    • Biarkan database dalam mode baca-saja. Batalkan transaksi yang tidak dilakukan, tetapi simpan tindakan batalkan dalam file sehingga efek pemulihan dapat dibalik. (PULIHKAN DENGAN SIAGA)

      Meninggalkan database dalam status siaga. Opsi ini setara dengan menggunakan opsi SIAGA dalam pernyataan TRANSACT-SQLRESTORE .

      Memilih opsi ini mengharuskan Anda menentukan file siaga.

  11. Secara opsional, tentukan nama file siaga dalam kotak teks File siaga. Opsi ini diperlukan jika Anda meninggalkan database dalam mode baca-saja. Anda dapat menelusuri file siaga atau mengetikkan nama jalurnya di kotak teks.

Menggunakan T-SQL

Penting

Kami menyarankan agar Anda selalu secara eksplisit menentukan WITH NORECOVERY atau WITH RECOVERY di setiap pernyataan RESTORE untuk menghilangkan ambiguitas. Ini sangat penting ketika menulis skrip.

Untuk memulihkan cadangan log transaksi

  1. Jalankan pernyataan RESTORE LOG untuk menerapkan pencadangan log transaksi, menentukan:

    • Nama database tempat log transaksi akan diterapkan.

    • Perangkat cadangan tempat cadangan log transaksi akan dipulihkan.

    • Klausul NORECOVERY.

    Sintaks dasar untuk pernyataan ini adalah sebagai berikut:

    PULIHKAN DATABASE_NAME LOG DARI <backup_device> DENGAN NORECOVERY.

    Di mana database_name adalah nama database dan <backup_device>adalah nama perangkat yang berisi cadangan log yang sedang dipulihkan.

  2. Ulangi langkah 1 untuk setiap pencadangan log transaksi yang harus Anda terapkan.

  3. Setelah memulihkan cadangan terakhir dalam urutan pemulihan Anda, untuk memulihkan database, gunakan salah satu pernyataan berikut:

    • Pulihkan database sebagai bagian dari pernyataan RESTORE LOG terakhir:

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;  
      GO  
      
    • Tunggu untuk memulihkan database dengan menggunakan pernyataan RESTORE DATABASE terpisah:

      RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;   
      RESTORE DATABASE <database_name> WITH RECOVERY;  
      GO  
      

      Menunggu untuk memulihkan database memberi Anda kesempatan untuk memverifikasi bahwa Anda telah memulihkan semua cadangan log yang diperlukan. Pendekatan ini sering disarankan ketika Anda melakukan pemulihan titik waktu.

    Penting

    Jika Anda membuat database cermin, hilangkan langkah pemulihan. Database cermin harus tetap dalam status PEMULIHAN.

Contoh (Transact-SQL)

Secara default, AdventureWorks2022 database menggunakan model pemulihan sederhana. Contoh berikut mengharuskan memodifikasi database untuk menggunakan model pemulihan penuh, sebagai berikut:

ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;  

J. Menerapkan pencadangan log transaksi tunggal

Contoh berikut dimulai dengan memulihkan AdventureWorks2022 database dengan menggunakan cadangan database lengkap yang berada di perangkat cadangan bernama AdventureWorks2022_1. Contoh kemudian menerapkan cadangan log transaksi pertama yang berada di perangkat cadangan bernama AdventureWorks2022_log. Terakhir, contoh memulihkan database.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

B. Menerapkan beberapa pencadangan log transaksi

Contoh berikut dimulai dengan memulihkan AdventureWorks2022 database dengan menggunakan cadangan database lengkap yang berada di perangkat cadangan bernama AdventureWorks2022_1. Contoh kemudian berlaku, satu per satu, tiga cadangan log transaksi pertama yang berada di perangkat cadangan bernama AdventureWorks2022_log. Terakhir, contoh memulihkan database.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 3,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

Tugas Terkait

Lihat Juga

RESTORE (Transact-SQL)
Menerapkan Pencadangan Log Transaksi (SQL Server)