Tam veritabanı geri yükleme (tam kurtarma modeli) gerçekleştirme

Bir tam veritabanı geri yükleme yüklemesi yüklemesi hedefi tam veritabanı geri yükleme yüklemesi yüklemesi yüklemektir.Tam veritabanı geri yükleme süresi için çevrimdışı durumdadır.Herhangi bir parçasını veritabanı çevrimiçi duruma önce tüm verileri kurtarıldı veritabanı aynı noktada saat bölümlerdir ve hiç kaydedilmemiş hareketleri var tutarlı bir noktasına.

Tam kurtarma modeli altında veritabanı içinde belirli bir noktaya geri yüklenebilir saat.Zaman noktasında en son kullanılabilir yedek, belirli bir tarih ve saat veya işaretli hareket olabilir.

Güvenlik notuGüvenlik Notu

Eklemek veya bilinmeyen veya güvenilmeyen kaynaklardan gelen veritabanlarını geri yükleme öneririz.Bu veritabanları olabilir kötü niyetli kod içerebilecek yürütmek istenmeyen Transact-SQL kod ya da neden hata değiştirerek şemayı veya fiziksel veritabanı yapısı.Güvenilmeyen veya bilinmeyen bir veritabanından kullanın önce kaynak, çalışma dbcc checkdb bir benzerini sunucusundaki veritabanında ve ayrıca saklı yordamlar veya başka bir kullanıcı tarafından tanımlanan kod, veritabanı gibi bir kodu inceleyin.

Tam veritabanı geri yükleme

Tipik olarak, hata noktası için bir veritabanı kurtarma, aşağıdaki temel adımları içerir:

  1. (Tail günlüğü da bilinir) etkin işlem günlüğü yedekleyin.Bu oluşturur bir sonradan alınan günlük yedeği.Aktif işlem günlüğünü kullanılamıyorsa, o günlük bölümünde tüm hareketleri kaybolur.

    Önemli notÖnemli

    Altında toplu günlük kurtarma modeli, access veritabanındaki tüm veri dosyaları için toplu oturum işlemleri içeren herhangi bir günlüğü yedekleme gerektirir.Veri dosyalarını erişilemiyorsa, işlem günlüğü yedeklenemez.durum, Bu yana en son günlük yedeği yapılan tüm değişiklikleri el ile yineleme sahip.

    Daha fazla bilgi için bkz: Tail günlüğü yedekleri.

  2. En son tam veritabanı yedek veritabanı kurtarma olmadan geri yükleme (restore database database_name from backup_device WITH norecovery).

  3. Fark varsa, en son bir veritabanı kurtarma olmadan geri yükleme (restore database database_name from differential_backup_device WITH norecovery).

  4. İlk hareketi ile başlayan günlük yedeği hemen geri yedeklemeden sonra oluşturulmuş, günlükleri sıra norecovery ile geri yükleme.

  5. Veritabanını kurtarmak (restore database database_name WITH recovery).Alternatif olarak, bu adımı son günlük yedeği geri yükleme ile birleştirilebilir.

  6. tam veritabanı geri yükleme yüklemesi yüklemesi saat veya işaretli hareket günlük yedeği içinde bir noktaya genellikle kurtarılamaz.Ancak, Toplu Kaydedilmiş kurtarma modeli altında günlük yedeği toplu kaydedilmiş değişiklikler içeriyorsa, işaret-içinde-saat kurtarma mümkün değildir.Daha fazla bilgi için bkz: Bir veritabanını bir yedek içinde bir noktaya geri.

Bu işlem aşağıda gösterilmiştir.(1) Bir hata oluştuktan sonra bir sonradan alınan günlük yedeği (2) oluşturulur.Daha sonra veritabanını başarısızlık noktasına kadar geri yüklenir.Bu veritabanı yedek, bir sonraki farklıları yedek ve sonra fark yedek dahil olmak üzere gerçekleştirilen her günlük yedeği geri yükleme gerektirir sonradan alınan günlük yedeği.

Veritabanının tamamını hata zamanına geri yükleme

