Log pengiriman DB besar - bagaimana dengan log?

8

Saat ini saya sedang mengatur pengiriman log dari DB besar (Kira-kira 1,5TB) dan saya bertanya-tanya apa yang dapat saya lakukan tentang file log.

Seperti berdiri, saya ingin melakukan langkah-langkah berikut:

  1. Ubah DB ke pemulihan LENGKAP
  2. Ambil cadangan FULL (5-6 jam) pada primary
  3. Kembalikan cadangan LENGKAP ke sekunder (meninggalkan di NORECOVERY)
  4. Ambil cadangan DIFF pada primer
  5. Kembalikan cadangan DIFF ke sekunder (masih di NORECOVERY)
  6. Inisialisasi pengiriman log menggunakan 'Basis data sudah diinisialisasi'

Masalahnya adalah saat saya mengambil cadangan lengkap, file log akan terisi lebih cepat daripada yang dapat diselesaikan oleh cadangan.

Opsi apa yang saya miliki agar file log tidak terisi? Bisakah saya mengambil cadangan log seperti biasa selama cadangan LENGKAP karena pengembalian DIFF akan mencakup transaksi apa pun yang terjadi selama jangka waktu itu? Adakah yang pernah melakukan ini sebelumnya dengan DB sebesar ini, ada tips / trik untuk membuatnya lebih mudah?

Kris Gruttemeyer
sumber

Jawaban:

9

Jika saya mengerti Anda dengan benar, masalah utama Anda adalah file log selama beberapa jam cadangan. Dari pernyataan pembukaan Anda, saya mengerti bahwa basis data 1,5 TB biasanya berjalan dalam pemulihan SEDERHANA, dan karenanya tidak ada cadangan log yang harus dilakukan.

Penafian: Saya belum pernah melakukan pengiriman log pada skala ini.

Tentu saja, Anda harus bertanya apakah Anda bisa mendapatkan lebih banyak ruang yang dialokasikan untuk file log Anda. Jika Anda bisa, maka hebat.

Namun, saya pikir modifikasi kecil dari rencana Anda, asalkan Anda sudah berjalan dalam model pemulihan SIMPLE dan / atau risiko model pemulihan SIMPLE selama beberapa jam tidak sia-sia, akan meringankan beberapa kekhawatiran Anda.

  1. Simpan (atau setel) DB dalam model pemulihan SEDERHANA.
  2. Ambil cadangan FULL (5-6 jam) pada primary
  3. Kembalikan cadangan LENGKAP ke sekunder (meninggalkan di NORECOVERY)
  4. Atur DB dalam model pemulihan LENGKAP
  5. Ambil cadangan DIFF pada primer
  6. Kembalikan cadangan DIFF ke sekunder (masih di NORECOVERY)
  7. Inisialisasi pengiriman log menggunakan 'Basis data sudah diinisialisasi'

Keuntungan nyata adalah:

  1. Tidak ada file log untuk dicadangkan selama cadangan LENGKAP besar.
  2. Beralih ke FULL sebelum memulai cadangan DIFF akan memberi Anda log yang diperlukan untuk memulai dan pertumbuhan terpanjangnya mungkin selama cadangan DIFF.

Mengenai kapan cadangan log dapat dimulai:

https://technet.microsoft.com/en-US/library/ms190729(v=SQL.105).aspx

Ini mengatakan: "Rantai log baru dimulai dengan cadangan basis data lengkap pertama setelah pembuatan basis data atau setelah beralih dari model pemulihan sederhana ke model pemulihan penuh atau log-massal."

Jadi, saya masih percaya bahwa ini akan berfungsi seperti yang dijelaskan. (Tidak identik, tetapi saya telah menggunakan cadangan diferensial untuk menutup celah ketika file log hilang, sehingga dapat membuat asal baru untuk cadangan log.)

(Ingat penafian saya, tentu saja.)

RLF
sumber
Saya pikir itu terdengar akan berhasil. Saya saat ini mengambil cadangan LENGKAP sekarang dan akan melaporkan kembali besok dengan hasilnya. Terima kasih atas bantuan RLF, saya akan menandainya sebagai jawaban segera setelah semuanya selesai, jika kita memiliki langkah atau 2 untuk menambah pembaca masa depan dengan masalah ini.
Kris Gruttemeyer
Tunggu, bukankah pemulihan FULL tidak aktif sampai cadangan FULL pertama diambil? Saya bertanya-tanya apakah beralih ke pemulihan penuh setelah cadangan penuh pertama tidak akan berpengaruh karena pemulihan penuh tidak diaktifkan hingga setelah cadangan pertama.
Kris Gruttemeyer
@KrisGruttemeyer - posting yang diperbarui
RLF
Salin itu, saya akan melaporkan kembali besok. Benda ini masih mendukung.
Kris Gruttemeyer
Pastikan Anda memiliki kompresi cadangan pada ...
Rob Farley