Saya baru saja membaca banyak dokumentasi MSDN dan saya pikir saya mengerti model pemulihan yang berbeda dan konsep rantai cadangan. Saya masih punya satu pertanyaan:
Apakah cadangan database lengkap memotong log transaksi (menggunakan mode pemulihan penuh)?
Jika ya: Di mana ini disebutkan dalam MSDN? Yang bisa saya temukan adalah bahwa hanya LOG CADANGAN yang memotong log.
Jika tidak: Mengapa? Karena cadangan basis data lengkap memulai rantai cadangan baru, apa gunanya menjaga transaksi yang diselesaikan sebelum cadangan penuh aktif di log?
sumber
Cadangan lengkap TIDAK memotong log, Anda harus melakukan operasi log cadangan. Cadangan penuh TIDAK mengatur ulang rantai log - yang akan benar-benar mengacaukan replikasi / pengiriman log, dll.
Anda harus melihat dari dekat bagaimana SQL Server melakukan backup tetapi tahu bahwa transaksi dalam penerbangan / berjalan lama tidak termasuk dalam cadangan (jika tidak, cadangan mungkin tidak pernah lengkap) sehingga tidak cukup akurat untuk mengatakan bahwa cadangan penuh dari suatu database online dijamin membuat cadangan log berikutnya menjadi usang.
http://msdn.microsoft.com/en-us/library/ms175477.aspx
sumber
Dari pemahaman saya satu-satunya hal yang memotong log transaksi adalah cadangan log .
Cadangan lengkap hanya menyalin cukup dari log sehingga konsisten secara transaksi, karena perlu beberapa saat agar operasi pencadangan selesai & pada waktu itu, halaman yang disalin mungkin telah berubah.
Anda masih memerlukan cadangan log untuk pemulihan waktu secara tepat waktu.
Saya tidak memiliki MSDN untuk ditautkan, tetapi saya dapat menautkan Anda ke blog Paul Randal , yang merupakan pengembang di tim SQL Server, menulis DBCC CHECKDB dan bagian-bagian dari Buku Daring.
Dia juga menjawab pertanyaan di forum ini, sehingga itu akan menjadi otoritas yang lebih baik daripada informasi tangan ke-2 / ke-3 dari saya :)
sumber
Orang sering memiliki kesalahpahaman tentang cadangan lengkap dan cadangan log. Agar cadangan berfungsi dalam
FULL
model pemulihan cadangan, t-log harus digunakan, karena selama cadangan mungkin masih ada transaksi yang terjadi di dalam basis data (kecuali jika Anda melakukanCOLD
cadangan yang disebut ketika Anda mematikan basis data). Oracle menggunakan konsep yang sama ketika Anda memiliki database dalamARCHIVELOG
mode. Urutan cadangan bermuara di bawah ini:Itulah alasan mengapa log-t tidak secara default terpotong / menyusut, karena mereka adalah bagian vital dari kelanjutan transaksi selama fase cadangan.
sumber
Jangan bingung memotong log dengan menyusutkan log.
Untuk TRUNCATE adalah untuk menghapus transaksi dalam log yang sebelum pos pemeriksaan terakhir, (pos pemeriksaan adalah ketika transaksi memerah ke database itu sendiri). Ini dilakukan dengan menggunakan perintah CADANGAN.
Untuk SHRINK log adalah untuk mengurangi ukuran file log yang sebenarnya. Ini dilakukan dengan menggunakan perintah DBCC.
sumber
Pada dasarnya Anda tidak perlu membuat penyusutan log transaksi secara otomatis setiap kali karena log transaksi membutuhkan ruang untuk bekerja dan jika Anda memotong log otomatis, log itu akan tetap berukuran hampir sama.
sumber