Share via


Nasıl yapılır: Bir yeni konumu ve adı (Transact-SQL) 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 örnek veya farklı bir sunucu kopyasına bir veritabanının bir kopyasını oluşturmanızı sağlar.Bir veritabanını taşımak için dikkat edilmesi gereken noktalar hakkında daha fazla bilgi için bkz: Veritabanlarını yedekleme ve geri yükleme ile kopyalama.

Önkoşullar ve öneriler

  • Şifrelenmiş bir veritabanı geri yükleme yüklemek için sertifika veya veritabanını şifrelemek için kullanılan asimetrik anahtar erişimi olmalıdır.Sertifika veya asimetrik anahtar veritabanı geri yüklenemiyor.yedek gerektiği sürece veritabanı şifreleme anahtar şifrelemek için kullanılan sertifika sonucu olarak korunması gerekir.Daha fazla bilgi için bkz: SQL ServerSertifikaları ve asimetrik anahtarları.

  • Güvenlik amacıyla eklemek veya bilinmeyen veya güvenilmeyen kaynaklardan gelen veritabanlarını geri yükleme öneririz.Bu tür 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.

Veritabanı uyumluluk düzeyini yükselttikten sonra

Uyumluluk düzeyleri tempdb, modeli, msdb ve kaynak veritabanları yükseltme sonrasında 100 olarak küme.The master system database retains the compatibility level it had before upgrade, unless that level was less than 80.Uyumluluk düzey , ana az 80 yükseltme işleminden önce yükseltme işleminden sonra 80 için küme.

Bir kullanıcı veritabanı uyumluluk düzey 80 veya 90 yükseltme işleminden önce varsa, aynı yükseltmeden sonra kalır.Uyumluluk düzey 70 veya yükseltilen veritabanında, yükseltme işleminden önce uyumluluk düzey 80 için desteklenen en düşük uyumluluk olduğu küme düzey de SQL Server 2008.

Not

Yeni kullanıcı veritabanları uyumluluk devralır düzey , modeli veritabanı.

