Pemulihan Piecemeal (SQL Server)

Berlaku untuk:SQL Server

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

Untuk informasi tentang pemulihan sepotong dan tabel yang dioptimalkan memori, lihat Pemulihan Sepotong Database Dengan Tabel yang Dioptimalkan Memori.

Pemulihan piecemeal memungkinkan database yang berisi beberapa grup file untuk dipulihkan dan dipulihkan secara bertahap. Pemulihan sepotong melibatkan serangkaian urutan pemulihan, dimulai dengan grup file utama dan, dalam beberapa kasus, satu atau beberapa grup file sekunder. Pemulihan piecemeal 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 langsung secara online.

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

Setiap pemulihan sepotong 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 sepotong, 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 oleh 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 piecemeal 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 sepotong biasanya mencakup satu atau beberapa urutan pemulihan, yang disebut urutan filegroup-restore. Anda dapat menunggu untuk melakukan urutan filegroup-restore 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 sepotong tergantung pada model pemulihan database. Untuk informasi selengkapnya, lihat "Pemulihan Sepotong Di Bawah Model Pemulihan Sederhana" dan "Pemulihan Potongan Di Bawah Model Pemulihan Penuh," nanti dalam topik ini.

Skenario Pemulihan Sepotong

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

  • Skenario pemulihan sepotong offline

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

  • Skenario pemulihan sepotong online

    Dalam pemulihan sepotong 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 sepotong 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).

  • Skenario pemulihan piecemeal OLTP Dalam Memori

    Untuk informasi tentang Pemulihan Sepotong database OLTP Dalam Memori, lihat Pencadangan dan Pemulihan Database Sepotong Dengan Tabel yang Dioptimalkan Memori.

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 sepotong 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 untuk 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 Sepotong Database yang Model Pemulihannya Telah Dialihkan dari Sederhana ke Penuh," nanti dalam topik ini.

Persyaratan untuk Pemulihan Sepotong 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 piecemeal tersedia untuk grup file sekunder baca-saja hanya jika berikut ini benar:

  • Apakah baca-saja ketika dicadangkan.

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

Untuk melakukan pemulihan sepotong, panduan berikut harus diikuti:

  • Sekumpulan cadangan lengkap untuk pemulihan sepotong database model pemulihan sederhana harus berisi yang berikut ini:

    • Cadangan database parsial atau lengkap 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 sepotong 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, grup file baca-saja apa pun yang belum dipulihkan, tetap offline.

    Pernyataan RESTORE pertama pada tahap awal harus melakukan hal berikut:

    • Gunakan cadangan database parsial atau lengkap 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 piecemeal.

    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 sepotong tersedia untuk database apa pun yang berisi beberapa grup file dan Anda dapat memulihkan database ke titik waktu mana pun. Urutan pemulihan pemulihan sepotong berulah 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 sepotong.

    • 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 bersifat baca-saja karena sebelum pencadangan file dibuat, menerapkan cadangan log ke grup file tidak perlu dan dilewati oleh pemulihan file. Jika grup file dibaca/ditulis, rantai cadangan log yang tidak terputus harus diterapkan ke pemulihan penuh atau diferensial terakhir untuk memajukan grup file ke file log saat ini. Untuk informasi selengkapnya tentang proses pemulihan, lihat Gambaran Umum Pemulihan dan Pemulihan (SQL Server).

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 sepotong asli untuk memulihkan data hingga titik pemulihan asli.

Lihat Juga

Menerapkan 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)
Gambaran Umum Pengembalian dan Pemulihan (SQL Server)