Çok sayıda MSDN belgesini okudum ve farklı kurtarma modellerini ve bir yedekleme zinciri kavramını anladığımı düşünüyorum. Hala bir sorum var:
Tam veritabanı yedeklemesi işlem günlüğünü kısalıyor mu (tam kurtarma modunu kullanarak)?
Yanıtınız evet ise: MSDN'de bu nerede belirtilmiştir? Tüm bulabildiğim sadece YEDEKLEME GÜNLÜĞÜNün günlüğü kesmesiydi.
Hayır ise: Neden? Tam veritabanı yedeklemesi yeni bir yedekleme zinciri başlattığından, tam yedeklemenin öncesinde daha önce tam yedeklemenin etkin durumda tutulmasının anlamı nedir?
Hayır - kesinlikle değil. Yalnızca (TAM veya BULK_LOGGED kurtarma modellerinde günlüğün temizlenmesine/kısaltılmasına izin veren şey bir günlük yedeklemesidir - istisna yoktur. Bu tartışmayı bir süre önce yaptım ve kendinize kanıtlamak için kullanabileceğiniz bir açıklama ve komut dosyası içeren uzun ve ayrıntılı bir blog yazısı yayınladım Günlük ve günlük yedekleri hakkındaki yanlış düşünceler: kendinizi nasıl ikna edersiniz .
Daha fazla soru sormaktan çekinmeyin. Btw - ayrıca TechNet Magazine için yazdığım uzun makaleye bakın SQL Server'da Günlüğe Kaydetme ve Kurtarma'yı Anlama .
Teşekkürler
Tam bir yedekleme günlüğü KESMEZ, bir yedekleme günlüğü işlemi gerçekleştirmelisiniz. Tam bir yedekleme, günlük zincirini yeniden ayarlamaz - bu, çoğaltma/günlük gönderimini vb.
SQL Server'ın nasıl yedekleme yaptığını yakından incelemelisiniz, ancak uçuşta/uzun süren işlemlerin yedeklemeye dahil olmadığını bilmelisiniz (aksi takdirde yedekleme asla tamamlanmayabilir), bu nedenle tam bir yedeklemenin çevrimiçi veritabanı bir sonraki günlük yedeklemesini geçersiz kılacaktır.
Anlayışımdan işlem günlüğünü kesen tek şey bir günlük yedeklemesidir .
Tam yedekleme, işlemin tutarlı olması için günlüğün yalnızca yeterli kopyasını alır, çünkü yedekleme işleminin tamamlanması biraz zaman alır ve bu süre içinde kopyalanan sayfalar değişmiş olabilir.
Zamanında kurtarma için günlük yedeklemelerinize ihtiyacınız vardır.
Bağlantı kurmak için MSDN yok, ancak SQL Server ekibinde bir geliştirici olan Paul Randal'ın blog , DBCC CHECKDB ve Çevrimiçi Kitaplar bölümlerini yazdırabilirim.
Ayrıca bu forumdaki soruları cevaplıyor, bu yüzden benden 2./3. el bilgisinden daha iyi bir otorite olur :)
İnsanlar genellikle tam yedekleme ve günlük yedeklemeleri hakkında yanlış anlama yaparlar. Yedeklemenin
FULL yedek kurtarma modelinde çalışabilmesi için, t-günlükleri kullanılmalıdır, çünkü yedeklemeler sırasında veritabanında hala işlemler olabilir (
COLD yedek veritabanını kapattığınızda).
ARCHIVELOG modunda bir veritabanınız olduğunda Oracle aynı kavramı kullanır. Bir yedekleme sırası şu şekildedir:
Bu nedenle, t-günlükleri, yedekleme aşamasında işlemin devam etmesinin hayati bir parçası olduğu için varsayılan olarak kesilmez/küçültülmez.
Günlüğü kısaltarak günlüğü kısaltarak karıştırmayın.
TRUNCATE için, günlükteki son denetim noktasından önceki işlemleri kaldırmaktır (denetim noktası, işlemlerin veritabanının kendisine akıtıldığı zamandır). Bu BACKUP komutu kullanılarak yapılır.
KÜÇÜLMEK için günlük, gerçek günlük dosyası boyutunu küçültmektir. Bu DBCC komutları kullanılarak yapılır.
Temel olarak, işlem günlüklerinin çalışmak için alana ihtiyacı olduğu için otomatik olarak işlem günlüğünü küçültmeniz gerekmez ve otomatik olarak keserseniz neredeyse aynı boyutta kalacaktır.