Yordamlar

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

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

    Geri yükleme FILELISTONLY from <backup_device> dosyası ile = backup_set_file_number

    Not

    Elde edebilirsiniz backup_set_file_number , bir yedek küme kullanarak restore headeronly deyim.

    Bu deyim bir dizi seçenekleri ile de destekler.Daha fazla bilgi için bkz: Geri yükleme FILELISTONLY (Transact-sql).

  2. Use geri yükleme database deyim tam veritabanı geri yükleme yüklemek için yedek.Varsayılan olarak, veri ve günlük dosyaları özgün konumlarına geri yüklenir.Bir veritabanı konumunu değiştirmek için her veritabanı dosyalarının yerini ve varolan dosyaları ile çakışmaları önlemek için TAŞIMA seçeneğini kullanın.

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

    VERİTABANINI GERİ YÜKLE new_database_name

    FROM backup_device [ ,...n ]

    İLE

       {

            [ RECOVERY | NORECOVERY ]

       [ , ] [ FILE ={ backup_set_file_number | @backup_set_file_number } ]

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

       }

    ;

    Not

    Bir veritabanını farklı bir diskte yer almak hazırlık yaparken, yeterli alan varsa ve tüm olası çakışmaları ile varolan dosyaları tanımlamak doğrulamanız gerekir.Bu kullanarak içerir bir restore verifyonly restore database deyiminiz kullanmayı planladığınız TAŞIMA parametreleri belirten deyim.

    Aşağıdaki tablo açısından bir veritabanını yeni bir konuma geri yükleme Bu geri yükleme deyimi bağımsız değişkenler açıklanmıştır.Bu bağımsız değişkenler hakkında daha fazla bilgi için bkz: RESTORE (Transact-SQL).

    • new_database_name
      Veritabanı için yeni bir ad.

      Not

      Veritabanını farklı bir sunucuya geri yüklediğiniz, örnek, özgün veritabanı adı yerine yeni bir ad kullanabilirsiniz.

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

      { DISK | TAPE } **=**physical_backup_device_name

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

    • { Kurtarma | NORECOVERY}
      Veritabanı tam kurtarma modeli kullanır, veritabanını geri yükleme yükledikten sonra işlem günlüklerini uygulamanız gerekebilir.Bu durum, norecovery seçeneğini belirtin.

      Aksi halde, varsayılan kurtarma seçeneğini kullanın.

    • FILE = { backup_set_file_number| @backup_set_file_number}
      Tanımlar yedek küme geri yüklenecek.Örneğin, bir backup_set_file_number , 1 ilk gösterir yedek küme yedek ortamı üzerindeki ve bir backup_set_file_number , 2 ikinci gösterir yedek küme.Elde edebilirsiniz backup_set_file_number , bir yedek küme kullanarak restore headeronly deyim.

      Bu seçenek belirtildiğinde, varsayılan ilk kullanmaktır yedek küme yedek aygıtındaki.

      "Belirten bir yedekleme kümesi," daha fazla bilgi için bkz: in Bağımsız değişkenlerini (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 tarafından belirtilen konuma geri için iş operating_system_file_name.Bir taşı deyim alınan geri yükleme yüklemek istediğiniz her mantıksal dosya için belirttiğiniz yedek küme yeni bir konuma.

      Seçenek

      Açıklama

      logical_file_name_in_backup

      yedek mantıksal bir veri veya günlük dosyası adını belirtir küme.Yedekleme küme oluşturulduğunda mantıksal dosyanın bir yedek küme bir veri veya günlük dosyası veritabanındaki mantıksal ad adıyla.

      NotNot
      Mantıksal dosyaların bir listesini edinmek için yedek küme, kullanma Geri yükleme FILELISTONLY.

      operating_system_file_name

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

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

      n

      Ek move deyimleri belirtebilirsiniz gösteren bir yer tutucu.

Not

geri yükleme yükledikten sonra bir SQL Server 2005 veya SQL Server 2000 veritabanı için SQL Server 2008, veritabanı hemen kullanılabilir hale gelir 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_option server property.Yükseltme seçeneği ise küme alınacak (upgrade_option = 2) veya yeniden (upgrade_option = 0), tam metin dizinlerini yükseltme sırasında kullanılamaz olur.Dizini Oluşturulmakta olan veri miktarına bağlı olarak, alma işlemi birkaç saat sürebilir ve yeniden inşa etmek en fazla on kez daha uzun sürebilir.Yükseltme seçeneği olduğunda, de küme tam metin kataloğu yoksa almak için ilgili tam metin dizinleri yeniden oluşturulur.Ayarı değiştirmek için upgrade_option sunucu özellik, kullanım sp_fulltext_service.

Örnek

Açıklama

This example creates a new database named MyAdvWorks.MyAdvWorks is a copy of the existing AdventureWorks2008R2 database that includes two files: AdventureWorks2008R2_Dataand AdventureWorks2008R2_Log.Bu veritabanı Basit kurtarma modeli kullanır.The AdventureWorks2008R2 database already exists on the server instance, so the files in the backup must be restored to a new location.The RESTORE FILELISTONLY statement is used to determine the number and names of the files in the database being restored.Veritabanı yedeğinin üzerine ilk bir yedek küme olduğu yedek aygıtı.

Not

Tam bir veritabanı oluşturmak nasıl bir örnek için yedek , AdventureWorks2008R2 , veritabanı Bkz: Nasıl yapılır: Tam veritabanı yedeği (Transact-SQL) oluştur.

Not

Yedekleme ve geri yükleme noktası da dahil olmak üzere işlem günlüğü, örnekleri-de-saat geri yükleme için kullanmak MyAdvWorks_FullRM veritabanı tarafından oluşturulan AdventureWorks2008R2 aşağıdaki gibi MyAdvWorks örnek.Ancak, ortaya çıkan MyAdvWorks_FullRM veritabanı değişti, tam kurtarma modeli kullanmak için: ALTER DATABASE MyAdvWorks_FullRM SET RECOVERY FULL.

Kod

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