Aracılığıyla paylaş


Veritabanını yeni bir konuma geri yükleme (SQL Server)

Şunlar için geçerlidir: SQL Server

Bu makalede SQL Server Management Studio (SSMS) veya Transact-SQL kullanarak SQL Server veritabanının yeni bir konuma nasıl geri yükleneceği ve isteğe bağlı olarak SQL Server'da veritabanının nasıl yeniden adlandırıldığı açıklanır. Veritabanını yeni bir dizin yoluna taşıyabilir veya aynı sunucu örneğinde veya farklı bir sunucu örneğinde veritabanının bir kopyasını oluşturabilirsiniz.

Sınırlamalar

  • Tam veritabanı yedeğini geri yüken sistem yöneticisi, veritabanını şu anda geri yüklenecek tek kişi olmalıdır.

Önkoşullar

  • Tam veya toplu günlüğe kaydedilen kurtarma modelini kullandığınızda, veritabanını geri yükleyebilmeniz için önce etkin işlem günlüğünü yedeklemeniz gerekir. Daha fazla bilgi için bkz . İşlem günlüğünü yedekleme.

  • Şifrelenmiş veritabanını geri yüklemek için, veritabanını şifrelemek için kullanılan sertifikaya veya asimetrik anahtara erişiminiz olmalıdır. Bu sertifika veya asimetrik anahtar olmadan veritabanını geri yükleyemezsiniz. Yedeklemeye ihtiyacınız olduğu sürece veritabanı şifreleme anahtarını şifrelemek için kullanılan sertifikayı tutmanız gerekir. Daha fazla bilgi için bkz. SQL Server sertifikaları ve asimetrik anahtarlar.

Recommendations

  • Veritabanını taşıma konusunda dikkat edilmesi gereken diğer noktalar için bkz . Veritabanlarını yedekleme ve geri yükleme ile kopyalama.

  • SQL Server 2005 (9.x) veya üzeri bir veritabanını SQL Server'a geri yüklerseniz, veritabanı otomatik olarak yükseltilir. Genellikle veritabanı hemen kullanılabilir duruma gelir. Ancak, bir SQL Server 2005 (9.x) veritabanında tam metin dizinleri varsa, yükseltme işlemi sunucu özelliğinin upgrade_option ayarına bağlı olarak bunları içeri aktarır, sıfırlar veya yeniden oluşturur. Yükseltme seçeneği içeri aktarma () veya yeniden derleme ()upgrade_option = 2upgrade_option = 0 olarak ayarlanırsa, yükseltme sırasında tam metin dizinleri kullanılamaz. Dizine alınan veri miktarına bağlı olarak içeri aktarma işlemi birkaç saat sürebilir ve yeniden oluşturma işlemi 10 kat daha uzun sürebilir. Ayrıca, yükseltme seçeneği içeri aktarma olarak ayarlandığında, tam metin kataloğu kullanılamıyorsa ilişkili tam metin dizinleri yeniden oluşturulur. Sunucu özelliğinin upgrade_option ayarını değiştirmek için sp_fulltext_service kullanın.

Security

Güvenlik amacıyla, bilinmeyen veya güvenilmeyen kaynaklardan veritabanları eklemenizi veya geri yüklemenizi önermeyiz. Bu tür veritabanları, istenmeyen Transact-SQL kodu çalıştırabilecek veya şemayı veya fiziksel veritabanı yapısını değiştirerek hatalara neden olabilecek kötü amaçlı kod içerebilir. Bilinmeyen veya güvenilmeyen bir kaynaktan veritabanı kullanmadan önce, veritabanında üretim dışı bir sunucuda DBCC CHECKDB'yi çalıştırın ve ayrıca veritabanında saklı yordamlar veya diğer kullanıcı tanımlı kodlar gibi kodu inceleyin.

Permissions

Geri yüklenen veritabanı yoksa, kullanıcının komutunu çalıştırabilmesi CREATE DATABASEiçin izinlere sahip RESTORE olması gerekir. Veritabanı varsa, RESTORE izinler varsayılan olarak sysadmin ve dbcreator sabit sunucu rollerinin üyelerine ve veritabanının sahibine (dbo).

