Aracılığıyla paylaş


İşlem Günlüğü Yedeğini Geri Yükleme (SQL Server)

Şunlar için geçerlidir: SQL Server

Bu konuda, SQL Server Management Studio veya Transact-SQL kullanarak SQL Server'da işlem günlüğü yedeklemesini geri yükleme işlemi açıklanmaktadır.

Bu Konuda

Başlamadan Önce

Önkoşullar

  • Yedeklemeler oluşturuldukları sırayla geri yüklenmelidir. Belirli bir işlem günlüğü yedeklemesini geri yükleyebilmeniz için önce aşağıdaki önceki yedeklemeleri kaydedilmemiş işlemleri (YANI NORECOVERY ile) geri döndürmeden geri yüklemeniz gerekir:

    • Belirli bir işlem günlüğü yedeğinden önce alınan tam veritabanı yedeklemesi ve varsa son değişiklik yedeklemesi. En son tam veya diferansiyel veritabanı yedeklemesi oluşturulmadan önce, veritabanı tam kurtarma modelini veya toplu günlüğe alınmalı kurtarma modelini kullanıyor olmalıdır.

    • Tam veritabanı yedeklemesi veya (eğer geri yüklerseniz) değişiklik yedeklemesi sonrasında ve belirli bir işlem günlüğü yedeklemesi öncesinde alınan tüm işlem günlüğü yedeklemeleri. Günlük yedeklemeleri, günlük zincirinde boşluk olmadan oluşturuldukları sırada uygulanmalıdır.

      İşlem günlüğü yedeklemeleri hakkında daha fazla bilgi için bkz. İşlem Günlüğü Yedeklemeleri (SQL Server) ve İşlem Günlüğü Yedeklemeleri Uygulama (SQL Server).

Security

Permissions

GERI YÜKLEME izinleri, üyelik bilgilerinin sunucu tarafından her zaman kullanılabilir olduğu rollere verilir. Sabit veritabanı rolü üyeliği yalnızca veritabanı erişilebilir ve hasarsız olduğunda denetlenebildiğinden ve RESTORE yürütülürken her zaman böyle olmadığından, db_owner sabit veritabanı rolünün üyeleri RESTORE izinlerine sahip değildir.

SQL Server Management Studio'yu kullanma

Uyarı

Geri yüklemenin normal işlemi, Veritabanını Geri Yükle iletişim kutusundaki günlük yedeklemelerinin yanı sıra veri ve değişiklik yedeklemelerini seçmektir.

