SQL Server (2005/2008): Tam yedekleme, tam kurtarma modunda günlüğü keser mi


41

Bir çok MSDN belgesini okudum ve farklı kurtarma modellerini ve bir yedek zincir kavramını anladığımı düşünüyorum. Hala bir sorum var:

Tam veritabanı yedeklemesi işlem günlüğünü kısaltıyor mu (tam kurtarma modunu kullanarak)?

  • Eğer öyleyse: MSDN’de bunun adı geçen yer Tek bulabildiğim, yalnızca YEDEKLEME LOG’ının kaydı kesmesiydi.

  • Hayır ise: Neden? Tam bir veritabanı yedeklemesi yeni bir yedekleme zincirini başlattığından , tam yedekleme işleminden önce kesilen işlemlerin kayıt defterinde etkin kalmasının amacı nedir?

Yanıtlar:


43

Hayır - kesinlikle değil. Yalnızca TAM veya BULK_LOGGED kurtarma modellerinde açık / truncate Günlüğü verir şey bir günlük yedekleme - istisna yok. Bu argümanı bir süre önce geri aldım ve uzun ve ayrıntılı bir blog yazısı ve bir açıklama ve günlük kaydı ve günlük yedeklemelerinin yanılgısına ilişkin Yanılgıları kendinize kanıtlamak için kullanabileceğiniz bir komut dosyası yayınladım : kendinizi nasıl ikna edersiniz .

Daha fazla soru ile takip etmekten çekinmeyin. BTW - ayrıca TechNet Magazine için SQL Server'da Günlük Kaydını ve Kurtarmayı Anlama üzerine yazdığım uzun makaleye bakın .

Teşekkürler


SÜPER CEVAPINIZ ve aklımdaki milyonlarca soruyu yanıtladığı makale için çok teşekkür ederim efendim.
M.Ali,

13

Tam yedekleme, günlüğü kesmez, bir yedekleme günlüğü işlemi gerçekleştirmeniz gerekir. Tam bir yedekleme, günlük zincirini yeniden ayarlamaz - bu, çoğaltma / günlük nakliyesini vb. Tamamen mahveder.

SQL Server'ın nasıl yedekleme yaptığını yakından incelemeniz gerekir, ancak uçuş / uzun süredir devam eden işlemlerin yedeklemeye dahil edilmediğini (aksi takdirde yedekleme hiçbir zaman tamamlanamayacağını) bildiğinizden emin olun. çevrimiçi veritabanının bir sonraki günlük yedeklemesini eski yapması garanti edilir.

http://msdn.microsoft.com/en-us/library/ms175477.aspx


8

Anladığım kadarıyla işlem günlüğünü kısaltan tek şey bir günlük yedeğidir .

Tam bir yedekleme yalnızca işlem günlüğünün yeterli düzeyde kopyalanmasını sağlar, böylece işlemin tutarlı olması gerekir, çünkü yedekleme işleminin tamamlanması biraz zaman alabilir ve bu süre içinde kopyalanan sayfalar değişmiş olabilir.

Şimdilik zaman kazanımı için günlük yedeklemeniz gerekir.

Bağlanacak bir MSDN’m yok ama SQL Server ekibinin geliştiricisi olan Paul Randal’ın bloguna bağlanabiliyorum , DBCC CHECKDB ve Books Online’ın parçaları.

Ayrıca bu forumdaki soruları cevaplıyor, bu yüzden benden 2. / 3. el bilgisinden sonra daha iyi bir otorite olur :)


5

İnsanlar genellikle tam yedekleme ve günlük yedeklemeleri hakkında yanlış anlarlar. Yedeklemenin FULLyedekleme kurtarma modelinde çalışması için, yedeklemeler sırasında veritabanında devam eden işlemler olabileceğinden (veritabanını COLDkapattığınızda sözde bir yedekleme yapmazsanız), t-loglar kullanılmalıdır . ARCHIVELOGModda bir veritabanınız varsa Oracle aynı konsepti kullanır . Bir yedeklemenin sırası bu şekilde kaynar:

  1. Yedeklemeyi başlat - tüm eylemleri gerçek dosyalarda durdurun ve t-log'lara yazın.
  2. Yedekleme yapın - tüm işlemler devam eder, ancak gerçek dosyalara yazılmaz, bunlar t-log'lara yazılır.
  3. Yedeklemeyi sonlandır - veritabanı işlemlerini gerçek dosyalara yazmaya devam et.
  4. Gerekirse, T-log'larındakileri gerçek dosyalara yıkayın.

T-log'ların varsayılan olarak kesilme / daraltılmamasının nedeni budur, çünkü yedekleme aşamasında işlem devamının hayati bir parçasıdır.


1

Günlüğü keserek günlüğü küçültmekle karıştırmayın.

  • TRUNCATE'e göre, son kontrol noktasından önceki işlem günlüğündeki işlemleri kaldırmaktır (işlemler veritabanının kendisine atıldığı zamanki kontrol noktası). BACKUP komutu kullanılarak yapılır.

  • SHRINK için günlük, gerçek günlük dosyası boyutunu küçültmektir. Bu DBCC komutları kullanılarak yapılır.


1

Temel olarak, işlem günlüğünün çalışması için alan gerektiğinden her seferinde işlem günlüğünü otomatik olarak küçültmeniz gerekmez ve otomatik olarak keserseniz, neredeyse aynı boyutta kalır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.