RESTORE izinler, üyelik bilgilerinin sunucu tarafından her zaman kullanılabilir olduğu rollere verilir. Sabit veritabanı rolü üyeliği yalnızca veritabanı erişilebilir olduğunda ve çalıştırıldığında RESTORE her zaman geçerli olmayan hasarsız olduğunda denetlenebildiğinden, db_owner sabit veritabanı rolünün üyelerinin izinleri yoktur RESTORE .

SSMS kullanarak veritabanını yeni bir konuma geri yükleyin ve isteğe bağlı olarak veritabanını yeniden adlandırın

  1. SQL Server Veritabanı Altyapısı'nın uygun örneğine bağlanın ve nesne gezgininde sunucu adını seçerek sunucu ağacını genişletin.

  2. Veritabanları'ya sağ tıklayın ve ardından Veritabanını Geri Yükle...'yi seçin. Veritabanını Geri Yükle iletişim kutusu açılır.

  3. Genel sayfasındaki Kaynak bölümünde, geri yükleneceği yedekleme kümelerinin kaynağını ve konumunu belirtin. Aşağıdaki seçeneklerden birini belirleyin:

    • Veritabanı

      Açılan listeden geri yükleneceği veritabanını seçin. Liste yalnızca yedekleme geçmişine msdb göre yedeklenmiş veritabanlarını içerir.

      Uyarı

      Yedekleme farklı bir sunucudan oluşturulduysa, hedef sunucuda belirtilen veritabanı için yedekleme geçmişi bilgileri olmaz. Bu durumda, geri yükleneceği dosyayı veya cihazı el ile belirtmek için Cihaz'ı seçin.

    • Cihaz

      Yedekleme cihazlarını seç iletişim kutusunu açmak için gözat (...) düğmesini seçin. Yedekleme medya türü kutusunda, listelenen cihaz türlerinden birini seçin. Yedekleme medya kutusu için bir veya daha fazla cihaz seçmek için Ekle'yi seçin.

      Eklemek istediğiniz cihazları Yedekleme medyası listesine ekledikten sonra Genel sayfasına dönmek için Tamam'ı seçin.

      Kaynak: Cihaz: Veritabanı listesinde, geri yüklenmesi gereken veritabanının adını seçin.

      Uyarı

      Bu liste yalnızca Cihaz seçildiğinde kullanılabilir. Yalnızca seçili cihazda yedekleri olan veritabanları kullanılabilir.

  4. Hedef bölümünde, Veritabanı kutusu otomatik olarak geri yüklenecek veritabanının adıyla doldurulur. Veritabanının adını değiştirmek için Veritabanı kutusuna yeni adı girin.

  5. Geri yükleme kutusuna varsayılan Alınan son yedeklemeye bırak veya Zaman Çizelgesini Yedekle iletişim kutusuna erişmek için Zaman Çizelgesi'ni seçerek kurtarma eylemini durdurmak için belirli bir noktayı el ile seçin. Belirli bir zaman noktasını belirleme hakkında daha fazla bilgi için bkz . Yedekleme zaman çizelgesi .

  6. Geri yüklemek için yedekleme kümeleri kılavuzunda geri yükleneceği yedekleri seçin. Bu kılavuz, belirtilen konum için kullanılabilir yedeklemeleri görüntüler. Varsayılan olarak bir kurtarma planı önerilir. Önerilen kurtarma planını geçersiz kılmak için kılavuzdaki seçimleri değiştirebilirsiniz. Önceki bir yedeklemenin geri yüklenmesine bağlı yedeklemeler, önceki yedeklemenin seçimi kaldırıldığında otomatik olarak kaldırılır.

    Geri yükleneceği Yedekleme kümelerindeki sütunlar hakkında bilgi için bkz. Veritabanını Geri Yükleme (Genel sayfası).

  7. Veritabanı dosyalarının yeni konumunu belirtmek için Dosyalar sayfasını seçin ve ardından Tüm dosyaları klasöre taşı'yı seçin. Veri dosyası klasörü ve Günlük dosyası klasörü için yeni bir konum belirtin. Bu kılavuz hakkında daha fazla bilgi için bkz. Veritabanını Geri Yükleme (Dosyalar Sayfası).

  8. Seçenekler sayfasında, isterseniz seçenekleri ayarlayın. Bu seçenekler hakkında daha fazla bilgi için bkz. Veritabanını Geri Yükleme (Seçenekler Sayfası).

