Nokta hatası altında tam kurtarma modeli (Transact-sql) bir veritabanı geri yükleme
Bu konu, başarısızlık noktasına geri açıklar. Konu, tam veya toplu oturum kurtarma modeli kullanan veritabanları için geçerlidir.
Başarısızlık noktasına geri yüklemek için
Aşağıdaki temel çalıştırarak geri günlük kuyruğu kadar yedekleme deyimi:
BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY, NO_TRUNCATE;
Aşağıdaki temel çalıştırarak tam veritabanı yedeği geri restore database deyimi:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
İsteğe bağlı olarak, fark veritabanı yedeğini geri yükleme aşağıdaki temel restore database deyimi çalıştırarak:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
Adım 1, WITH norecovery restore GNLK deyimi belirterek oluşturulan tail günlük yedekleme dahil her hareket günlüğü uygulanır:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;
Aşağıdaki restore database deyimi ç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:
Varsayılan kurtarma modeli AdventureWorks2012 veritabanı olan basit kurtarma modeli. Bu kurtarma modeli bir başarısızlık noktasına geri desteklemediğinden, set AdventureWorks2012 aşağıdakini çalıştırarak tam kurtarma modeli kullanmak üzere alter database deyimi:
USE master; GO ALTER DATABASE AdventureWorks2012 SET RECOVERY FULL;
Aşağıdaki backup deyimini kullanarak veritabanını arkası tam bir veritabanı oluşturun:
BACKUP DATABASE AdventureWorks2012 TO DISK = 'C:\AdventureWorks2012_Data.bck';
Olağan günlük yedeğini oluşturun:
BACKUP LOG AdventureWorks2012 TO DISK = 'C:\AdventureWorks2012_Log.bck';
Aşağıdaki örnek tail günlük yedeğini oluşturduktan sonra daha önce oluşturulmuş yedekleri geri yükler. AdventureWorks2012 veritabanı. (Bu adım günlüğü disk erişilebilir varsayar.)
İlk örnek, etkin günlüğün yakalar ve veritabanı geri yükleme durumunda bırakır veritabanı tail günlük yedeğini oluşturur. Sonra örnek, veritabanının yedeğini geri yükler, daha önce oluşturulan olağan günlük yedekleme uygular ve tail günlük yedekleme uygular. Son olarak, örnek veritabanı ayrı bir adım olarak kurtarır.
[!NOT]
Son yedeğini geri yükler deyimi bir parçası olarak bir veritabanını kurtarmak için varsayılan davranıştır.
/* Example of restoring a to the point of failure */
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.
BACKUP LOG AdventureWorks2012
TO DISK = 'C:\AdventureWorks2012_Log.bck'
WITH NORECOVERY;
GO
-- Step 2: Restore the full database backup.
RESTORE DATABASE AdventureWorks2012
FROM DISK = 'C:\AdventureWorks2012_Data.bck'
WITH NORECOVERY;
GO
-- Step 3: Restore the first transaction log backup.
RESTORE LOG AdventureWorks2012
FROM DISK = 'C:\AdventureWorks2012_Log.bck'
WITH NORECOVERY;
GO
-- Step 4: Restore the tail-log backup.
RESTORE LOG AdventureWorks2012
FROM DISK = 'C:\AdventureWorks2012_Log.bck'
WITH NORECOVERY;
GO
-- Step 5: Recover the database.
RESTORE DATABASE AdventureWorks2012
WITH RECOVERY;
GO