Tam kurtarma modelini ne zaman kullanmalı ve veritabanları için basit kurtarma modelini ne zaman kullanmalıyım?
Veritabanınızın zaman içinde kurtarılmasını istediğinizde tam kurtarma modelini kullanmalısınız. Veritabanınızın zaman içinde kurtarılması gerekmediğinde ve en son tam veya farklı yedeklemenin bir kurtarma noktası olarak yeterli olduğu durumlarda basit kurtarma modelini kullanmalısınız. (Not: Toplu olarak kaydedilen kurtarma modeliyle ilgili daha fazla bilgi için toplu referansa bakınız ).
SQL Server için Microsoft OLE DB Sağlayıcısı (0x80040E14) 'DATABASE NAME' veritabanı için işlem günlüğü dolu. Günlükteki alanın neden yeniden kullanılamadığını bulmak için sys.databases içindeki log_reuse_wait_desc sütununa bakın.
Bu hatanın nedeni (muhtemelen), işlem günlüğünüzü yedeklememiş olmanızdan kaynaklanmaktadır. Yedeklenmediğinde, işlem günlüğü dosyasını fiziksel olarak büyütmeye devam edecektir (otomatik çoğaltmanın etkinleştirilmesi ve maksimum boyutta izin verilmesi şartıyla) çünkü işlem günlüğünün "bölümlerinin" hiçbirini (sanal günlük dosyaları) yeniden kullanamaz. Yeniden kullanım için bu VLF'leri işaretleyebilir ve bir işlem günlüğü yedeklemesi yaptığınızda (ve aktif işlemler, bazı çoğaltma yönleri vb. Gibi birkaç diğer gereklilikler) işlem günlüğünün "çevrelenmesini" sağlar.
Günlüğü küçültmek ve veritabanını tekrar erişilebilir duruma getirmek için, kurtarma modelini FULL'dan BASİT olarak değiştirdim ve aşağıdaki komutla mantıksal dosya günlüğünü küçültdüm.
......
Yardımcı oldu, ama şimdi niye yardım ettiğini anlamam gerekiyor, bu durum NASIL başlamış ve gelecekte bunu önlemek için NASIL?
Bu size yardımcı oldu çünkü veritabanınızı basit kurtarma modeline ayarlayarak SQL Server’a artık zaman içinde kurtarmayı önemsemediğinizi ve sanal günlük dosyalarının artık etkin ve korumalı olarak işaretlenmesi gerekmediğinden emin olmanız gerektiğini söyledim. Şimdi bir kontrol noktası işlemi bu VLF'leri etkin değil olarak işaretler.
Bu MSDN referansından alıntı / alıntı :
Basit kurtarma modelinde, bazı faktörler günlük kesmeyi geciktirmiyorsa, otomatik bir kontrol noktası işlem günlüğünün kullanılmayan bölümünü keser. Buna karşılık, tam ve toplu olarak kaydedilen kurtarma modellerinde, bir günlük yedekleme zinciri oluşturulduktan sonra, otomatik kontrol noktaları günlük kesilmesine neden olmaz.
Daha sonra fiziksel bir veritabanı dosyasını daralttınız ve işlem günlüğünüzde boş yer olduğundan, NTFS dosyasını fiziksel olarak daraltmayı başardı.
Üzerine biraz zaman ayırmaya değer okuma:
- Kurtarma Modelleri
- İşlem Günlüklerini Yönetme (Gail Shaw)
- Günlük Kesmeyi Geciktirebilecek Faktörler
Düzenlemenizden Sonra EDIT :
Yeni kurtarma modeli ve veri bankası bu komut dosyasıyla çakışacak mı?
Bu BACKUP DATABASE
komut her iki kurtarma modeliyle de çalışacaktır. Rutin veritabanı küçültmek gelince ... YAPMAYIN !!!! Ciddiyetle, veritabanınızı buna göre boyutlandırın ve tam kurtarma modelini kullanıyorsanız, yalnızca işlem günlüğü boyutunu uzak tutmak için değil, aynı zamanda kurtarma noktası nesnelerini de karşılamak için rutin ve sık işlem günlüğü dosyaları yaptığınızdan emin olun.
Veritabanlarının başka bir yedeğini almıyoruz ve bu nedenle işlem kayıtlarını yapmıyoruz, değil mi?
Veritabanınız tam kurtarma modelini kullanıyorsa, evet işlem günlüğü yedeklemesi yapıyor olmalısınız. Veritabanınız basit kurtarma işleminde ise, fiziksel olarak işlem günlüğü yedeklemesi yapamazsınız.
Hangi kurtarma modelinin kullanılması gerektiğine (basit veya tam) gelince, bu kararı sizin için veremeyiz. Yalnızca siz, iş ekibiniz ve SLA'larınız yapabilirsiniz.