T-SQL kullanarak veritabanını yeni bir konuma geri yükleyin ve isteğe bağlı olarak veritabanını yeniden adlandırın

  1. İsteğe bağlı olarak, geri yüklemek istediğiniz tam veritabanı yedeklemesini içeren yedekleme kümesindeki dosyaların mantıksal ve fiziksel adlarını belirleyin. Bu deyim, yedekleme kümesinde yer alan veritabanı ve günlük dosyalarının listesini döndürmeye yönelik temel söz dizimini gösterir:

    RESTORE FILELISTONLY FROM backup_device WITH FILE = *backup_set_file_number
    

    Burada , backup_set_file_number yedeklemenin medya kümesindeki konumunu gösterir. RESTORE HEADERONLY deyimini kullanarak bir yedekleme kümesinin konumunu alabilirsiniz. Daha fazla bilgi için bkz. Yedekleme kümesi belirtme.

    Bu deyim çeşitli WITH seçenekleri de destekler. Daha fazla bilgi için bkz. RESTORE FILELISTONLY.

  2. Tam veritabanı yedeklemesini geri yüklemek için RESTORE DATABASE deyimini kullanın. Varsayılan olarak, veri ve günlük dosyaları özgün konumlarına geri yüklenir. Veritabanını yeniden yer değiştirmek için, veritabanı dosyalarının her birini yeniden dağıtma ve mevcut dosyalarla çakışmaları önleme seçeneğini kullanın MOVE .

Veritabanını yeni bir ada sahip yeni bir konuma geri yüklemek için temel Transact-SQL söz dizimi şöyledir:

RESTORE DATABASE <new_database_name>
FROM <backup_device> [ , ...n ]
[ WITH
 {
    [ RECOVERY | NORECOVERY ]
    [ , ] [ FILE = { <backup_set_file_number> | @backup_set_file_number } ]
    [ , ] MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ , ...n ]
} ]
[ ; ]

Uyarı

Veritabanını farklı bir diskte yeniden dağıtmaya hazırlanırken, yeterli alanın kullanılabilir olduğunu doğrulamanız ve mevcut dosyalarla olası çakışmaları belirlemeniz gerekir. Bu doğrulama, deyiminizde kullanmayı planladığınız parametreleri belirten MOVERESTORE DATABASE deyimini kullanmayı içerir.

Aşağıdaki bilgiler, bu RESTORE deyimin veritabanını yeni bir konuma geri yüklemeyle ilgili bağımsız değişkenlerini açıklar. Bu bağımsız değişkenler hakkında daha fazla bilgi için bkz. RESTORE Deyimleri.

new_database_name

Veritabanının yeni adı.

Uyarı

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

backup_device [ , ... n ]

Veritabanı yedeklemesinin geri yükleneceği 1 ile 64 yedekleme cihazının virgülle ayrılmış listesini belirtir. Fiziksel bir yedekleme cihazı belirtebilir veya varsa buna karşılık gelen bir mantıksal yedekleme cihazı belirtebilirsiniz. Fiziksel yedekleme cihazı belirtmek için veya DISK seçeneğini kullanınTAPE:

{ DISK | TAPE } = physical_backup_device_name

Daha fazla bilgi için bkz . Cihazları yedekleme.

{ KURTARMA | NORECOVERY }

Veritabanı tam kurtarma modelini kullanıyorsa, veritabanını geri yükledikten sonra işlem günlüğü yedeklemeleri uygulamanız gerekebilir. Bu durumda seçeneğini belirtin NORECOVERY .