İşlem günlüğü yedeklemesini geri yüklemek için

  1. Microsoft SQL Server Veritabanı Altyapısı'nın uygun örneğine bağlandıktan sonra Nesne Gezgini'nde sunucu adına tıklayarak sunucu ağacını genişletin.

  2. Veritabanları'nı genişletin ve veritabanına bağlı olarak bir kullanıcı veritabanı seçin veya Sistem Veritabanları'nı genişletin ve bir sistem veritabanı seçin.

  3. Veritabanına sağ tıklayın, Görevler'in üzerine gelin, Geri Yükle'nin üzerine gelin ve ardından İşlem Günlüğünü Geri Yükle iletişim kutusunu açan İşlem Günlüğü'ne tıklayın.

    Uyarı

    İşlem Günlüğü gri görünüyorsa, önce tam veya değişiklik yedeğini geri yüklemeniz gerekebilir. Veritabanı yedekleme iletişim kutusunu kullanın.

  4. Genel sayfasındaki Veritabanı liste kutusunda veritabanının adını seçin. Yalnızca geri yükleme durumundaki veritabanları listelenir.

  5. Geri yükleneceği yedekleme kümelerinin kaynağını ve konumunu belirtmek için aşağıdaki seçeneklerden birine tıklayın:

    • Veritabanının önceki yedeklemelerinden

      Açılan listeden geri yükleneceği veritabanını seçin. Liste yalnızca msdb yedekleme geçmişine göre yedeklenmiş veritabanlarını içerir.

    • Dosyadan veya banttan

      Yedek cihazları seç iletişim kutusunu açmak için gözat (...) düğmesine tıklayın. Yedekleme medya türü kutusunda, listelenen cihaz türlerinden birini seçin. Yedekleme medya kutusu için bir veya daha fazla cihaz seçmek için Ekle'ye tıklayın.

      İstediğiniz cihazları Yedekleme medyası liste kutusuna ekledikten sonra, Genel sayfasına dönmek için Tamam'a tıklayın.

  6. Geri yükleneceği işlem günlüğü yedeklemelerini seçin kılavuzunda geri yükleneceği yedekleri seçin. Bu tabloda, seçili veritabanı için mevcut olan işlem günlüğü yedekleri gösterilir. Günlük yedeklemesi, ancak İlk LSN veritabanının Son LSN'sinden büyükse kullanılabilir. Günlük yedeklemeleri, içerdikleri günlük dizisi numaralarının (LSN) sırasına göre listelenir ve bu sırayla geri yüklenmelidir.

    Aşağıdaki tabloda kılavuzun sütun üst bilgileri listelenmektedir ve bunların değerleri açıklanmaktadır.

    Header Değer
    Geri yükleme Seçili onay kutuları geri yüklenecek yedekleme kümelerini gösterir.
    İsim Yedekleme kümesinin adı.
    Bileşen Yedeklenen bileşen: Veritabanı, Dosya veya <boş> (işlem günlükleri için).
    Veritabanı Yedekleme işlemine katılan veritabanının adı.
    Başlangıç Tarihi Yedekleme işleminin başladığı tarih ve saat, istemcinin bölgesel ayarında gösterilir.
    Bitiş Tarihi Yedekleme işleminin bittiği tarih ve saat, istemcinin bölgesel ayarında gösterilir.
    İlk LSN Yedekleme kümesi içindeki ilk işlemlerin günlük sıra numarası. Dosya yedeklemeleri için boş.
    Son LSN Yedek kümesindeki en son işlemin günlük sıra numarası. Dosya yedeklemeleri için boş.
    Kontrol noktası LSN Yedekleme oluşturulurken en son denetim noktasının günlük sıra numarası.
    Full LSN En son tam veritabanı yedeğinin log sıra numarası.
    Sunucu Yedekleme işlemini gerçekleştiren Veritabanı Altyapısı örneğinin adı.
    Kullanıcı Adı Yedekleme işlemini gerçekleştiren kullanıcının adı.
    Boyut Yedekleme kümesinin bayt cinsinden boyutu.
    Konum Birimdeki yedekleme kümesinin konumu.
    Bitiş tarihi Yedekleme kümesinin süresinin dolduğu tarih ve saat.
  7. Aşağıdakilerden birini seçin:

    • Belirli bir zaman

      Varsayılan değeri koruyun (Mümkün olan en son) veya Belirli bir tarih ve saati seçmek için Gözat düğmesine tıklayarak Belirli Bir Noktaya Geri Yükleme iletişim kutusunu açın.

    • İşaretli işlem

      Veritabanını önceden işaretlenmiş bir işleme geri yükleyin. Bu seçeneğin seçilmesi, seçili işlem günlüğü yedeklemelerinde kullanılabilen işaretli işlemlerin listelendiği bir kılavuz görüntüleyen İşaretli İşlem Seç iletişim kutusunu başlatır.

      Varsayılan olarak, geri yükleme işaretli işleme kadardır ancak bu işlem hariçtir. İşaretli işlemi de geri yüklemek için İşaretli işlemi dahil et'i seçin.

      Aşağıdaki tabloda kılavuzun sütun üst bilgileri listelenmektedir ve bunların değerleri açıklanmaktadır.

      Header Değer
      <boş> İşareti seçmek için bir onay kutusu görüntüler.
      İşlem İşareti İşlem işlendiğinde kullanıcı tarafından belirtilen işaretli işlemin adı.
      Tarih İşlemin işlendiği tarih ve saat. İşlem tarihi ve saati, istemci bilgisayarın tarih ve saatinde değil msdbgmarkhistory tablosunda kayıtlı olarak görüntülenir.
      Açıklama İşlem işlendiğinde kullanıcı tarafından belirtilen işaretli işlemin açıklaması (varsa).
      LSN İşaretlenen işlemin log sıra numarası.
      Veritabanı İşaretli işlemin işlendiği veritabanının adı.
      Kullanıcı Adı İşaretli işlemi gerçekleştiren veritabanı kullanıcısının adı.
  8. Gelişmiş seçenekleri görüntülemek veya seçmek için, Sayfa seçin bölmesinde Seçenekler'e tıklayın.

  9. Geri yükleme seçenekleri bölümünde seçenekler şunlardır:

    • Çoğaltma ayarlarını koruma (WITH KEEP_REPLICATION)

      Yayımlanan veritabanını, veritabanının oluşturulduğu sunucudan başka bir sunucuya geri yüklerken çoğaltma ayarlarını korur.

      Bu seçenek yalnızca kaydedilmemiş işlemleri geri alarak veritabanını kullanıma hazır bırakın... seçeneğiyle (daha sonra açıklanmıştır) kullanılabilir. Bu seçenek , KURTARMA seçeneğiyle bir yedeklemeyi geri yüklemeye eşdeğerdir.

      Bu seçeneğin işaretlenmesi, Transact-SQLRESTORE deyiminde KEEP_REPLICATION seçeneğinin kullanılmasıyla eşdeğerdir.

    • Her yedeklemeyi geri yüklemeden önce sor

      Her yedekleme kümesini geri yüklemeden önce (birinciden sonra), bu seçenek geri yükleme dizisine devam etmek isteyip istemediğinizi belirtmenizi isteyen Geri Yüklemeye Devam Et iletişim kutusunu getirir. Bu iletişim kutusunda bir sonraki medya kümesinin adı (varsa), yedekleme kümesi adı ve yedekleme kümesi açıklaması görüntülenir.

      Bu seçenek özellikle farklı medya kümeleri için bantları değiştirmeniz gerektiğinde kullanışlıdır. Örneğin, sunucuda yalnızca bir bant cihazı olduğunda bunu kullanabilirsiniz. Tamam'a tıklamadan önce devam etmeye hazır olana kadar bekleyin.

      Hayır'a tıklanması veritabanını geri yükleme durumunda bırakır. Size uygun olarak, tamamlanan son geri yüklemeden sonra geri yükleme dizisine devam edebilirsiniz. Sonraki yedekleme bir veri veya değişiklik yedeklemesiyse Veritabanını Geri Yükle görevini yeniden kullanın. Sonraki yedekleme bir günlük yedeklemesiyse İşlem Günlüğünü Geri Yükle görevini kullanın.

    • Geri yüklenen veritabanına erişimi kısıtlama (WITH RESTRICTED_USER)

      Geri yüklenen veritabanını yalnızca db_owner, dbcreator veya sysadmin üyelerinin kullanımına açar.

      Bu seçeneğin işaretlenmesi, Transact-SQLRESTORE deyiminde RESTRICTED_USER seçeneğinin kullanılmasıyla eş anlamlıdır.

  10. Kurtarma durumu seçenekleri için, geri yükleme işleminden sonra veritabanının durumunu belirtin.

    • Kaydedilmemiş işlemleri geri alarak veritabanını kullanıma hazır bırakın. Ek işlem günlükleri geri yüklenemez. (KURTARMA ILE GERI YÜKLEME)

      Veritabanını kurtarır. Bu seçenek, Transact-SQLRESTORE deyimindeki RECOVERY seçeneğiyle eşdeğerdir.

      Bu seçeneği yalnızca geri yüklemek istediğiniz günlük dosyalarınız yoksa seçin.

    • Veritabanını çalışma dışı bırakın ve kaydedilmemiş işlemleri geri almayın. Ek işlem günlükleri geri yüklenebilir. (NORECOVERY ile GERİ YÜKLEME)

      Veritabanını RESTORING durumunda, kurtarılmamış olarak bırakır. Bu seçenek, Transact-SQLRESTORE deyiminde NORECOVERY seçeneğinin kullanılmasıyla eşdeğerdir.

      Bu seçeneği belirlediğinizde , Çoğaltma ayarlarını koru seçeneği kullanılamaz.

      Önemli

      Yansıtma veya ikincil veritabanı için her zaman bu seçeneği belirtin.

    • Veritabanını salt okunur modda bırakın. Kaydedilmemiş işlemleri geri alın, ancak kurtarma etkilerinin geri alınabilmesi için geri alma eylemlerini bir dosyaya kaydedin. (YEDEKTE GERİ YÜKLEME)

      Veritabanını bekleme durumunda bırakır. Bu seçenek, Transact-SQLRESTORE deyiminde BEKLEME seçeneğinin kullanılmasıyla eşdeğerdir.

      Bu seçeneğin belirtilmesi için bir bekleme dosyası belirtmeniz gerekir.

  11. İsteğe bağlı olarak, Bekleme dosyası metin kutusunda bir hazır bekleyen dosya adı belirtin. Veritabanını salt okunur modda bırakırsanız bu seçenek gereklidir. Hazır bekleyen dosyaya göz atabilir veya metin kutusuna yol adını yazabilirsiniz.

