Bagikan melalui


Pemulihan Potongan (SQL Server)

Topik ini hanya relevan untuk database di edisi Enterprise SQL Server yang berisi beberapa file atau grup file; dan, di bawah model sederhana, hanya untuk grup file baca-saja.

Untuk informasi tentang pemulihan sebagian dan tabel yang dioptimalkan memori, lihat Pemulihan Sepotong Database Dengan Tabel Memory-Optimized.

Pemulihan sebagian memungkinkan database yang berisi beberapa grup file dipulihkan dan dipulihkan secara bertahap. Pemulihan sebagian melibatkan serangkaian urutan pemulihan, dimulai dengan grup file utama dan, dalam beberapa kasus, satu atau beberapa grup file sekunder. Pemulihan sebagian mempertahankan pemeriksaan untuk memastikan bahwa database akan konsisten pada akhirnya. Setelah urutan pemulihan selesai, file yang dipulihkan, jika valid dan konsisten dengan database, dapat dibawa secara online secara langsung.

Pemulihan sebagian berfungsi dengan semua model pemulihan, tetapi lebih fleksibel untuk model penuh dan dicatat secara massal daripada untuk model sederhana.

Setiap pemulihan sebagian dimulai dengan urutan pemulihan awal yang disebut urutan pemulihan parsial. Minimal, urutan pemulihan parsial memulihkan dan memulihkan grup file utama dan, di bawah model pemulihan sederhana, semua grup file baca/tulis. Selama urutan pemulihan sebagian, seluruh database harus offline. Setelah itu, database online dan grup file yang dipulihkan tersedia. Namun, grup file yang tidak disimpan tetap offline dan tidak dapat diakses. Grup file offline apa pun, bagaimanapun, dapat dipulihkan dan dibawa online nanti dengan pemulihan file.

Terlepas dari model pemulihan yang digunakan oleh database, urutan pemulihan parsial dimulai dengan pernyataan RESTORE DATABASE yang memulihkan cadangan penuh dan menentukan opsi PARSIAL. Opsi PARSIAL selalu memulai pemulihan sebagian baru; oleh karena itu, Anda harus menentukan PARSIAL hanya satu kali dalam pernyataan awal urutan pemulihan parsial. Ketika urutan pemulihan parsial selesai dan database dibawa online, status file yang tersisa menjadi "pemulihan tertunda" karena pemulihan mereka telah ditunda.

Selanjutnya, pemulihan sebagian biasanya mencakup satu atau beberapa urutan pemulihan, yang disebut urutan filegroup-restore. Anda dapat menunggu untuk melakukan urutan pemulihan grup file tertentu selama yang Anda inginkan. Setiap urutan filegroup-restore memulihkan dan memulihkan satu atau beberapa grup file offline ke titik yang konsisten dengan database. Waktu dan jumlah urutan filegroup-restore tergantung pada tujuan pemulihan Anda, jumlah grup file offline yang ingin Anda pulihkan, dan berapa banyak yang Anda pulihkan per urutan pemulihan grup file.

Persyaratan yang tepat untuk melakukan pemulihan sebagian tergantung pada model pemulihan database. Untuk informasi selengkapnya, lihat "Pemulihan Sebagian di Bawah Model Pemulihan Sederhana" dan "Pemulihan Sebagian Di Bawah Model Pemulihan Penuh," nanti dalam topik ini.

Skenario Pemulihan Sebagian

Semua edisi SQL Server mendukung pemulihan sebagian offline. Dalam edisi Enterprise, pemulihan sebagian dapat online atau offline. Implikasi pemulihan potong offline dan online adalah sebagai berikut:

  • Skenario pemulihan sebagian offline

    Dalam pemulihan sebagian offline, database online setelah urutan pemulihan parsial. Grup file yang belum dipulihkan tetap offline, tetapi dapat dipulihkan karena Anda membutuhkannya setelah membuat database offline.

  • Skenario pemulihan potongan online

    Dalam pemulihan sebagian online, setelah urutan pemulihan parsial, database sedang online, dan grup file utama dan grup file sekunder yang dipulihkan tersedia. Grup file yang belum dipulihkan tetap offline, tetapi dapat dipulihkan sesuai kebutuhan saat database tetap online.

    Pemulihan sebagian online dapat melibatkan transaksi yang ditangguhkan. Ketika hanya subset grup file yang telah dipulihkan, transaksi dalam database yang bergantung pada grup file online mungkin menjadi ditangguhkan. Ini khas, karena seluruh database harus konsisten. Untuk informasi selengkapnya, lihat Transaksi Yang Ditangguhkan (SQL Server).

  • SQL Server In-Memory skenario pemulihan sebagian OLTP

    Untuk informasi tentang Pemulihan Potongan database OLTP In-Memory lihat Pencadangan Dan Pemulihan Sepotong Database Dengan Tabel Memory-Optimized.