Aksi takdirde, varsayılan seçenek olan seçeneğini kullanın RECOVERY .

FILE = { backup_set_file_number | @backup_set_file_number }

Geri yüklenecek yedekleme kümesini tanımlar. Örneğin, backup_set_file_number1 yedekleme ortamındaki ilk yedekleme kümesini, backup_set_file_number2 ise ikinci yedekleme kümesini gösterir. RESTORE deyimleri - HEADERONLY deyimini kullanarak bir yedekleme kümesinin backup_set_file_number alabilirsiniz.

Bu seçenek belirtilmediğinde varsayılan ayar yedekleme cihazında ilk yedekleme kümesini kullanmaktır.

Daha fazla bilgi için bkz. RESTORE bağımsız değişkenleri (Transact-SQL).

'logical_file_name_in_backup' ÖĞESINI 'operating_system_file_name' [ , ... n ]

tarafından logical_file_name_in_backup belirtilen veri veya günlük dosyasının tarafından operating_system_file_namebelirtilen konuma geri yüklendiğini belirtir. Yedekleme kümesinden yeni bir MOVE konuma geri yüklemek istediğiniz her mantıksal dosya için bir deyim belirtin.

Seçenek Description
logical_file_name_in_backup Yedekleme kümesindeki bir veri veya günlük dosyasının mantıksal adını belirtir. Yedekleme kümesindeki bir veri veya günlük dosyasının mantıksal dosya adı, yedekleme kümesi oluşturulduğunda veritabanındaki mantıksal adıyla eşleşir.



Not: Yedekleme kümesinden mantıksal dosyaların listesini almak için RESTORE deyimlerini kullanın - FILELISTONLY.
operating_system_file_name tarafından logical_file_name_in_backupbelirtilen dosya için yeni bir konum belirtir. Dosya bu konuma geri yüklenir.

İsteğe bağlı olarak, operating_system_file_name geri yüklenen dosya için yeni bir dosya adı belirtir. Aynı sunucu örneğinde var olan bir veritabanının kopyasını oluşturuyorsanız yeni bir ad gereklidir.
n Ek MOVE deyimler belirtebileceğinizi gösteren yer tutucu.

Örnek (Transact-SQL)

Bu örnek, iki dosya içeren örnek veritabanının yedeğini geri yükleyerek adlı MyAdvWorks yeni bir veritabanı oluşturur: AdventureWorks2025AdventureWorks2025 ve _DataAdventureWorks2025._Log Bu veritabanı basit kurtarma modelini kullanır. AdventureWorks2025 Veritabanı sunucu örneğinde zaten var olduğundan, yedeklemedeki dosyaların yeni bir konuma geri yüklenmesi gerekir. deyimi RESTORE FILELISTONLY , geri yüklenen veritabanındaki dosyaların sayısını ve adlarını belirlemek için kullanılır. Veritabanı yedeklemesi, yedekleme cihazında ayarlanan ilk yedeklemedir.

Uyarı

Belirli bir noktaya geri yüklemeler de dahil olmak üzere işlem günlüğünü yedekleme ve geri yükleme örnekleri, aşağıdaki MyAdvWorks_FullRM örnekte olduğu gibi uygulamasından AdventureWorks2025oluşturulan veritabanını kullanırMyAdvWorks. Ancak, elde edilen MyAdvWorks_FullRM veritabanı aşağıdaki Transact-SQL deyimi kullanılarak tam kurtarma modelini kullanacak şekilde değiştirilmelidir: ALTER DATABASE <database_name> SET RECOVERY FULL.

USE master;
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks2022_Backup is the name of the backup device.
RESTORE FILELISTONLY
   FROM AdventureWorks2022_Backup;

-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
   FROM AdventureWorks2022_Backup
   WITH RECOVERY,
   MOVE 'AdventureWorks2022_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf',
   MOVE 'AdventureWorks2022_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf';
GO

Veritabanının tam veritabanı yedeğinin AdventureWorks2025 nasıl oluşturulacağını gösteren bir örnek için bkz. Tam veritabanı yedeklemesi oluşturma.