SQL Server İşlem Yedekleri ve Günlükler


12

Orta düzeyde iş açısından kritik bir SQL Server 2008 veritabanı devralmıştım ve kafamı yedekleme planlaması etrafında sarmaya çalışıyorum. (Ben bir geliştiriciyim, DBA değil.)

Sistemimizin şu anda kurulma şekli iki yedekleme sistemi vardır:

  1. Haftalık tam yedeklemeler ( .bak) ve saatlik işlem günlüğü ( .trn) yedekleri. Bu yedeklemelerin birkaç kümesini saklıyoruz ve bunlar düzenli olarak tesis dışında gönderiliyor.
  2. .ldfKurtarma modeli olarak ayarlanmış SQL Server günlükleri ( ) Full. Bu dosya ana .mdfdosyadan ayrı bir sürücüdedir , ancak başka şekilde yedeklenmez.

Acil bir geri yükleme durumunda (veya bir dev makineye yedekleri geri yüklerken), prosedürüm .bakdosyaları kullanmak ve .trn dosyalarını uygulamaktır. Bu prosedürü nispeten basit hale getiren bir senaryomuz var.

Sorularım:

  1. Veritabanını .ldfdosyadan geri yüklemek mümkün müdür ? Ne için?
  2. Bu işlem günlüklerinin her ikisine de sahip olmak gereksiz yere gereksiz mi?
  3. .ldfDosyayı yedeklemek önemli mi?

Yanıtlar:


16

Hayır, ldf dosyasından bir veritabanını geri yüklemek mümkün değildir. Ldf dosyası, mdf dosyalarıyla birlikte geri yüklenir.

Hayır, iki farklı amacı olduğundan gereksiz değildir.

Tam yedeklemeler ve işlem günlüğü yedeklemeleri almak önemlidir. Yalnızca ldf dosyasının bir kopyasına sahip olmak veritabanını geri yüklemenize yardımcı olmaz.

Bir ldf dosyasının ne olduğuna ilişkin olarak, ldf işlem günlüğüdür. Bunu, veritabanınızdaki değişiklikleri kaydeden dairesel bir arabellek olarak düşünün. Bir satırı güncellediğinizde, değişiklik hemen ldf'ye yazılır. Gelecekte bir noktada (genellikle beş dakikadan az), değiştirilen veriler mdf dosyasına yazılır.

Sunucu çöktüyse veya bir elektrik kesintisi olursa, SQL başladığında, ldf'yi okur ve bu değişiklikleri yeniden uygular (REDO).

Ayrıca, tamamlanmamış bir işleminiz varsa ve sunucu çökerse, veritabanını tutarlı hale getirmek için bu işlem tarafından yapılan tüm değişikliklerin geri alınması gerekir. Ldf dosyası da bu göreve sahiptir. (GERİ ALMA)

Yukarıda ldf dosyasının dairesel olduğunu söylemiştim. Bir işlem günlüğü yedeği (.trn) almak ldf dosyasının bir bölümünü kopyalar. Bir trn dosyası güvenli bir şekilde oluşturulduktan sonra sql, ldf dosyasının bu bölümünü yeniden kullanabilir. Trn yedekleri dizisi, birlikte veritabanında yapılan her değişikliği kaydeden bir zincir oluşturur. Tabii ki, hiç bir işlem günlüğü yedeği almadıysanız, ldf dosyası büyür ve büyür ve büyür.

Bir felaket senaryosunda, tam yedeklemenin geri yüklenmesi, tam yedeklemenin bittiği andan itibaren veritabanının bir kopyasını alır. Daha sonra trn dosyalarını sırayla geri yükleyebilir ve veritabanını en son trn yedeklemesini içeren herhangi bir noktaya aktarabilirsiniz.

Bazı önemli ayrıntılar üzerinde göz kamaştırıyorum, ama gist ldf veritabanında son değişiklikleri kaydeden çalışan bir dosya olmasıdır. Trn dosyaları, ldf'nin ldf içindeki alanı yeniden kullanabilmesi için güvenli tutacağınız varsayımı altında yapılan ldf bölümlerinin kopyalarıdır ve felaket olursa, alternatif bir konuma sahip olursunuz.


2
+1 Çok güzel bir cevap. Ekleyeceğim tek şey, bir DBA "Veritabanı" dediğinde .mdf (veri dosyası) ve .ldf (günlük dosyası) dosyaları anlamına gelir. İki dosya birlikte tek bir birim oluşturur. Bazı veritabanlarında birden fazla .mdfs ve / veya .ndfs (ikincil veri dosyaları) bile görebilirsiniz. Bu dosyalar, veritabanı olarak adlandırılan tek bir birimi oluşturmak için de birleştirilir. Bunlardan herhangi birini kaybederseniz bir felaket modundasınız ve düzeltici önlem almanız gerekiyor.
Kenneth Fisher

+1 iyi yanıt, ayrıca bir sistemde çalışırken MS fiziksel sunucu çalışırken Norton gibi bir üçüncü taraf uygulamasıyla bile 'fiziksel dosyayı' (gerçek .mdf / .ndf / .ldfs) yedekleme hatası yapmayın. güvenli bir 'yedek'. Bu dosyalar son derece hassastır, bu nedenle gerçek MS SQL Server yedek dosyaları her zaman mümkün olduğunda oluşturulmalıdır.
Ali Razeghi

Teşekkürler, bu çok yardımcı. Normal SQL Server yedekleme planlarımız yeterli gibi görünüyor ve doğrudan .mdf veya .ldf dosyalarını kurcalamaya gerek yok.
Hank
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.