Batasan

Jika urutan pemulihan parsial mengecualikan grup file FILESTREAM , pemulihan point-in-time tidak didukung. Anda dapat memaksa urutan pemulihan untuk melanjutkan. Namun grup file FILESTREAM yang dihilangkan dari pernyataan RESTORE Anda tidak pernah dapat dipulihkan. Untuk memaksa pemulihan titik waktu, tentukan opsi CONTINUE_AFTER_ERROR bersama dengan opsi STOPAT, STOPATMARK, atau STOPBEFOREMARK, yang juga harus Anda tentukan dalam pernyataan RESTORE LOG berikutnya. Jika Anda menentukan CONTINUE_AFTER_ERROR, urutan pemulihan parsial berhasil dan grup file FILESTREAM menjadi tidak dapat dipulihkan.

Pemulihan Sepotong Di Bawah Model Pemulihan Sederhana

Di bawah model pemulihan sederhana, urutan pemulihan sebagian harus dimulai dengan database lengkap atau cadangan parsial. Kemudian, jika cadangan yang dipulihkan adalah basis diferensial, pulihkan cadangan diferensial terbaru berikutnya.

Selama urutan pemulihan parsial pertama, jika Anda hanya memulihkan subset grup file baca/tulis, grup file yang tidak disimpan menjadi tidak berfungsi saat Anda memulihkan database yang dipulihkan sebagian. Menghilangkan grup file baca/tulis dari urutan pemulihan parsial hanya sesuai dalam kasus berikut:

  • Anda berniat agar grup file yang tidak disimpan menjadi tidak berfungsi.

  • Urutan pemulihan akan tiba di titik pemulihan di mana setiap grup file yang tidak disimpan telah menjadi baca-saja, dihilangkan, atau dicabut (selama pemulihan sebelumnya dalam urutan pemulihan parsial).

  • Pencadangan penuh diambil saat database menggunakan model pemulihan sederhana, tetapi titik pemulihan pada saat database menggunakan model pemulihan penuh. Untuk informasi selengkapnya, lihat "Melakukan Pemulihan Sebagian database yang Model Pemulihannya Telah Dialihkan dari Sederhana ke Penuh," nanti dalam topik ini.

Persyaratan untuk Pemulihan Potong Di Bawah Model Pemulihan Sederhana

Di bawah model pemulihan sederhana, tahap awal memulihkan dan memulihkan grup file utama dan semua grup file sekunder baca/tulis. Setelah tahap awal selesai, file yang dipulihkan, jika valid dan konsisten dengan database, dapat dibawa secara online secara langsung.

Setelah itu, grup file baca-saja dapat dipulihkan dalam satu atau beberapa tahap tambahan.

Pemulihan sebagian tersedia untuk grup file sekunder baca-saja hanya jika berikut ini benar:

  • Bersifat baca-saja ketika dicadangkan.

  • Tetap baca-saja (menjaganya tetap konsisten secara logis dengan grup file utama).

Untuk melakukan pemulihan sebagian, pedoman berikut harus diikuti:

  • Serangkaian cadangan lengkap untuk pemulihan sebagian database model pemulihan sederhana harus berisi yang berikut ini:

    • Cadangan database parsial atau penuh yang berisi grup file utama dan semua grup file yang dibaca/ditulis pada saat pencadangan.

    • Cadangan setiap file baca-saja.

  • Agar cadangan file baca-saja konsisten dengan grup file utama, grup file sekunder harus bersifat baca-saja dari saat dicadangkan hingga cadangan yang berisi grup file utama selesai. Anda dapat menggunakan cadangan file diferensial, jika diambil setelah grup file menjadi baca-saja.

Tahap Pemulihan Sepotong (Model Pemulihan Sederhana)