Transact-SQL Kullanımı

Önemli

Belirsizliği ortadan kaldırmak için her RESTORE deyiminde her zaman WITH NORECOVERY veya WITH RECOVERY'yi açıkça belirtmenizi öneririz. Bu özellikle betik yazarken önemlidir.

İşlem günlüğü yedeklemesini geri yüklemek için

  1. İşlem günlüğü yedeklemesini uygulamak için RESTORE LOG deyimini yürüterek şunları belirtin:

    • İşlem günlüğünün uygulanacağı veritabanının adı.

    • İşlem günlüğü yedeklemesinin geri yükleneceği yedekleme cihazı.

    • NORECOVERY yan tümcesi.

    Bu deyimin temel söz dizimi aşağıdaki gibidir:

    GERİ YÜKLE DATABASE_NAME GÜNLÜK < BACKUP_DEVICE > İLE NORECOVERY.

    burada database_name veritabanının adıdır ve <backup_device>geri yüklenen günlük yedeğini içeren cihazın adıdır.

  2. Uygulamanız gereken her işlem günlüğü yedeklemesi için 1. adımı yineleyin.

  3. Geri yükleme dizinizdeki son yedeklemeyi geri yükledikten sonra veritabanını kurtarmak için aşağıdaki deyimlerden birini kullanın:

    • Veritabanını son RESTORE LOG prosedürünün bir parçası olarak geri yükleyin.

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;  
      GO  
      
    • Ayrı bir RESTORE DATABASE deyimi kullanarak veritabanını kurtarmak için bekleyin:

      RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;   
      RESTORE DATABASE <database_name> WITH RECOVERY;  
      GO  
      

      Veritabanını kurtarmayı beklemek, tüm gerekli günlük yedeklemelerini geri yüklediğinizi doğrulama fırsatı sunar. Belirli bir noktaya geri yükleme gerçekleştirirken bu yaklaşım genellikle önerilir.

    Önemli

    Yansıtma veritabanı oluşturuyorsanız kurtarma adımını atlayın. Yansı veritabanı RESTORING durumunda kalmalıdır.

