Aracılığıyla paylaş


Nasıl Yapılır: Nokta, başarısızlık için (Transact-SQL) geri yükleme yükleyin.

Bu konu, hata noktasına geri yükleme açıklar.Konu, tam veya toplu oturum kurtarma modelleri kullanan veritabanları için geçerlidir.

Hata noktasına geri yükleme yüklemek için

  1. Aşağıdaki temel çalıştırarak günlüğünün kuyruğunu yedeklemekk yedek deyim:

    BACKUP LOG <database_name>TO <backup_device> 
       WITH NORECOVERY, NO_TRUNCATE;
    
  2. Tam bir veritabanını geri yedek aşağıdaki temel çalıştırarak. VERİTABANINI GERİ YÜKLE deyim:

    RESTORE DATABASE <database_name> FROM <backup_device> 
       WITH NORECOVERY;
    
  3. Isteğe bağlı olarak farklı bir veritabanı geri yükleme yedek aşağıdaki temel geri yükleme DATABASE deyim çalıştırarak:

    RESTORE DATABASE <database_name> FROM <backup_device> 
       WITH NORECOVERY;
    
  4. ' De geri yükleme LOG WITH NORECOVERY'YI belirterek, 1. adımda oluşturduğunuz kuyruğu günlük yedek dahil olmak üzere, her bir işlem günlüğü uygulamak deyim:

    RESTORE LOG <database_name> FROM <backup_device> 
       WITH NORECOVERY;
    
  5. Veritabanına aşağıdaki geri yükleme DATABASE deyim çalıştırarak kurtarabilirsiniz:

    RESTORE DATABASE <database_name> 
       WITH RECOVERY;
    

Example

Örnek çalıştırmadan önce aşağıdaki hazırlıkların tamamlamalısınız:

  1. Varsayılan kurtarma modeli, AdventureWorks basit kurtarma modeli veritabanıdır. Bu kurtarma modeli bir hata noktasına geri desteklemediğinden, küme AdventureWorks Tam kurtarma modeli, aşağıdaki çalıştırarak kullanmak için alter VERİTABANI deyim:

    USE master;
    GO
    ALTER DATABASE AdventureWorks SET RECOVERY FULL;
    
  2. Aşağıdakileri kullanarak veritabanını arka tarafında tam bir veritabanı oluşturmak yedek ifadesi:

    BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdventureWorks_Data.bck';
    
  3. Olağan bir günlük oluşturma yedek:

    BACKUP LOG AdventureWorks TO DISK = 'C:\AdventureWorks_Log.bck';
    

Aşağıdaki örnek, yedek kuyruğu günlük oluşturduktan sonra daha önce oluşturulan s yükler yedek, AdventureWorks Veritabanı. (Bu adım, günlük diski erişilebilir varsayar.)

Ilk olarak, örnek bir kuyruk günlüğü oluşturur, yedek veritabanının etkin günlüğün yakalar ve veritabanını geri yükleme durumunda bırakır.Sonra örnek veritabanı yedeğini geri yükler, önceden oluşturulan olağan günlük yedek uygular ve sonradan alınan günlük yedeği uygular.Son olarak, örnek veritabanı içinde ayrı bir adım kurtarır.

Not

Varsayılan davranıştır parçası olarak bir veritabanı kurtarma deyim son yedek, geri yükler.

/* Example of restoring a to the point of failure */
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.
BACKUP LOG AdventureWorks
   TO DISK = 'C:\AdventureWorks_Log.bck'
   WITH NORECOVERY;
GO
-- Step 2: Restore the full database backup.
RESTORE DATABASE AdventureWorks
   FROM DISK = 'C:\AdventureWorks_Data.bck'
   WITH NORECOVERY;
GO
-- Step 3: Restore the first transaction log backup.
RESTORE LOG AdventureWorks
   FROM DISK = 'C:\AdventureWorks_Log.bck'
   WITH NORECOVERY;
GO
-- Step 4: Restore the tail-log backup.
RESTORE LOG AdventureWorks
   FROM  DISK = 'C:\AdventureWorks_Log.bck'
   WITH NORECOVERY;
GO
-- Step 5: Recover the database.
RESTORE DATABASE AdventureWorks
   WITH RECOVERY;
GO