Skenario pemulihan sebagian melibatkan tahapan berikut:

  • Tahap awal (pulihkan dan pulihkan grup file utama dan semua grup file baca/tulis)

    Tahap awal melakukan pemulihan parsial. Urutan pemulihan parsial memulihkan grup file utama, semua grup file sekunder baca/tulis, dan (opsional) beberapa grup file baca-saja. Selama tahap awal, seluruh database harus offline. Setelah tahap awal, database online, dan grup file yang dipulihkan tersedia. Namun, setiap grup file baca-saja yang belum dipulihkan, tetap offline.

    Pernyataan RESTORE pertama pada tahap awal harus melakukan hal berikut:

    • Gunakan cadangan database parsial atau penuh yang berisi grup file utama dan semua grup file yang dibaca/ditulis pada saat pencadangan. Adalah umum untuk memulai urutan pemulihan parsial dengan memulihkan cadangan parsial.

    • Tentukan opsi PARSIAL, yang menunjukkan awal pemulihan sebagian.

    Catatan

    Opsi PARSIAL melakukan pemeriksaan keamanan yang memastikan bahwa database yang dihasilkan cocok untuk digunakan sebagai database produksi.

    • Tentukan opsi READ_WRITE_FILEGROUPS jika cadangan adalah cadangan database lengkap.
  • Saat database online, Anda dapat menggunakan satu atau beberapa pemulihan file online untuk memulihkan dan memulihkan file baca-saja offline yang bersifat baca-saja pada saat pencadangan. Waktu pemulihan file online bergantung pada kapan Anda ingin data online.

    Apakah Anda harus memulihkan data ke file bergantung pada hal berikut:

    • File baca-saja yang valid yang konsisten dengan database dapat dibawa secara online secara langsung dengan memulihkannya tanpa memulihkan data apa pun.

    • File yang rusak atau tidak konsisten dengan database harus dipulihkan sebelum dipulihkan.

Contoh

Pemulihan Sepotong Di Bawah Model Pemulihan Penuh

Di bawah model pemulihan penuh atau model pemulihan yang dicatat secara massal, pemulihan sebagian tersedia untuk database apa pun yang berisi beberapa grup file dan Anda dapat memulihkan database ke titik waktu mana pun. Urutan pemulihan pemulihan sebagian bersifat sebagai berikut:

  • Urutan pemulihan parsial

    Urutan pemulihan parsial memulihkan grup file utama dan, secara opsional, beberapa grup file sekunder.

    Pernyataan RESTORE DATABASE pertama harus melakukan hal berikut:

    • Tentukan opsi PARSIAL. Ini menunjukkan awal pemulihan sebagian.

    • Gunakan cadangan database lengkap yang berisi grup file utama. Praktik umumnya adalah memulai urutan pemulihan parsial dengan memulihkan cadangan parsial.

    • Untuk memulihkan ke titik waktu tertentu, Anda harus menentukan waktu dalam urutan pemulihan parsial. Setiap langkah berturut-turut dari urutan pemulihan harus menentukan titik waktu yang sama.

  • Urutan filegroup-restore membawa grup file tambahan online ke titik yang konsisten dengan database.

    Dalam edisi Enterprise, grup file sekunder offline apa pun dapat dipulihkan dan dipulihkan saat database tetap online. Jika file baca-saja tertentu tidak rusak dan konsisten dengan database, file tidak harus dipulihkan. Untuk informasi selengkapnya, lihat Memulihkan Database Tanpa Memulihkan Data (Transact-SQL).

Menerapkan Pencadangan Log

Jika grup file baca-saja telah dibaca-saja karena sebelum cadangan file dibuat, menerapkan cadangan log ke grup file tidak perlu dan dilewati oleh pemulihan file. Jika grup file bersifat baca/tulis, rantai cadangan log yang tidak terputus harus diterapkan ke pemulihan penuh atau diferensial terakhir untuk meneruskan grup file ke file log saat ini.

Contoh

Melakukan Pemulihan Sepotong Database yang Model Pemulihannya Telah Dialihkan dari Sederhana ke Penuh

Anda dapat melakukan pemulihan sepotong database yang telah dialihkan dari model pemulihan sederhana ke model pemulihan penuh sejak pencadangan parsial atau database penuh. Misalnya, pertimbangkan database yang Anda lakukan langkah-langkah berikut:

  1. Buat cadangan parsial (backup_1) dari database model sederhana.

  2. Setelah beberapa waktu, ubah model pemulihan menjadi penuh.

  3. Buat cadangan diferensial.

  4. Mulai mengambil cadangan log.

Setelah itu, urutan berikut valid:

  1. Pemulihan parsial yang menghilangkan beberapa grup file sekunder.

  2. Pemulihan diferensial diikuti oleh pemulihan lain yang diperlukan.

  3. Kemudian, pemulihan file grup file sekunder baca/tulis DENGAN NORECOVERY dari cadangan parsial backup_1

  4. Pencadangan diferensial diikuti oleh cadangan lain yang dipulihkan dalam urutan pemulihan piecemeal asli untuk memulihkan data hingga titik pemulihan asli.

Lihat juga

Terapkan Pencadangan Log Transaksi (SQL Server)
RESTORE (Transact-SQL)
Memulihkan Database SQL Server ke Titik Waktu (Model Pemulihan Penuh)
Gambaran Umum Pengembalian dan Pemulihan (SQL Server)
Merencanakan dan Melakukan Urutan Pemulihan (Model Pemulihan Penuh)