Cadangan diferensial (SQL Server)

Berlaku untuk:SQL Server

Artikel 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 basis 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 jauh lebih cepat daripada 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 akan selalu 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 lengkap.

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 (kumpulan delapan halaman yang berdekatan secara fisik) yang telah berubah antara ketika basis diferensial dibuat dan ketika cadangan diferensial dibuat. Ini berarti bahwa ukuran cadangan diferensial tertentu tergantung pada jumlah data yang telah berubah sejak dasar. Umumnya, semakin tua basisnya, semakin besar cadangan diferensial baru. Dalam serangkaian cadangan diferensial, tingkat 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 enam tingkat data ini. Operasi pencadangan diferensial bergantung pada halaman bitmap yang berisi sedikit untuk setiap tingkatan. Untuk setiap tingkat yang diperbarui sejak dasar, bit diatur ke 1 dalam bitmap.

Diagram of how the differential bitmap identifies changed extents.

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 dapat 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 pada 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 cadangan penuh terbaru diikuti oleh cadangan diferensial terbaru yang didasarkan pada pencadangan penuh tersebut.

Cadangan diferensial database dengan tabel memori yang dioptimalkan

Untuk informasi tentang pencadangan diferensial dan database dengan tabel yang dioptimalkan memori, lihat Mencadangkan Database dengan Tabel yang Dioptimalkan Memori.

Cadangan diferensial database baca-saja

Untuk database baca-saja, pencadangan penuh yang digunakan saja lebih mudah dikelola daripada saat 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 master database. Jika basis diferensial diambil ketika database bersifat baca-saja, bitmap diferensial menunjukkan lebih banyak perubahan daripada yang terjadi sejak pencadangan dasar. Data tambahan dibaca oleh cadangan, tetapi tidak ditulis ke cadangan, karena differential_base_lsn disimpan dalam tabel sistem set cadangan digunakan untuk menentukan apakah data telah berubah sejak dasar.

Saat database baca-saja dibangun kembali, dipulihkan, atau dilepas dan dilampirkan, informasi basis diferensial hilang. Ini terjadi karena database tidak disinkronkan master 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 baca-saja

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

master Jika database 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 master database.

Baca juga