Aracılığıyla paylaş


Nasıl Yapılır: Yeni konum ve Name (Transact-SQL) için bir veritabanı geri yükleme

Bu konu, tam bir veritabanını geri yükleme yüklemek açıklar yedek yeni bir konuma ve isteğe bağlı olarak, yeni bir adla.Bu yordam, bir veritabanını taşımak veya aynı sunucu üzerinde bir veritabanının bir kopyasını oluşturmak tanır örnek veya başka bir sunucuya örnek.Bir veritabanına taşıma hakkında önemli noktalar hakkında daha fazla bilgi için bkz: Veritabanı, yedek ve geri yükleme ile kopyalama.

Önkoşullar ve öneriler

  • Use caution when you execute ALTER ASSEMBLY to make sure that there is not a mismatch between the result of an expression and a value based on that expression stored in the assembly.ALTER ASSEMBLY changes the assembly version.The culture and public key token of the assembly remain the same.Daha fazla bilgi için bkz:SQL sunucu sertifikası ve asimetrik anahtarları.

  • Güvenlik amacıyla, değil iliştirin veya bilinmeyen veya güvenilmeyen kaynaklardan gelen veritabanlarını geri yükleme öneririz.Bu tür veritabanlarının yürütmek, kötü amaçlı kod içerebilir istenmeyen Transact-SQL şema veya fiziksel veritabanı yapısı değiştirerek kod veya neden hata. Bilinmeyen veya güvenilmeyen bir kaynaktan gelen bir veritabanı kullanmadan önce çalıştırın. dbcc checkdb nonproduction sunucusundaki veritabanında ve ayrıca ya da diğer kullanıcı tanımlı kod, veritabanında saklı yordamlar kodun sınayın.

' E yükselttikten sonra veritabanı uyumluluk düzey

Uyumluluk düzeyleri tempdb, modeli, msdb and Kaynak veritabanlarının, yükseltmeden sonra 100 olarak küme.The master system database retains the compatibility düzey it had before upgrade, unless that düzey was less than 80.Uyumluluk düzey Yönetici az 80 yükseltme işleminden önce olan, yükseltmeden sonra 80 küme.

Uyumluluğunu düzey 80 veya 90 yükseltme işleminden önce veritabanı kullanıcısı olan, onu aynı yükseltmeden sonra kalır.Uyumluluk düzey 70 veya yükseltilen veritabanında, yükseltme işleminden önce ise, uyumluluk düzey 80, desteklenen en düşük uyumluluk olduğu küme, düzey SQL Server 2008.

Not

Yeni user veritabanlarındaki uyumluluk düzeyini devralmayacaktır modeli veritabanıdır.

Yordamlar