Örnekler (Transact-SQL)

Varsayılan olarak, AdventureWorks2025 veritabanı basit kurtarma modelini kullanır. Aşağıdaki örnekler, veritabanının tam kurtarma modelini kullanacak şekilde değiştirilmesini aşağıda gösterildiği gibi gerektirir:

ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;  

A. İşlem günlüğü tek bir yedeklemesini uygulama

Aşağıdaki örnek, adlı AdventureWorks2025bir yedekleme cihazında AdventureWorks2022_1 bulunan tam veritabanı yedeğini kullanarak veritabanını geri yükleyerek başlar. Örnek daha sonra AdventureWorks2022_log adlı bir yedekleme cihazında bulunan ilk işlem günlüğü yedeklemesini uygular. Son olarak, örnek veritabanını kurtarır.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

B. Birden çok işlem günlüğü yedeğini uygulama

Aşağıdaki örnek, adlı AdventureWorks2025bir yedekleme cihazında AdventureWorks2022_1 bulunan tam veritabanı yedeğini kullanarak veritabanını geri yükleyerek başlar. Örnek, adlı AdventureWorks2022_logbir yedekleme cihazında bulunan ilk üç işlem günlüğü yedeklemesini birer birer uygular. Son olarak, örnek veritabanını kurtarır.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 3,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

İlgili Görevler

Ayrıca Bkz.

RESTORE (Transact-SQL)
İşlem Günlüğü Yedeklemelerini Uygulama (SQL Server)