Kuyruk günlüğü yedeklemeleri (SQL Server)

Şunlar için geçerlidir: SQL Server

Bu makale yalnızca tam veya toplu günlüğe kaydedilen kurtarma modellerini kullanan SQL Server veritabanlarının yedeklenip geri yüklenmesiyle ilgilidir.

Kuyruk günlüğü yedeklemesi, henüz yedeklenmemiş günlük kayıtlarını (günlüğün kuyruğu) yakalayarak iş kaybını önler ve günlük zincirinin bütünlüğünü korur. SQL Server veritabanını en son zaman noktasına kurtarabilmeniz için önce işlem günlüğünün kuyruğunu yedeklemeniz gerekir. Kuyruk günlüğü yedeklemesi, veritabanının kurtarma planındaki son ilgi çekici yedeklemedir.

Geri yükleme senaryolarının hepsinde kuyruk günlüğü yedeklemesi gerekmeyebilir. Kurtarma noktası önceki bir günlük yedeklemesinde yer alırsa kuyruk günlüğü yedeğine ihtiyacınız yoktur. Bir veritabanını taşırken veya değiştirirken (üzerine yazmak) kuyruk günlüğü yedeklemesi gereksizdir ve en son yedeklemeden sonra belirli bir noktaya geri yüklemeniz gerekmez.

Kuyruk günlüğü yedeklemesi gerektiren senaryolar

Aşağıdaki senaryolarda kuyruk günlüğü yedeklemesi yapmanızı öneririz:

  • Veritabanı çevrimiçiyse ve veritabanında bir geri yükleme işlemi gerçekleştirmeyi planlıyorsanız, günlüğün kuyruğunu yedekleyerek başlayın. Çevrimiçi veritabanında hata oluşmasını önlemek için WITH NORECOVERY Transact-SQL deyiminin seçeneğini kullanmanız gerekir.

  • Veritabanı çevrimdışıysa ve başlatılamıyorsa ve veritabanını geri yüklemeniz gerekiyorsa, önce günlüğün kuyruğunu yedekleyin. Şu anda hiçbir işlem gerçekleşemediğinden WITH NO_TRUNCATE seçeneğini kullanın. NO_TRUNCATE , yalnızca kopyalanan işlem günlüğü yedeklemesi ile etkili bir şekilde aynıdır. WITH NORECOVERY şu anda hiçbir işlem gerçekleşemediği için kullanımı isteğe bağlıdır.

  • Veritabanı zarar görmüşse, BACKUP deyiminin WITH CONTINUE_AFTER_ERROR seçeneğini kullanarak kuyruk günlüğü yedeği almayı deneyin.

    Bozuk bir veritabanında, günlüğün kuyruğunun yedeklenmesi ancak günlük dosyalarının bozulmamış olması, veritabanının kuyruk günlüğü yedeklemelerini destekleyen bir durumda olması ve veritabanında toplu günlüğe kaydedilen hiçbir değişiklik içermemesi durumunda başarılı olabilir. Bir kuyruk günlüğü yedeklemesi oluşturulamazsa, en son günlük yedeklemesi sonrasında işlenen tüm işlemler kaybolur.

Aşağıdaki tabloda, NORECOVERY, NO_TRUNCATE ve CONTINUE_AFTER_ERROR seçenekleri BACKUP için özetlenmiştir.

YEDEK KAYDI seçeneği Comments
NORECOVERY Veritabanında geri yükleme işlemine devam etmek istediğinizde kullanın NORECOVERY . NORECOVERY veritabanını geri yükleme durumuna alır. Bu adım, kuyruk günlüğü yedeklemesi sonrasında veritabanının değişmeyeceğini garanti eder. NO_TRUNCATE veya COPY_ONLY seçeneği de belirtilmediği sürece günlük kesilir.

Önemli: veritabanının zarar görmesi veya çevrimdışı olması dışında kullanmaktan NO_TRUNCATEkaçının. ile geri yükleme gerçekleştirmeden önce özel erişim elde etmek için veritabanını NORECOVERY almanız gerekebilir. Geri yükleme işleminden sonra veritabanını yeniden çok kullanıcılı moda ayarlayın.
CONTINUE_AFTER_ERROR Yalnızca hasarlı veritabanının kuyruğunu yedeklerken kullanın CONTINUE_AFTER_ERROR .

Bozuk bir veritabanının günlüğünün son kısmını yedekleme işleminde, normalde günlük yedeklemelerinde yakalanan bazı meta verilere erişilemeyebilir. Daha fazla bilgi edinmek için sonraki bölüme bakın.

Tamamlanmamış yedekleme meta verilerine sahip kuyruk log yedeklemeleri

Veritabanı çevrimdışı, bozuk veya eksik veri dosyaları olsa bile kuyruk günlüğü yedeklemeleri günlüğün kuyruğunu yakalar. Bu, ve msdbgeri yükleme bilgileri komutlarından eksik meta veriler elde edilememesine neden olabilir. Ancak, yalnızca meta veriler eksiktir; yakalanan günlük ise tam ve kullanılabilir durumdadır.

Kuyruk günlüğü yedeklemesinde eksik meta veriler varsa, yedekleme kümesi tablosunda has_incomplete_metadata1 olarak ayarlanır. Ayrıca, RESTORE HEADERONLY çıkışında, HasIncompleteMetadata1 olarak ayarlanır.

Bir kuyruk günlüğü yedeklemesindeki meta veriler eksikse, backupfilegroup tablosunda kuyruk günlüğü yedeklemesi sırasında dosya gruplarıyla ilgili bilgilerin çoğu eksiktir. Tablo sütunlarının çoğu backupfilegroup, yalnızca anlamlı olan sütunlar ise şunlardır: NULL

  • backup_set_id
  • filegroup_id
  • type
  • type_desc
  • is_readonly

İlgili görevler

Kuyruk günlüğü yedeklemesi oluşturmak için bkz. Veritabanı Zarar Gördüğünde İşlem Günlüğünü Yedekleme (SQL Server).

İşlem günlüğü yedeklemesini geri yüklemek için bkz. İşlem Günlüğü Yedeklemesini (SQL Server) geri yükleme.