Yeni bir konum ve adı için bir veritabanını geri yükleme yüklemek için

  1. Isteğe bağlı olarak, yedekleme dosyaları mantıksal ve fiziksel adlarını belirlemek küme tam veritabanı yedeği geri yükleme yüklemek istediğiniz içerir.Bu deyim, veritabanı ve günlük dosyalarını yedeklemede yer alan listesini verir küme.Temel sözdizimi aşağıdaki gibidir:

    GELEN filelistonly geri yükleme <backup_device> DOSYA = backup_set_file_number

    Not

    Elde edebilirsiniz backup_set_file_number birini bir yedek ayarlanýr GERİ YÜKLEME headeronly ekstresi.

    Bu deyim, çok sayıda WITH seçeneklerini de destekler.Daha fazla bilgi için bkz:geri yükleme FILELISTONLY (Transact-SQL).

  2. Use VERİTABANINI GERİ YÜKLE deyim tam veritabanı yedeği geri yükleme yüklemek için.Varsayılan olarak, veri ve günlük dosyaları özgün konumlarına geri yüklenir.Bir veritabanını yeniden konumlandırmak için , veritabanı dosyalarının her birinin konumlarını değiştirin ve varolan dosyaları çakışmaları önlemek için MOVE seçeneğini kullanın.

    Temel Transact-SQL Yeni bir konuma ve yeni bir ad için veritabanını geri yükleme için sözdizimi aşağıdaki gibidir:

    geri yükleme VERİTABANI new_database_name

    FROM backup_device [ ,...n ]

    [

       {

            [ RECOVERY | NORECOVERY ]

       [ , ] [DOSYA = {} backup_set_file_number | @backup\_set\_file\_number}

       [ , ] MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ,...n ]

       }

    ;

    Not

    Bir veritabanı başka bir diskte yeniden konumlandırmak hazırlanırken, yeterli boş alan kullanılabilir ve tüm olası çakışmaları, varolan dosyalarla tanımlamak doğrulamalısınız.Kullanarak ilgili bir GERİ YÜKLEME verifyonly ekstresi geri yükleme DATABASE deyiminizde kullanmayı planladığınız MOVE parametreleri belirtir.

    Aşağıdaki tabloda açısından bir veritabanını yeni bir konuma geri yükleme bu geri yükleme deyim bağımsız değişkenleri'ni açıklar.Bu bağımsız değişkenleri hakkında daha fazla bilgi için bkz: geri yükleme (Transact-SQL).

    • new_database_name
      Yeni veritabanının adı.

      Not

      Veritabanını farklı bir sunucuyu geri yüklüyorsanız, özgün veritabanı adı yerine yeni bir ad kullanabilirsiniz.

    • backup_device [ ,...n ]
      Virgülle ayrılmış listesini 1 için veritabanı yedeğinin geri yüklenmesi olacağı 64 yedek aygıtları belirtir.Fiziksel bir yedek aygıtı belirtebilirsiniz veya bir karşılık gelen mantıksal yedek aygıtı tanımlanan belirtebilirsiniz.Fiziksel bir yedek aygıtı belirlemek için , DISK veya TAPE seçeneğini kullanın:

      { DISK | TAPE } **=**physical_backup_device_name

      Daha fazla bilgi için bkz:yedek aygıtları.

    • { Kurtarma | NORECOVERY'YI}
      Veritabanı tam kurtarma modeli kullanır, veritabanını geri yükleme yükledikten sonra işlem günlüğü yedekleri uygulamak gerekebilir.Bu durumda, NORECOVERY'YI seçeneği belirtin.

      Aksi halde, varsayılan KURTARMA seçeneği kullanın.

    • FILE = { backup_set_file_number | @backup\_set\_file\_number }
      Yedekleme tanımlayan küme geri yüklenecek.For example, a backup_set_file_number of 1 indicates the first backup küme on the yedekleme ortamı and a backup_set_file_number of 2 indicates the second backup küme.Elde edebilirsiniz backup_set_file_number bir yedekleme küme kullanarak GERİ YÜKLEME headeronly ekstresi.

      Bu seçenek belirlenmezse, varsayılan ilk yedekleme kullanmaktır küme yedekleme aygıtındaki.

      Daha fazla bilgi için "Belirtme bir yedekleme küme," konusuna bakın. Bağımsız değişkenleri (Transact-SQL) geri yükleme.

    • MOVE**'logical_file_name_in_backup'** TO 'operating_system_file_name',...n
      Veri veya günlük dosyası tarafından belirtilen belirtir. logical_file_name_in_backup belirtilen konuma geri almaktır. operating_system_file_name. Bir MOVE deyim yedekten geri yüklemek istediğiniz her bir mantıksal dosyanın belirtmek küme yeni bir konuma.

      Seçenek

      Açıklama

      logical_file_name_in_backup

      Yedeklemede mantıksal bir veri veya günlük dosyası adını belirtir küme.Yedek verileri veya günlük dosyasında mantıksal dosya adını küme veritabanında mantıksal adı eşleşen, yedekleme küme oluşturuldu.

      NoteNote:
      Yedeklemenin mantıksal dosyaların bir listesini edinmek için küme, kullanma GERİ YÜKLEME filelistonly.

      operating_system_file_name

      Belirtilen dosya için yeni bir konum belirtir. logical_file_name_in_backup. Dosyayı bu konuma geri yüklenecektir.

      Isteğe bağlı olarak, operating_system_file_name geri yüklenen dosya için yeni bir dosya adı belirtir.Aynı sunucu örneğinde varolan bir veritabanının bir kopyasını oluşturuyorsanız, bu gereklidir.

      n

      Yer tutucu ek MOVE ifadeler belirtebileceğiniz gösteren iş.

Not

Size geri yükleme yükledikten sonra bir SQL Server 2005 veya SQL Server 2000 veritabanına SQL Server 2008, veritabanına hemen kullanılabilir ve daha sonra otomatik olarak yükseltilir. If the database has full-text indexes, the upgrade process either imports, resets, or rebuilds them, depending on the setting of the upgrade_optionserver property.Yükseltme seçeneği ise küme (almak içinupgrade_option = 2) veya yeniden (upgrade_option = 0), yükseltme sırasında tam metin dizinleriyle kullanılamaz.Dizini Oluşturulmakta olan veri miktarına bağlı olarak, alma işlemi birkaç saat sürebilir ve yeniden oluşturulması en çok on kat daha uzun sürebilir.Yükseltme seçeneği olduğunda da dikkat küme bir tam metin kataloğu kullanılamıyorsa, almak için , ilişkili tam metin dizinlerini yeniden oluşturulur.Ayarını değiştirmek için upgrade_option Kullanım sunucu özelliksp_fulltext_service.

Örnek

Açıklama

This example creates a new database named MyAdvWorks.MyAdvWorks is a copy of the existing AdventureWorks database that includes two files: AdventureWorks_Data ve AdventureWorks_Log. Basit kurtarma modeli, bu veritabanını kullanır.The AdventureWorks database already exists on the server örnek, so the files in the yedek must be restored to a new location. Rulosunun iletirseniz küme değil toplu ileri şu ana kadar veritabanı ve Kurtarma ile tutarlı olması için belirtilmişse, RESTORE FILELISTONLY bir hata verir. Ilk yedek veritabanı yedeğinin olduğundan küme yedek aygıtındaki.

Not

Tam veritabanı yedeği oluşturmak bir örnek için AdventureWorks veritabanı için bkz: Nasıl Yapılır: Tam bir veritabanı yedek (Transact-SQL) oluşturma.

Not

Metatabanını yedekleme ve işlem günlüğü, saat noktasına geri yükler, dahil olmak üzere, geri yükleme örnekleri kullanmak MyAdvWorks_FullRM tarafından oluşturulan bir veritabanı AdventureWorks Yalnızca aşağıdaki gibi MyAdvWorks ÖRNEK. Ancak, sonuç MyAdvWorks_FullRM Tam kurtarma modeli kullanmak için veritabanı değiştirilmesi gerekir: ALTER DATABASE MyAdvWorks_FullRM SET RECOVERY FULL.

Code

USE master
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks_Backup is the name of the backup device.
RESTORE FILELISTONLY
   FROM AdventureWorks_Backup
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
   FROM AdventureWorks_Backup
   WITH RECOVERY,
   MOVE 'AdventureWorks_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf', 
   MOVE 'AdventureWorks_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf'
GO