Tamamen bir veritabanını geri yüklerken, bir tek geri yükleme sırası kullanılmalıdır.Kritik seçenekler, aşağıdaki örnekte gösterildiği bir geri yükleme yükleme sırası , veritabanı geri yükleme başarısızlık noktasına kadar tam veritabanı geri yükleme yüklemesi yüklemesi senaryosu.Bir veya daha fazlasını geri yükleme aşamalarını üzerinden veri taşımak bir veya daha fazla geri yükleme işlemlerini geri yükleme sırası oluşur.Sözdizimi ve bu amaç için ilgili ayrıntılar atlanır.

Veritabanı geri ve İleri alındı.Fark veritabanı İleri alma azaltmak için kullanılan saat.Bu geri yükleme sırası İş kaybını ortadan kaldırmak için tasarlanmıştır; Son yedek, geri bir sonradan alınan günlük yedeği.

Basic geri geri yükleme sırası sözdizimi aşağıdaki gibidir:

  1. restore database veritabanı from full database backup WITH norecovery;

  2. restore database veritabanı from full_differential_backup WITH norecovery;

  3. restore log veritabanı from log_backup WITH norecovery;

    Her ek günlük yedeği için bu geri yükleme günlük adımı yineleyin.

  4. restore database veritabanı ile kurtarma;

Örnek

Aşağıdaki örnek için AdventureWorks2008R2 örnek veritabanı olan küme kurduğunuz yedeklenmiş veritabanı idi önce tam kurtarma modeli kullanmak üzereBu örnek oluşturur bir sonradan alınan günlük yedeği , AdventureWorks2008R2 veritabanı.Daha sonra örnek bir önceki tam Veritabanı yedeksi ve günlük yedeği geri yükler ve örnek geri yükler sonradan alınan günlük yedeği.Örnek veritabanı ayrı, son adımda kurtarır.

Not

Bu örnek, bir veritabanı yedek ve "Kullanarak veritabanı yedekleri altında tam kurtarma modeli" oluşturulan günlük yedeği kullanır Bölüm'de Tam veritabanı yedekleri.

Örnek ile başlayan bir alter database kurtarma modeli ayarlar için deyim FULL.

USE master;
--Create tail-log backup.
BACKUP LOG AdventureWorks2008R2 
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak'  
   WITH NORECOVERY; 
GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks2008R2 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak' 
  WITH FILE=1, 
    NORECOVERY;

--Restore the regular log backup (from backup set 2).
RESTORE LOG AdventureWorks2008R2 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak' 
  WITH FILE=2, 
    NORECOVERY;

--Restore the tail-log backup (from backup set 3).
RESTORE LOG AdventureWorks2008R2 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak'
  WITH FILE=3, 
    NORECOVERY;
GO
--recover the database:
RESTORE DATABASE AdventureWorks2008R2 WITH RECOVERY;
GO

Bir hata noktası için kurtarma

Bir-zaman içinde için kurtarma

Tam kurtarma modeli altında veritabanı belirli bir noktaya saat içinde günlük yedeği geri yüklenebilir.Zaman noktasında, belirli bir tarih ve saat, işaretli hareket veya günlük sıra numarası (SSN) olabilir.Daha fazla bilgi için bkz: Bir veritabanını bir yedek içinde bir noktaya geri.

sql Server'ın önceki sürümlerinden yedeklemeler için destek

De SQL Server 2008, bir veritabanını geri yükleme yüklemek yedek kullanılarak oluşturulmuş SQL Server 2000, SQL Server 2005, veya SQL Server 2008.Ancak, yedekleri ana, modeli ve msdb kullanılarak oluşturulan SQL Server 2000 veya SQL Server 2005 olamaz geri yüklenemedi tarafından SQL Server 2008.Ayrıca, SQL Server 2008 yedeklemeler edemiyor geri herhangi bir önceki sürüm tarafından SQL Server.

SQL Server 2008 bir önceki sürümlerinden daha farklı bir varsayılan yol kullanılır.Bu nedenle, varsayılan konumu ya da içinde oluşturulmuş bir veritabanını geri yükleme yüklemek için SQL Server 2000 veya SQL Server 2005 'yı, move seçeneği. kullanmanız gerekirYeni varsayılan yol hakkında daha fazla bilgi için bkz: Varsayılan ve sql Server adlandırılmış örnekleri için dosya konumları.

Not

Kullanılarak oluşturulmuş bir veritabanı yükseltme hakkında bilgi için SQL Server sürüm 7.0 veya daha önceki için SQL Server 2005için bkz: SQL Server 7.0 veya önceki veritabanları kopyalama.