Ini adalah posting DBA.SE pertama saya, jadi tolong beri tahu saya jika ada kesalahan, terima kasih!
Saya seorang DBA baru (bukan pro TI, tidak ada orang lain di perusahaan yang melakukannya), jadi semakin dasar penjelasannya, semakin baik. Saya telah membaca tentang strategi cadangan basis data (atau, sebagaimana saya telah belajar menyebutnya, "kembalikan strategi"). Saya memahami apa yang dilakukan cadangan Cadangan, Diferensial, dan Log Transaksi, tetapi saya ingin tahu mengapa cadangan diferensial hanya dapat didasarkan pada cadangan lengkap terbaru.
Jika cadangan diferensial adalah segalanya yang telah berubah sejak cadangan penuh terakhir, lalu mengapa diferensial tidak dapat didasarkan pada cadangan apa pun yang saya pilih? Agar lebih jelas, saya bertanya tentang menentukan basis saat cadangan diambil , bukan saat memulihkan. Saya mengasumsikan bahwa ketika memulihkan Anda akan memilih basis yang benar dan diferensial yang sesuai untuk melakukan pengembalian (tidak menggunakan diferensial yang dibuat dari basis B untuk memulihkan dari basis A).
Apa alasan yang mencegah kemungkinan fungsionalitas ini? Saya pikir pasti ada alasan, saya tidak tahu apa itu.
Catatan: Saya mengerti bahwa markas tidak dapat ditentukan, tetapi pertanyaan saya adalah mengapa tidak ? (Saya juga tidak tertarik berdiskusi tentang "mengapa Anda mau?")
Analogi
Berikut ini analogi tentang bagaimana saya memahami cadangan diferensial:
Saya memiliki file Excel dengan beberapa data dalam sel.
Pada hari 1, saya membuat salinan file ini dan menyimpannya di tempat lain ("full backup").
Pada hari 2, saya melihat file dan membandingkannya dengan salinan cadangan yang saya buat pada hari 1, dan saya perhatikan semua sel yang telah berubah dan apa nilai-nilai baru mereka ("cadangan diferensial"). Saya tidak mencatat setiap perubahan yang dilakukan pada sel, hanya apa nilai akhirnya. Jika sel A1 dimulai sebagai "Alfred", berubah menjadi "Betty", "Charlie", lalu "Dave", saya hanya akan mencatat bahwa "A1 sekarang Dave".
Pada hari 3, saya membandingkan file saat ini dengan file cadangan lagi dan perhatikan perubahan ("cadangan diferensial" lain dengan basis yang sama dengan hari 2). Sekali lagi, hanya mencatat nilai akhir per sel pada saat diamati, tidak semua nilai sel telah sepanjang hari.
Pada hari ke 4, saya membandingkan lagi dan mencatat perubahan lagi. Melanjutkan dengan sel A1, sekarang tertulis "Sarah", bahkan jika itu 10 nama lain sepanjang hari, dan yang saya perhatikan adalah "Sekarang A1 adalah Sarah".
Pada hari ke 5, file saya menjadi kacau; jadi, saya melihat salinan cadangan yang saya buat pada hari 1, kemudian menyatakan terakhir dicatat pada hari 4, dan saya menerapkan perubahan yang dicatat pada salinan cadangan dan sekarang saya memiliki file "dikembalikan" seperti pada hari 4 Jadi, saya melihat cadangan yang dibuat pada hari 1, melihat bahwa pada hari 4 sel A1 berakhir sebagai "Sarah", dan mengubah sel cadangan A1 menjadi "Sarah".
Mengapa penting jika saya membuat salinan cadangan lain ("penuh") dari file pada hari ke 2? Mengapa masih tidak mungkin membandingkan (baca, "ambil cadangan diferensial") file pada hari 3 atau 4 dengan salinan yang dibuat pada hari 1? Seperti yang saya pahami, SQL Server akan meminta saya untuk membandingkan (ketika mengambil cadangan diferensial lain) ke cadangan penuh yang dibuat pada hari ke 2 (jika ada yang dibuat) - tidak ada pilihan lain.
COPY_ONLY
- Jika OP akan mengambil pencadangan penuh reguler pada hari 1 danCOPY_ONLY
pencadangan penuh pada hari 2 maka masalah apa yang akan terjadi dengan menerapkan diferensial yang lebih baru dari basis yang sama ke cadangan hari 2?