Apa jadwal cadangan SQL Server yang baik?

18

Tampaknya ada sejumlah besar informasi mengenai proses pengaturan tugas cadangan, tetapi tidak banyak informasi tentang gambaran besar cadangan database. Paling tidak, sulit untuk merumuskan permintaan mesin pencari yang memberi Anda informasi itu. Saya tahu ada tiga jenis cadangan:

  • Backup Database Lengkap
  • Cadangan Basis Data Diferensial
  • Cadangan Log Transaksi

Sepertinya saya harus menggunakan mereka bertiga. Jadi, apakah ini jadwal yang masuk akal?

  • 1 setiap bulan - Lakukanpencadangan basis data lengkap .
  • Setiap hari pada tengah malam - Lakukanpencadangan basis data diferensial .
  • Setiap 15 menit - Lakukanpencadangan log transaksi .

Dengan cara ini, jika database saya gagal pada, katakanlah, tanggal 12, saya hanya akan mengembalikan cadangan basis data penuh dari tanggal 1, lakukan 12 cadangan diferensial dari tanggal 1 hingga tanggal 12, dan akhirnya mengembalikan log transaksi terbaru (adalah diferensial log transaksi?).

Akhirnya, apakah cadangan basis data lengkap mandiri? yaitu Setelah saya membuat cadangan database lengkap pada tanggal 1 Februari, dapatkah saya menghapus semua file dari Januari? Tentu saja, saya menyimpan beberapa bulan sebelumnya untuk berjaga-jaga, tetapi pertanyaannya adalah konseptual.

atanamir
sumber

Jawaban:

24

Seperti semua hal dalam SQL Server, itu tergantung.

Hal pertama yang perlu Anda lakukan adalah memastikan Anda memahami apa yang dilakukan masing-masing jenis cadangan.

Buku Daring memiliki semua detail lengket , tapi inilah ringkasan saya.

Cadangan FULL berisi semua yang ada di dalam basis data. Cadangan YANG BERBEDA secara kumlatif TIDAK bersifat inkremental. Dalam contoh Anda, jika basis data Anda gagal pada tanggal 12, maka Anda hanya perlu mengembalikan cadangan lengkap dari tanggal 1 dan kemudian perbedaan terbaru pada tanggal 12, kemudian diikuti oleh semua cadangan transaksi log hingga kegagalan. Cadangan LOG TRANSAKSI hanya diperlukan untuk basis data yang menggunakan model pemulihan penuh atau log-massal. Jika Anda menggunakan model pemulihan sederhana maka cadangan log transaksi tidak diperlukan.

Sekarang setelah kami jelaskan ... Merancang jadwal cadangan benar-benar tergantung pada berapa banyak data yang Anda butuhkan untuk pemulihan dan seberapa cepat Anda perlu memulihkannya jika terjadi diaster. Saya akan merekomendasikan memulai dengan cadangan penuh setiap hari. Anda selalu dapat mengurangi frekuensinya nanti. Ingat cadangan diferensial bersifat kumlatif sejak penuh terakhir, jadi tergantung pada perubahan jumlah yang terjadi di basis data Anda, diferensial bisa lebih besar daripada cadangan penuh setelah beberapa hari. Jika Anda melakukan pencadangan penuh setiap hari, maka Anda mungkin tidak perlu menggunakan diferensial sama sekali; namun Anda masih bisa melakukannya sekali sehari dan menjadwalkannya pada jam 12 siang. Pencadangan log transaksi hanya mencadangkan log. Frekuensi pencadangan log akan menentukan berapa banyak data yang ingin Anda hilangkan jika terjadi kegagalan. Jika Anda menjalankan cadangan log setiap 15 menit, maka Anda akan mengharapkan kehilangan hingga 15 menit terakhir dari data yang berubah. 15 menit adalah frekuensi yang baik, tetapi setiap 30 menit bekerja dengan baik untuk lingkungan saya.

Seperti yang saya katakan sebelumnya, itu semua tergantung pada lingkungan Anda. Setelah Anda merancang dan mengatur jadwal cadangan Anda, ingatlah untuk mengujinya di server alternatif. Berlatihlah memulihkan cadangan penuh, diff, dan log Anda sehingga Anda tahu semuanya berfungsi seperti yang Anda rancang.

Books Online memiliki beberapa info bagus jika Anda berencana menggunakan Rencana Pemeliharaan, tetapi jika Anda benar-benar menginginkan fleksibilitas, lihat skrip cadangan Ola Hallengren .

Patrick Keisler
sumber
Terima kasih atas jawabannya. Saya punya satu pertanyaan kecil untuk Anda - apakah Anda membangun kembali / mengatur ulang indeks Anda terlalu cepat sebelum backup penuh?
atanamir
Ya sebelum cadangan lengkap adalah ide bagus. Dengan begitu jika basis data Anda gagal, maka cadangan lengkapnya sudah akan berisi semua perubahan indeks ulang.
Patrick Keisler
Dalam kebanyakan kasus log ekor aktif masih dapat dicadangkan setelah kegagalan, sehingga paparan kehilangan pekerjaan minimal meskipun Anda hanya membuat cadangan log setiap hari. Karena itu, biasanya tidak ada alasan untuk tidak sering mencadangkannya.
SoonDead