Bagikan melalui


Pencadangan Diferensial (SQL Server)

Topik pencadangan dan pemulihan ini relevan untuk semua database SQL Server.

Pencadangan diferensial didasarkan pada pencadangan data lengkap terbaru sebelumnya. Cadangan diferensial hanya menangkap data yang telah berubah sejak pencadangan penuh tersebut. Pencadangan penuh di mana cadangan diferensial didasarkan dikenal sebagai dasar diferensial. Pencadangan penuh, kecuali untuk cadangan khusus salinan, dapat berfungsi sebagai dasar untuk serangkaian cadangan diferensial, termasuk cadangan database, cadangan parsial, dan cadangan file. Cadangan dasar untuk cadangan diferensial file dapat dimuat dalam cadangan penuh, cadangan file, atau cadangan parsial.

Keuntungan

  • Membuat cadangan diferensial bisa sangat cepat dibandingkan dengan membuat cadangan penuh. Cadangan diferensial hanya mencatat data yang telah berubah sejak pencadangan penuh pada cadangan diferensial didasarkan. Ini memfasilitasi pengambilan cadangan data yang sering, yang mengurangi risiko kehilangan data. Namun, sebelum memulihkan cadangan diferensial, Anda harus memulihkan basisnya. Oleh karena itu memulihkan dari cadangan diferensial harus mengambil lebih banyak langkah dan waktu daripada memulihkan dari cadangan penuh karena dua file cadangan diperlukan.

  • Cadangan database diferensial sangat berguna jika subset database dimodifikasi lebih sering daripada database lainnya. Dalam kasus ini, pencadangan database diferensial memungkinkan Anda sering mencadangkan tanpa overhead pencadangan database penuh.

  • Di bawah model pemulihan penuh, menggunakan cadangan diferensial dapat mengurangi jumlah cadangan log yang harus Anda pulihkan.

Gambaran Umum Pencadangan Diferensial

Cadangan diferensial menangkap status sejauh mana pun (koleksi delapan halaman yang berdekatan secara fisik) yang telah berubah antara kapan basis diferensial dibuat dan kapan cadangan diferensial dibuat. Ini berarti bahwa ukuran cadangan diferensial yang diberikan tergantung pada jumlah data yang telah berubah sejak dasar. Umumnya, semakin lama basis, semakin besar cadangan diferensial baru. Dalam serangkaian cadangan diferensial, jangkauan yang sering diperbarui kemungkinan berisi data yang berbeda di setiap cadangan diferensial.

Ilustrasi berikut menunjukkan cara kerja pencadangan diferensial. Gambar menunjukkan 24 tingkat data, 6 di antaranya telah berubah. Cadangan diferensial hanya berisi 6 tingkat data ini. Operasi pencadangan diferensial bergantung pada halaman bitmap yang berisi sedikit untuk setiap tingkatan. Untuk setiap jangkauan yang diperbarui sejak dasar, bit diatur ke 1 dalam bitmap.

Bitmap diferensial mengidentifikasi bitmap diferensial yang berubah sejauh

Catatan

Bitmap diferensial tidak diperbarui oleh cadangan khusus salinan. Oleh karena itu, cadangan khusus salinan tidak memengaruhi cadangan diferensial berikutnya.

Cadangan diferensial yang diambil cukup cepat setelah basisnya biasanya secara signifikan lebih kecil dari basis diferensial. Ini menghemat ruang penyimpanan dan waktu pencadangan. Namun, ketika database berubah dari waktu ke waktu, perbedaan antara database dan basis diferensial tertentu meningkat. Semakin lama waktu antara cadangan diferensial dan basisnya, semakin besar kemungkinan pencadangan diferensial. Ini berarti bahwa cadangan diferensial akhirnya dapat mendekati ukuran basis diferensial. Cadangan diferensial besar kehilangan keuntungan dari cadangan yang lebih cepat dan lebih kecil.

Ketika ukuran cadangan diferensial meningkat, memulihkan cadangan diferensial dapat secara signifikan meningkatkan waktu yang diperlukan untuk memulihkan database. Oleh karena itu, kami sarankan Anda mengambil cadangan penuh baru pada interval yang ditetapkan untuk membuat basis diferensial baru untuk data. Misalnya, Anda mungkin mengambil cadangan penuh mingguan dari seluruh database (yaitu, cadangan database lengkap) diikuti oleh serangkaian cadangan database diferensial reguler selama seminggu.

Pada waktu pemulihan, sebelum memulihkan cadangan diferensial, Anda harus memulihkan basisnya. Kemudian, pulihkan hanya cadangan diferensial terbaru untuk memajukan database ke waktu ketika cadangan diferensial tersebut dibuat. Biasanya, Anda akan memulihkan pencadangan penuh terbaru diikuti oleh cadangan diferensial terbaru yang didasarkan pada pencadangan penuh tersebut.

Cadangan Diferensial Database dengan Tabel Memory-Optimized

Untuk informasi tentang pencadangan diferensial dan database dengan tabel yang dioptimalkan memori, lihat Mencadangkan Database dengan tabel Memory-Optimized.

Pencadangan Diferensial database Read-Only

Untuk database baca-saja, pencadangan penuh yang digunakan saja lebih mudah dikelola daripada ketika digunakan dengan cadangan diferensial. Saat database bersifat baca-saja, pencadangan dan operasi lainnya tidak dapat mengubah metadata yang terkandung dalam file. Oleh karena itu, metadata yang diperlukan oleh cadangan diferensial, seperti nomor urutan log di mana cadangan diferensial dimulai (LSN dasar diferensial) disimpan dalam database master . Jika basis diferensial diambil ketika database bersifat baca-saja, bitmap diferensial menunjukkan lebih banyak perubahan daripada yang sebenarnya terjadi sejak pencadangan dasar. Data tambahan dibaca oleh cadangan, tetapi tidak ditulis ke cadangan, karena differential_base_lsn yang disimpan dalam tabel sistem set cadangan digunakan untuk menentukan apakah data benar-benar telah berubah sejak dasar.

Saat database baca-saja dibangun kembali, dipulihkan, atau dicopot dan dilampirkan, informasi dasar diferensial hilang. Ini terjadi karena database master tidak disinkronkan dengan database pengguna. Mesin database SQL Server tidak dapat mendeteksi atau mencegah masalah ini. Cadangan diferensial yang lebih baru tidak didasarkan pada pencadangan penuh terbaru dan dapat memberikan hasil yang tidak terduga. Untuk membuat basis diferensial baru, kami sarankan Anda membuat cadangan database lengkap.

Praktik Terbaik untuk Menggunakan Cadangan Diferensial dengan Database Read-Only

Setelah Anda membuat cadangan database lengkap dari database baca-saja, jika Anda berniat membuat cadangan diferensial berikutnya, cadangkan database master .

Jika database master hilang, pulihkan sebelum Anda memulihkan cadangan diferensial database pengguna.

Jika Anda melepaskan dan melampirkan database baca-saja yang Anda rencanakan untuk nantinya menggunakan cadangan diferensial, segera setelah praktis, ambil cadangan database lengkap dari database baca-saja dan database master .

Tugas Terkait

Lihat juga

Gambaran Umum Pencadangan (SQL Server)
Pencadangan Database Lengkap (SQL Server)
Pemulihan Database Lengkap (Model Pemulihan Penuh)
Pemulihan Database Lengkap (Model Pemulihan Sederhana)
Pencadangan Log Transaksi (SQL Server)