Aracılığıyla paylaş


Nasıl yapılır: Hata noktası için (Transact-SQL) geri yükleme

Bu konuda hata geri yükleme açıklar.Konu, tam veya toplu günlük kurtarma modeli kullanan veritabanları için geçerlidir.

Başarısızlık noktasına kadar geri yükleme yüklemek için

  1. Aşağıdaki temel çalıştırarak geri tail günlüğü yukarı Yedekleme deyim:

    BACKUP LOG <database_name>TO <backup_device> 
       WITH NORECOVERY, NO_TRUNCATE;
    
  2. Tam veritabanı geri yükleme yedek aşağıdaki temel çalıştırarak restore database deyim:

    RESTORE DATABASE <database_name> FROM <backup_device> 
       WITH NORECOVERY;
    
  3. İsteğe bağlı olarak, fark 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. Her işlem günlüğü uygulamaya dahil olmak üzere sonradan alınan günlük yedeği WITH norecovery restore log deyiminde belirterek, 1. adımda oluşturulur:

    RESTORE LOG <database_name> FROM <backup_device> 
       WITH NORECOVERY;
    
  5. Aşağıdaki restore database deyim çalıştırarak veritabanını kurtarmak:

    RESTORE DATABASE <database_name> 
       WITH RECOVERY;
    

Örnek

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

  1. Varsayılan kurtarma modeli, AdventureWorks2008R2 veritabanı olan Basit kurtarma modeli.Bu kurtarma modeli bir başarısızlık noktasına geri desteklemediği için küme AdventureWorks2008R2 Aşağıdaki komut dosyası çalıştırarak tam kurtarma modeli kullanmak üzere alter database deyim:

    USE master;
    GO
    ALTER DATABASE AdventureWorks2008R2 SET RECOVERY FULL;
    
  2. Aşağıdaki yedeği kullanarak veritabanını arkası tam bir veritabanı oluşturmak deyim:

    BACKUP DATABASE AdventureWork2008R2s TO DISK = 'C:\AdventureWorks2008R2_Data.bck';
    
  3. Olağan günlük yedeği oluştur:

    BACKUP LOG AdventureWorks2008R2 TO DISK = 'C:\AdventureWorks2008R2_Log.bck';
    

Aşağıdaki örnek oluşturduktan sonra daha önce oluşturulmuş yedekleri geri yükler bir sonradan alınan günlük yedeği , AdventureWorks2008R2 veritabanı.(Bu adım günlüğü disk erişilebilir varsayar.)

İlk olarak, örnek oluşturur bir sonradan alınan günlük yedeği veritabanının etkin günlük yakalar ve veritabanı geri yükleme durumunda bırakır.Daha sonra örnek veritabanının yedeğini geri yükler, daha önce oluşturulan günlük rutin yedek uygular ve geçerlidir sonradan alınan günlük yedeği.Son olarak, örnek veritabanı ayrı bir adım olarak kurtarır.

Not

En son geri yükler deyim bir parçası olarak bir veritabanını kurtarmak için varsayılan davranış olduğu yedek.

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