Aracılığıyla paylaş


RESTORE Deyimleri (Transact-SQL)

BACKUP komutu kullanılarak alınan SQL veritabanı yedeklemelerini geri yükler.

Ürün seçin

Aşağıdaki satırda, ilgilendiğiniz ürün adını seçin ve yalnızca bu ürünün bilgileri görüntülenir.

Söz dizimi kuralları hakkında daha fazla bilgi için bkz. Transact-SQL söz dizimi kuralları.

* SQL Server *  

 

SQL Server

Bu komut aşağıdaki geri yükleme senaryolarını gerçekleştirmenizi sağlar:

  • Tam veritabanı yedeğinden veritabanının tamamını geri yükleme (tam geri yükleme).
  • Veritabanının bir bölümünü geri yükleme (kısmi geri yükleme).
  • Belirli dosyaları veya dosya gruplarını bir veritabanına (dosya geri yükleme) geri yükleyin.
  • Belirli sayfaları veritabanına geri yükleme (sayfa geri yükleme).
  • İşlem günlüğünü veritabanına geri yükleme (işlem günlüğü geri yükleme).
  • Veritabanını, veritabanı anlık görüntüsü tarafından yakalanan belirli bir noktaya geri döndürme.

Diğer kaynaklar

Sözdizimi

  • Bağımsız değişkenlerin açıklamaları hakkında daha fazla bilgi için bkz. RESTORE Arguments.
--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
 [ FROM <backup_device> [ ,...n ] ]
 [ WITH
   {
    [ RECOVERY | NORECOVERY | STANDBY =
        {standby_file_name | @standby_file_name_var }
       ]
   | ,  <general_WITH_options> [ ,...n ]
   | , <replication_WITH_option>
   | , <change_data_capture_WITH_option>
   | , <FILESTREAM_WITH_option>
   | , <service_broker_WITH options>
   | , <point_in_time_WITH_options-RESTORE_DATABASE>
   } [ ,...n ]
 ]
[;]

--To perform the first step of the initial restore sequence of a piecemeal restore:
RESTORE DATABASE { database_name | @database_name_var }
   <files_or_filegroups> [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
      PARTIAL, NORECOVERY
      [  , <general_WITH_options> [ ,...n ]
       | , <point_in_time_WITH_options-RESTORE_DATABASE>
      ] [ ,...n ]
[;]

--To Restore Specific Files or Filegroups:
RESTORE DATABASE { database_name | @database_name_var }
   <file_or_filegroup> [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
   {
      [ RECOVERY | NORECOVERY ]
      [ , <general_WITH_options> [ ,...n ] ]
   } [ ,...n ]
[;]

--To Restore Specific Pages:
RESTORE DATABASE { database_name | @database_name_var }
   PAGE = 'file:page [ ,...n ]'
 [ , <file_or_filegroups> ] [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
       NORECOVERY
      [ , <general_WITH_options> [ ,...n ] ]
[;]

--To Restore a Transaction Log:
RESTORE LOG { database_name | @database_name_var }
 [ <file_or_filegroup_or_pages> [ ,...n ] ]
 [ FROM <backup_device> [ ,...n ] ]
 [ WITH
   {
     [ RECOVERY | NORECOVERY | STANDBY =
        {standby_file_name | @standby_file_name_var }
       ]
    | , <general_WITH_options> [ ,...n ]
    | , <replication_WITH_option>
    | , <point_in_time_WITH_options-RESTORE_LOG>
   } [ ,...n ]
 ]
[;]

--To Revert a Database to a Database Snapshot:
RESTORE DATABASE { database_name | @database_name_var }
FROM DATABASE_SNAPSHOT = database_snapshot_name

<backup_device>::=
{
   { logical_backup_device_name |
      @logical_backup_device_name_var }
 | { DISK
     | TAPE
     | URL
   } = { 'physical_backup_device_name' |
      @physical_backup_device_name_var }
}

<files_or_filegroups>::=
{
   FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }
 | FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
 | READ_WRITE_FILEGROUPS
}

<general_WITH_options> [ ,...n ]::=
--Restore Operation Options
   MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'
          [ ,...n ]
 | REPLACE
 | RESTART
 | RESTRICTED_USER | CREDENTIAL

--Backup Set Options
 | FILE = { backup_set_file_number | @backup_set_file_number }
 | PASSWORD = { password | @password_variable }
 | [ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { database_name | @database_name_variable } ]

--Media Set Options
 | MEDIANAME = { media_name | @media_name_variable }
 | MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
 | BLOCKSIZE = { blocksize | @blocksize_variable }

--Data Transfer Options
 | BUFFERCOUNT = { buffercount | @buffercount_variable }
 | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

--Error Management Options
 | { CHECKSUM | NO_CHECKSUM }
 | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

--Monitoring Options
 | STATS [ = percentage ]

--Tape Options.
 | { REWIND | NOREWIND }
 | { UNLOAD | NOUNLOAD }

<replication_WITH_option>::=
 | KEEP_REPLICATION

<change_data_capture_WITH_option>::=
 | KEEP_CDC

<FILESTREAM_WITH_option>::=
 | FILESTREAM ( DIRECTORY_NAME = directory_name )

<service_broker_WITH_options>::=
 | ENABLE_BROKER
 | ERROR_BROKER_CONVERSATIONS
 | NEW_BROKER

<point_in_time_WITH_options-RESTORE_DATABASE>::=
 | {
   STOPAT = { 'datetime'| @datetime_var }
 | STOPATMARK = 'lsn:lsn_number'
                 [ AFTER 'datetime']
 | STOPBEFOREMARK = 'lsn:lsn_number'
                 [ AFTER 'datetime']
   }

<point_in_time_WITH_options-RESTORE_LOG>::=
 | {
   STOPAT = { 'datetime'| @datetime_var }
 | STOPATMARK = { 'mark_name' | 'lsn:lsn_number' }
                 [ AFTER 'datetime']
 | STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' }
                 [ AFTER 'datetime']
   }

Arguments

Bağımsız değişkenlerin açıklamaları için bkz. RESTORE Arguments.

Geri Yükleme Senaryoları Hakkında

SQL Server çeşitli geri yükleme senaryolarını destekler:

Çevrimiçi geri yüklemenin desteklendiği durumlarda, veritabanı çevrimiçiyse, dosya geri yüklemeleri ve sayfa geri yüklemeleri otomatik olarak çevrimiçi geri yüklemeler ve parçalı geri yüklemenin ilk aşamasından sonra ikincil dosya grubunun geri yüklemeleridir.

Uyarı

Çevrimiçi geri yüklemeler ertelenen işlemleri içerebilir.

Daha fazla bilgi için bkz . Çevrimiçi Geri Yükleme.

GERI YÜKLEME Seçenekleri Hakkında Ek Dikkat Edilmesi Gerekenler

Sonlandırılan RESTORE Anahtar Sözcükleri

AŞAĞıDAKI anahtar sözcükler SQL Server 2008'de (10.0.x) kullanımdan kaldırılmıştır:

Sonlandırılan anahtar sözcük Şununla değiştirildi:... Değiştirme anahtar sözcüğü örneği
YÜK RESTORE RESTORE DATABASE
İŞLEM KAYIT RESTORE LOG
DBO_ONLY RESTRICTED_USER RESTORE DATABASE ... WITH RESTRICTED_USER

GERI YÜKLEME GÜNLÜĞÜ

RESTORE LOG, rollforward sırasında dosya oluşturulmasına izin veren bir dosya listesi içerebilir. Bu, günlük yedeklemesi veritabanına bir dosya eklendiğinde yazılan günlük kayıtlarını içerdiğinde kullanılır.

Uyarı

Tam veya toplu günlüğe kaydedilen kurtarma modelini kullanan bir veritabanı için, çoğu durumda veritabanını geri yüklemeden önce günlüğün kuyruğunu yedeklemeniz gerekir. RESTORE DATABASE deyimi, veri yedeklemesinin sonundan sonra gerçekleşen bir zamanı veya işlemi belirtmesi gereken WITH REPLACE veya WITH STOPAT yan tümcesini içermediği sürece, önce günlüğün kuyruğunu yedeklemeden veritabanının geri yüklenmesi hatayla sonuçlanır. Kuyruk günlüğü yedeklemeleri hakkında daha fazla bilgi için bkz. yedeklemelerTail-Log.

KURTARMA ve NORECOVERY Karşılaştırması

Geri alma, [ RECOVERY | aracılığıyla RESTORE deyimi tarafından denetlenır NORECOVERY ] seçenekleri:

  • NORECOVERY geri alma işleminin gerçekleşmediğini belirtir. Bu, rollforward öğesinin dizideki bir sonraki deyimle devam etmesini sağlar.

    Bu durumda, geri yükleme sırası diğer yedeklemeleri geri yükleyebilir ve ileri taşıyabilir.

  • RECOVERY (varsayılan), geçerli yedekleme için rollforward tamamlandıktan sonra geri alma işleminin gerçekleştirilmesi gerektiğini gösterir. Başka yedekleme geri yüklenemez. Gerekli tüm yedeklemeleri geri yükledikten sonra bu seçeneği belirleyin.

    Veritabanını kurtarmak için geri yüklenen tüm veri kümesinin ( rollforward kümesi) veritabanıyla tutarlı olması gerekir. Rollforward kümesi veritabanıyla tutarlı olacak kadar ileriye doğru alınmadıysa ve RECOVERY belirtilirse, Veritabanı Altyapısı bir hata döndürür. Kurtarma işlemi hakkında daha fazla bilgi için bkz. Geri Yükleme ve Kurtarma'ya Genel Bakış (SQL Server).

Uyumluluk desteği

SQL Server'ın mastermodel önceki bir sürümü kullanılarak oluşturulan ve msdb yedeklemeleri SQL Server tarafından geri yüklenemez.

Uyarı

Sql Server yedeklemesi, yedeklemenin oluşturulduğu sürümden daha eski bir SQL Server sürümüne geri yüklenemez.

SQL Server'ın her sürümü önceki sürümlerden farklı bir varsayılan yol kullanır. Bu nedenle, önceki sürüm yedeklemeleri için varsayılan konumda oluşturulmuş bir veritabanını geri yüklemek için MOVE seçeneğini kullanmanız gerekir. Yeni varsayılan yol hakkında bilgi için bkz. SQL Server'ın Varsayılan ve Adlandırılmış Örnekleri için Dosya Konumları.

Önceki bir sürüm veritabanını SQL Server'a geri yükledikten sonra 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 upgrade_option sunucu özelliğinin ayarına bağlı olarak bunları içeri aktarır, sıfırlar veya yeniden oluşturur. Yükseltme seçeneği içeri aktarılacak (upgrade_option = 2) veya yeniden derlenecek (upgrade_option = 0) olarak ayarlandıysa, 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 derleme on 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 dizinlerinin yeniden derlendiğini unutmayın. upgrade_option sunucusu özelliğinin ayarını değiştirmek için sp_fulltext_service kullanın.

Bir veritabanı sql server'ın yeni bir örneğine ilk kez eklendiğinde veya geri yüklendiğinde, veritabanı ana anahtarının bir kopyası (hizmet ana anahtarı tarafından şifrelenir) henüz sunucuda depolanmaz. Veritabanı ana anahtarının (DMK) şifresini çözmek için OPEN MASTER KEY deyimini kullanmanız gerekir. DMK'nin şifresi çözüldükten sonra, sunucuya hizmet ana anahtarı (SMK) ile şifrelenmiş bir DMK kopyası sağlamak için ALTER MASTER KEY REGENERATE deyimini kullanarak gelecekte otomatik şifre çözmeyi etkinleştirme seçeneğiniz vardır. Bir veritabanı önceki bir sürümden yükseltildiğinde, DMK daha yeni AES algoritmasını kullanacak şekilde yeniden oluşturulmalıdır. DMK'yi yeniden oluşturma hakkında daha fazla bilgi için bkz. ALTER MASTER KEY. AES'ye yükseltmek için DMK anahtarını yeniden oluşturmak için gereken süre, DMK tarafından korunan nesne sayısına bağlıdır. AES'ye yükseltmek için DMK anahtarını yeniden oluşturmak yalnızca bir kez gereklidir ve anahtar döndürme stratejisinin bir parçası olarak gelecekteki yenilemeleri etkilemez.

Açıklamalar

Çevrimdışı geri yükleme sırasında, belirtilen veritabanı kullanılıyorsa, RESTORE kısa bir gecikmeden sonra kullanıcıları zorlar. Birincil olmayan bir dosya grubunun çevrimiçi geri yüklemesi için, geri yüklenen dosya grubunun çevrimdışı duruma alınması dışında veritabanı kullanımda kalabilir. Belirtilen veritabanındaki tüm veriler geri yüklenen veriyle değiştirilir.

Farklı işlemci türleri arasında bile platformlar arası geri yükleme işlemleri, veritabanının harmanlaması işletim sistemi tarafından desteklendiği sürece gerçekleştirilebilir.

GERI YÜKLEME bir hatadan sonra yeniden başlatılabilir. Ayrıca, RESTORE'e hatalara rağmen devam etmelerini ve mümkün olduğunca çok veriyi geri yüklemesini de sağlayabilirsiniz (seçeneğine CONTINUE_AFTER_ERROR bakın).

RESTORE işlemine açık veya örtük bir işlemde izin verilmez.

Hasarlı master bir veritabanını geri yükleme işlemi özel bir yordam kullanılarak gerçekleştirilir. Daha fazla bilgi için bkz. Sistem Veritabanlarını Yedekleme ve Geri Yükleme.

Veritabanını geri yüklemek, geri yüklenen veritabanı için plan önbelleğini temizler. Plan önbelleğinin temizlenmesi, sonraki tüm yürütme planlarının yeniden derlenmesine neden olur ve sorgu performansında ani, geçici bir düşüşe neden olabilir.

Kullanılabilirlik veritabanını geri yüklemek için önce veritabanını SQL Server örneğine geri yükleyin ve sonra veritabanını kullanılabilirlik grubuna ekleyin.

Yedekleme sıkıştırma ve sıkıştırmayı açma için tümleşik hızlandırma ve boşaltma

SQL Server 2022 (16.x), işlem için bir sıkıştırma algoritması tanımlayan öğesini tanıtır ALGORITHM. Daha fazla bilgi için bkz . Yedekleme SıKıŞTıRMA.

Daha fazla bilgi için bkz . Geri yükleme işlemleri

URL'den geri yükleme

URL, Microsoft Azure Blob Depolama veya S3 uyumlu nesne depolama için konumu ve dosya adını belirtmek için kullanılan biçimdir. Azure Blob Depolama bir hizmet olsa da, uygulama tüm cihazlar için tutarlı ve sorunsuz bir geri yükleme deneyimi sağlamak için diske ve banda benzer.

Birlikte çalışabilirlik

Veritabanı ayarları ve geri yükleme

Geri yükleme sırasında ALTER DATABASE kullanılarak ayarlanabilir veritabanı seçeneklerinin çoğu, yedeklemenin sonunda yürürlükte olan değerlere sıfırlanır.

Bununla birlikte, WITH RESTRICTED_USER seçeneğinin kullanılması, kullanıcı erişimi seçeneği ayarı için bu davranışı geçersiz kılar. Bu ayar her zaman WITH RESTRICTED_USER seçeneğini içeren restore deyiminden sonra ayarlanır.

Şifrelenmiş veritabanını geri yükleme

Şifrelenmiş bir veritabanını geri yüklemek için, veritabanını şifrelemek için kullanılan sertifikaya veya asimetrik anahtara erişiminiz olmalıdır. Sertifika veya asimetrik anahtar olmadan veritabanı geri yüklenemez. Sonuç olarak, veritabanı şifreleme anahtarını şifrelemek için kullanılan sertifika, yedekleme gerektiği sürece saklanmalıdır. Daha fazla bilgi için bkz. SQL Server Sertifikaları ve Asimetrik Anahtarlar.

Vardecimal depolama için etkinleştirilen bir veritabanını geri yükleme

Yedekleme ve geri yükleme , değişken depolama biçimiyle düzgün çalışır. Değişken depolama biçimi hakkında daha fazla bilgi için bkz. sp_db_vardecimal_storage_format.

Tam metin verilerini geri yükleme

Tam metin verileri, tam geri yükleme sırasında diğer veritabanı verileriyle birlikte geri yüklenir. Normal RESTORE DATABASE database_name FROM backup_device söz dizimi kullanılarak, tam metin dosyaları veritabanı dosyası geri yükleme işleminin bir parçası olarak geri yüklenir.

RESTORE deyimi, alternatif konumlara geri yüklemeler, değişiklik geri yüklemeleri, dosya ve dosya grubu geri yüklemeleri ve tam metin verilerinin değişiklik dosyası ve dosya grubu geri yüklemelerini gerçekleştirmek için de kullanılabilir. Buna ek olarak, RESTORE yalnızca tam metin dosyalarını ve veritabanı verilerini geri yükleyebilir.

Uyarı

SQL Server 2005'ten (9.x) içeri aktarılan tam metin katalogları hala veritabanı dosyaları olarak kabul edilir. Bunlar için, tam metin kataloglarını yedeklemeye yönelik SQL Server 2005 (9.x) yordamı, yedekleme işlemi sırasında duraklatma ve sürdürmenin artık gerekli olmaması dışında geçerli olmaya devam eder. Daha fazla bilgi için bkz. Full-Text Kataloglarını Yedekleme ve Geri Yükleme.

SQL Server 2022'ye ve otomatik bırakma özelliğine geri yükleme

Veritabanını önceki bir sürümden SQL Server 2022'ye (16.x) geri yüklerken, istatistik otomatik bırakma özelliği için uygun meta verileri ayarlayarak veritabanında yürütülmesi sp_updatestats önerilir. Daha fazla bilgi için bkz. İstatistik otomatik bırakma seçeneği.

SQL Server Büyük Veri Kümeleri

Sunucu (örnek düzeyi) ayarlarını yapılandırma veya kullanılabilirlik grubuna el ile veritabanı ekleme dahil olmak üzere bazı işlemler IÇIN SQL Server örneğine bağlantı gerekir. Kullanılabilirlik grubuna ait bir veritabanındaki , sp_configureveya herhangi bir DDL komutu gibi RESTORE DATABASEişlemler SQL Server örneğine bağlantı gerektirir. Varsayılan olarak, büyük veri kümesi örneğe bağlantı sağlayan bir uç nokta içermez. Bu uç noktayı el ile kullanıma sunmanız gerekir.

Yönergeler için bkz. Birincil çoğaltmadaki veritabanlarına bağlanma.

Meta veriler

SQL Server, her sunucu örneği için yedekleme ve geri yükleme etkinliğini izleyen yedekleme ve geri yükleme geçmişi tablolarını içerir. Geri yükleme gerçekleştirildiğinde, yedekleme geçmişi tabloları da değiştirilir. Bu tablolar hakkında bilgi için bkz. Yedekleme Geçmişi ve Üst Bilgi.

DEĞİşTİr seçeneği etkisi

DEĞİşTİr nadiren ve ancak dikkatli bir değerlendirmeden sonra kullanılmalıdır. Geri yükleme normalde farklı bir veritabanına sahip bir veritabanının üzerine yanlışlıkla yazılmasını engeller. BIR RESTORE deyiminde belirtilen veritabanı geçerli sunucuda zaten varsa ve belirtilen veritabanı ailesi GUID'i yedekleme kümesinde kaydedilen veritabanı ailesi GUID'sinden farklıysa, veritabanı geri yüklenmez. Bu önemli bir güvenlik önlemidir.

DEĞİşTİr seçeneği, geri yüklemenin normal olarak gerçekleştirdiği birkaç önemli güvenlik denetimini geçersiz kılar. Geçersiz kılınan denetimler aşağıdaki gibidir:

  • Başka bir veritabanının yedeklenmesiyle mevcut bir veritabanını geri yükleme.

    DEĞİşTİr seçeneğiyle, belirtilen veritabanı adı yedekleme kümesine kaydedilen veritabanı adından farklı olsa bile geri yükleme, yedekleme kümesindeki veritabanıyla var olan bir veritabanının üzerine yazmanıza olanak tanır. Bu, veritabanının yanlışlıkla farklı bir veritabanı tarafından üzerine yazılmasıyla sonuçlanabilir.

  • Kuyruk günlüğü yedeklemesinin alınmadığı ve STOPAT seçeneğin kullanılmadığı tam veya toplu günlüğe kaydedilen kurtarma modelini kullanarak bir veritabanı üzerinden geri yükleme.

    DEĞİşTİr seçeneğiyle, en son yazılan günlük yedeklenmediğinden kaydedilmiş çalışmayı kaybedebilirsiniz.

  • Varolan dosyaların üzerine yazma.

    Örneğin, bir hata, .xls dosyaları gibi veya çevrimiçi olmayan başka bir veritabanı tarafından kullanılan yanlış türde dosyaların üzerine yazılmasını sağlayabilir. Geri yüklenen veritabanı tamamlanmış olsa da mevcut dosyaların üzerine yazılırsa rastgele veri kaybı mümkündür.

Geri yüklemeyi yineleme

Geri yüklemenin etkilerini geri almak mümkün değildir; ancak, dosya başına baştan başlayarak veri kopyalama ve rollforward etkilerini olumsuzlayabilirsiniz. Baştan başlamak için, istediğiniz dosyayı geri yükleyin ve rollforward işlemini yeniden gerçekleştirin. Örneğin, yanlışlıkla çok fazla günlük yedeğini geri yüklediyseniz ve hedeflenen durdurma noktanızın üzerine çıktıysanız, diziyi yeniden başlatmanız gerekir.

Etkilenen dosyaların tüm içeriği geri yüklenerek geri yükleme sırası durdurulabilir ve yeniden başlatılabilir.

Veritabanını veritabanı anlık görüntüsüne döndürme

Veritabanı geri döndürme işlemi (DATABASE_SNAPSHOT seçeneği kullanılarak belirtilir), tam kaynak veritabanını bir veritabanı anlık görüntüsü zamanına döndürerek, yani belirtilen veritabanı anlık görüntüsünde tutulan belirli bir noktadan verilerle kaynak veritabanının üzerine yazarak zamanda geri alır. Yalnızca geri almakta olduğunuz anlık görüntü mevcut olabilir. Geri döndürme işlemi daha sonra günlüğü yeniden oluşturur (bu nedenle, geri döndürülen bir veritabanını daha sonra kullanıcı hatası noktasına iletemezsiniz).

Veri kaybı, anlık görüntünün oluşturulmasından bu yana veritabanı güncelleştirmeleri ile sınırlandırılır. Geri alınan veritabanının meta verileri, anlık görüntü oluşturma sırasındaki meta veriyle aynıdır. Ancak anlık görüntüye geri dönmek tüm tam metin kataloglarını bırakır.

Veritabanı anlık görüntüsünden geri döndürme, medya kurtarma için tasarlanmamıştır. Normal yedekleme kümesinden farklı olarak, veritabanı anlık görüntüsü veritabanı dosyalarının tamamlanmamış bir kopyasıdır. Veritabanı veya veritabanı anlık görüntüsü bozuksa, bir anlık görüntüden geri dönmek mümkün olmayabilir. Ayrıca, mümkün olduğunda bile, bozulma durumunda geri dönmenin sorunu düzeltme olasılığı düşüktür.

Geri alma kısıtlamaları

Geri döndürme aşağıdaki koşullar altında desteklenmez:

  • Kaynak veritabanı tüm salt okunur veya sıkıştırılmış dosya gruplarını içerir.
  • Anlık görüntü oluşturulduğunda çevrimiçi olan tüm dosyalar çevrimdışıdır.
  • Şu anda veritabanının birden fazla anlık görüntüsü var.

Daha fazla bilgi için bkz. Veritabanını Veritabanı Anlık Görüntüsüne Geri Döndürme.

Security

Yedekleme işlemi isteğe bağlı olarak bir medya kümesi, yedekleme kümesi veya her ikisi için parola belirtebilir. Medya kümesinde veya yedekleme kümesinde parola tanımlandığında, RESTORE deyiminde doğru parolayı veya parolaları belirtmeniz gerekir. Bu parolalar, SQL Server araçlarını kullanarak yetkisiz geri yükleme işlemlerini ve yedekleme kümelerinin medyaya yetkisiz eklenmesini önler. Ancak, parola korumalı medyanın üzerine BACKUP deyiminin FORMAT seçeneğiyle yazılabilir.

Önemli

Bu parola tarafından sağlanan koruma zayıftır. Yetkili veya yetkisiz kullanıcıların SQL Server araçlarını kullanarak yanlış geri yüklemeyi önlemeye yöneliktir. Yedekleme verilerinin başka yollarla okunmasını veya parolanın değiştirilmesini engellemez. Bu özellik, SQL Server'ın gelecek bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. Yedeklemeleri korumak için en iyi yöntem, yedekleme bantlarını güvenli bir konumda depolamak veya yeterli erişim denetim listeleri (ACL' ler) tarafından korunan disk dosyalarına yedeklemektir. ACL'ler, yedeklemelerin oluşturulduğu dizin kökünde ayarlanmalıdır.

Permissions

Geri yüklenen veritabanı yoksa, kullanıcının RESTORE'yi yürütebilmesi için izinlere sahip CREATE DATABASE olması gerekir. Veritabanı varsa, RESTORE izinleri varsayılan olarak ve sysadmin sabit sunucu rollerinin dbcreator üyelerine ve veritabanının sahibine (dbo) (seçenek içinFROM DATABASE_SNAPSHOT, veritabanı her zaman vardır).

GERI YÜKLEME izinleri, üyelik bilgilerinin sunucu tarafından her zaman kullanılabilir olduğu rollere verilir. Sabit veritabanı rolü üyeliği yalnızca veritabanı erişilebilir ve hasarsız olduğunda denetlenebildiğinden ve RESTORE yürütülürken her zaman böyle olmadığından, sabit veritabanı rolünün db_owner üyelerinin RESTORE izinleri yoktur.

Örnekler

Tüm örneklerde tam veritabanı yedeklemesinin gerçekleştirildiği varsayılır.

RESTORE örnekleri şunlardır:

Uyarı

Ek örnekler için Geri Yükleme ve Kurtarma'ya Genel Bakış bölümünde listelenen geri yükleme nasıl yapılır konularına bakın.

A. Tam veritabanını geri yükleme

Aşağıdaki örnek, mantıksal yedekleme cihazından tam veritabanı yedeklemesini AdventureWorksBackups geri yükler. Bu cihazı oluşturma örneği için bkz . Yedekleme Cihazları.

RESTORE DATABASE AdventureWorks2022
  FROM AdventureWorks2022Backups;

Uyarı

Tam veya toplu günlüğe kaydedilen kurtarma modelini kullanan bir veritabanı için, SQL Server çoğu durumda veritabanını geri yüklemeden önce günlüğün kuyruğunu yedeklemenizi gerektirir. Daha fazla bilgi için bkz .Tail-Log Yedeklemeler.

[Örneklerin başı]

B. Tam ve değişiklik veritabanı yedeklemelerini geri yükleme

Aşağıdaki örnek, tam veritabanı yedeklemesini ve ardından yedekleme cihazından her iki yedeklemeyi Z:\SQLServerBackups\AdventureWorks2022.bak de içeren değişiklik yedeğini geri yükler. Geri yüklenecek tam veritabanı yedeklemesi, cihazdaki altıncı yedekleme kümesidir ()FILE = 6 ve değişiklik veritabanı yedeklemesi ise cihazdaki (FILE = 9) dokuzuncu yedeklemedir. Değişiklik yedeği kurtarılır kurtarılır kurtarz veritabanı kurtarılır.

RESTORE DATABASE AdventureWorks2022
    FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
    WITH FILE = 6,
      NORECOVERY;
RESTORE DATABASE AdventureWorks2022
    FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
    WITH FILE = 9,
      RECOVERY;

[Örneklerin başı]

C. RESTART söz dizimlerini kullanarak veritabanını geri yükleme

Aşağıdaki örnekte, sunucu güç kesintisi RESTART nedeniyle kesilen bir RESTORE işlemi yeniden başlatma seçeneği kullanılır.

-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE AdventureWorks2022
    FROM AdventureWorksBackups;
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE AdventureWorks2022
    FROM AdventureWorksBackups WITH RESTART;

[Örneklerin başı]

D. Veritabanını geri yükleme ve dosyaları taşıma

Aşağıdaki örnek tam veritabanını ve işlem günlüğünü geri yükler ve geri yüklenen veritabanını dizine C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data taşır.

RESTORE DATABASE AdventureWorks2022
    FROM AdventureWorksBackups
    WITH NORECOVERY,
      MOVE 'AdventureWorks2022_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf',
      MOVE 'AdventureWorks2022_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';
RESTORE LOG AdventureWorks2022
    FROM AdventureWorksBackups
    WITH RECOVERY;

[Örneklerin başı]

E. BACKUP ve RESTORE kullanarak veritabanı kopyalama

Aşağıdaki örnek veritabanının BACKUP bir kopyasını RESTORE oluşturmak için hem ve AdventureWorks2025 deyimlerini kullanır. deyimi MOVE , verilerin ve günlük dosyasının belirtilen konumlara geri yüklenmesine neden olur. deyimi RESTORE FILELISTONLY , geri yüklenen veritabanındaki dosyaların sayısını ve adlarını belirlemek için kullanılır. Veritabanının yeni kopyası olarak adlandırılır TestDB. Daha fazla bilgi için bkz. RESTORE FILELISTONLY.

BACKUP DATABASE AdventureWorks2022
    TO AdventureWorksBackups ;

RESTORE FILELISTONLY
    FROM AdventureWorksBackups ;

RESTORE DATABASE TestDB
    FROM AdventureWorksBackups
    WITH MOVE 'AdventureWorks2022_Data' TO 'C:\MySQLServer\testdb.mdf',
    MOVE 'AdventureWorks2022_Log' TO 'C:\MySQLServer\testdb.ldf';
GO

[Örneklerin başı]

F. STOPAT kullanarak belirli bir zamana geri yükleme

Aşağıdaki örnek, şu aşamadan itibaren veritabanını durumuna 12:00 AMApril 15, 2020 geri yükler ve birden çok günlük yedeklemesi içeren bir geri yükleme işlemi gösterir. yedekleme cihazında, AdventureWorksBackupsgeri yüklenecek tam veritabanı yedeklemesi cihazdaki üçüncü yedekleme kümesidir ()FILE = 3 ve ilk günlük yedeklemesi dördüncü yedekleme kümesidir ()FILE = 4 ve ikinci günlük yedeklemesi beşinci yedekleme kümesidir (FILE = 5).

RESTORE DATABASE AdventureWorks2022
    FROM AdventureWorksBackups
    WITH FILE = 3, NORECOVERY;

RESTORE LOG AdventureWorks2022
    FROM AdventureWorksBackups
    WITH FILE = 4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';

RESTORE LOG AdventureWorks2022
    FROM AdventureWorksBackups
    WITH FILE = 5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks2022 WITH RECOVERY;

[Örneklerin başı]

G. İşlem günlüğünü bir işarete geri yükleme

Aşağıdaki örnek, işlem günlüğünü adlı ListPriceUpdateişaretli işlemdeki işarete geri yükler.

USE AdventureWorks2022;
GO
BEGIN TRANSACTION ListPriceUpdate
    WITH MARK 'UPDATE Product list prices';
GO

UPDATE Production.Product
    SET ListPrice = ListPrice * 1.10
    WHERE ProductNumber LIKE 'BK-%';
GO

COMMIT TRANSACTION ListPriceUpdate;
GO

-- Time passes. Regular database
-- and log backups are taken.
-- An error occurs in the database.
USE master;
GO

RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 3, NORECOVERY;
GO

RESTORE LOG AdventureWorks2022
  FROM AdventureWorksBackups
    WITH FILE = 4,
    RECOVERY,
    STOPATMARK = 'UPDATE Product list prices';

[Örneklerin başı]

H. TAPE söz dizimlerini kullanarak geri yükleme

Aşağıdaki örnek, bir yedekleme cihazından tam veritabanı yedeklemesini TAPE geri yükler.

RESTORE DATABASE AdventureWorks2022
    FROM TAPE = '\\.\tape0';

[Örneklerin başı]

I. FILE ve FILEGROUP söz dizimlerini kullanarak geri yükleme

Aşağıdaki örnek, biri ikincil dosya grubu ve biri işlem günlüğü olmak üzere iki dosyası olan adlı MyDatabase bir veritabanını geri yükler. Veritabanı tam kurtarma modelini kullanır.

Veritabanı yedeklemesi, adlı MyDatabaseBackupsmantıksal yedekleme cihazında medya kümesindeki dokuzuncu yedekleme kümesidir. Ardından, cihazdaki sonraki üç yedekleme kümesinde (10, 11ve 12) MyDatabaseBackups bulunan üç günlük yedeği kullanılarak WITH NORECOVERYgeri yüklenir. ile son günlük yedeklemesi geri yüklendikten NORECOVERYsonra veritabanı kurtarılır.

Uyarı

Kurtarma, tüm günlük yedeklemeleri geri yüklenmeden önce çok erken kurtarma olasılığını azaltmak için ayrı bir adım olarak gerçekleştirilir. Kurtarma işlemi hakkında daha fazla bilgi için bkz. Geri Yükleme ve Kurtarma'ya Genel Bakış (SQL Server).

RESTORE DATABASEiçinde iki tür FILE seçenek olduğuna dikkat edin. FILE Yedekleme cihazı adından önceki seçenekler, yedekleme kümesinden geri yüklenecek veritabanı dosyalarının mantıksal dosya adlarını belirtir; örneğin, FILE = 'MyDatabase_data_1'. Bu yedekleme kümesi, medya kümesindeki ilk veritabanı yedeklemesi değildir; bu nedenle, medya kümesindeki konumu yan tümcesindeki FILEWITHseçeneği kullanılarak FILE = 9 belirtilir.

RESTORE DATABASE MyDatabase
    FILE = 'MyDatabase_data_1',
    FILE = 'MyDatabase_data_2',
    FILEGROUP = 'new_customers'
    FROM MyDatabaseBackups
    WITH
      FILE = 9,
      NORECOVERY;
GO
-- Restore the log backups
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 10,
      NORECOVERY;
GO
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 11,
      NORECOVERY;
GO
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 12,
      NORECOVERY;
GO
--Recover the database
RESTORE DATABASE MyDatabase WITH RECOVERY;
GO

[Örneklerin başı]

J. Veritabanı anlık görüntüsünden geri dönme

Aşağıdaki örnek, veritabanını bir veritabanı anlık görüntüsüne döndürür. Örnekte, veritabanında şu anda yalnızca bir anlık görüntü olduğu varsayılır. Bu veritabanı anlık görüntüsünün nasıl oluşturulacağını gösteren bir örnek için bkz. Veritabanı Anlık Görüntüsü Oluşturma.

Uyarı

Anlık görüntüye geri dönülürken tüm tam metin katalogları bırakılır.

USE master;
RESTORE DATABASE AdventureWorks2022 FROM DATABASE_SNAPSHOT = 'AdventureWorks_dbss1800';
GO

Daha fazla bilgi için bkz. Veritabanını Veritabanı Anlık Görüntüsüne Geri Döndürme.

[Örneklerin başı]

K. Microsoft Azure Blob depolamadan geri yükleme

Aşağıdaki üç örnek, Microsoft Azure depolama hizmetinin kullanımını içerir. Depolama Hesabı adı mystorageaccount. Veri dosyalarının kapsayıcısı olarak adlandırılır myfirstcontainer. Yedekleme dosyalarının kapsayıcısı olarak adlandırılır mysecondcontainer. Her kapsayıcı için okuma, yazma, silme ve listeleme haklarıyla bir depolanmış erişim ilkesi oluşturulmuştur. SQL Server kimlik bilgileri, Saklı Erişim İlkeleri ile ilişkili Paylaşılan Erişim İmzaları kullanılarak oluşturulmuştur. MICROSOFT Azure Blob Depolama ile SQL Server yedekleme ve geri yükleme özelliklerine özgü bilgiler için bkz. Microsoft Azure Blob Depolama ile SQL Server Yedekleme ve Geri Yükleme.

K1. Microsoft Azure depolama hizmetinden tam veritabanı yedeklemesini geri yükleme
konumunda mysecondcontainerbulunan tam veritabanı yedeklemesi Sales öğesine myfirstcontainergeri yüklenir. Sales şu anda sunucuda yok.

RESTORE DATABASE Sales
  FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
  WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
  MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
  STATS = 10;

K2. Microsoft Azure depolama hizmetinden yerel depolamaya tam veritabanı yedeklemesini geri yükleme konumunda mysecondcontainerbulunan tam veritabanı yedeklemesi Sales yerel depolama alanına geri yüklenir. Sales şu anda sunucuda yok.

RESTORE DATABASE Sales
  FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
  WITH MOVE 'Sales_Data1' to 'H:\DATA\Sales_Data1.mdf',
  MOVE 'Sales_log' to 'O:\LOG\Sales_log.ldf',
  STATS = 10;

K3. Yerel depolamadan Microsoft Azure depolama hizmetine tam veritabanı yedeklemesini geri yükleme

RESTORE DATABASE Sales
  FROM DISK = 'E:\BAK\Sales.bak'
  WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
  MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
  STATS = 10;

L. Anlık görüntü yedeklemesinden geri yükleme

SQL Server 2022(16.x) ile kullanıma sunulmuştur. Daha fazla bilgi için bkz. Transact-SQL anlık görüntü yedeklemesi oluşturma.

L1. Tam yedeklemeyi geri yükleme

RESTORE DATABASE Sales
  FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
  WITH METADATA_ONLY;

L2. Yedeklemeyi geri yükleme ve işlem günlüğü uygulama

RESTORE DATABASE Sales
  FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
  WITH METADATA_ONLY,
  NORECOVERY;

RESTORE LOG Sales
  FROM DISK = 'D:\MSSQL\Backup\SalesLog.trn'
  WITH RECOVERY;

L3. Anlık görüntü yedeklemesinden geri yükleme ve veritabanı ile günlük dosyalarını yeni bir konuma yerleştirme

RESTORE DATABASE Sales
FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
WITH METADATA_ONLY,
    MOVE Sales_Data TO 'D:\MSSQL\Sales.mdf',
    MOVE Sales_Log TO 'D:\MSSQL\Sales_log.ldf';

[Örneklerin başı]

Sonraki Adımlar

* SQL Yönetilen Örneği *

 

Azure SQL Yönetilen Varlık

Bu komut, bir veritabanının tamamını Azure Blob Depolama hesabından tam veritabanı yedeklemesinden (tam geri yükleme) geri yüklemenize olanak tanır.

Desteklenen diğer GERI YÜKLEME komutları için bkz:

Önemli

SQL Yönetilen Örneği otomatik yedeklemelerinden geri yüklemek için bkz. SQL Veritabanı Geri Yükleme.

Sözdizimi

--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
 FROM URL = { 'physical_device_name' | @physical_device_name_var } [ ,...n ]
[;]

Arguments

DATABASE

Hedef veritabanını belirtir.

URL'DEN

Geri yükleme işlemi için kullanılacak URL'lere yerleştirilen bir veya daha fazla yedekleme cihazını belirtir. URL biçimi, Microsoft Azure depolama hizmetinden yedeklemeleri geri yüklemek için kullanılır.

Önemli

URL'den geri yükleme yaparken birden çok cihazdan geri yüklemek için Paylaşılan Erişim İmzası (SAS) belirteçlerini kullanmanız gerekir. Paylaşılan Erişim İmzası oluşturma örnekleri için bkz. SQL Server'ı URL'ye Yedekleme ve PowerShell ile Azure Depolama'da Paylaşılan Erişim İmzası (SAS) belirteçleriyle SQL Kimlik Bilgilerinin oluşturulmasını basitleştirme.

n Virgülle ayrılmış bir listede en fazla 64 yedekleme cihazının belirtilebileceğini gösteren bir yer tutucudur.

Açıklamalar

Önkoşul olarak, blob depolama hesabı URL'si ile eşleşen ada ve gizli dizi olarak yerleştirilmiş Paylaşılan Erişim İmzası'na sahip bir kimlik bilgisi oluşturmanız gerekir. RESTORE komutu, yedekleme cihazını okumak için gereken bilgileri bulmak için blob depolama URL'sini kullanarak kimlik bilgilerini arar.

RESTORE işlemi zaman uyumsuzdur- istemci bağlantısı sonlansa bile geri yükleme devam eder. Bağlantınız bırakılırsa, geri yükleme işleminin durumunu (create ve DROP veritabanının yanı sıra) sys.dm_operation_status görünümünü de de kontrol edebilirsiniz.

Aşağıdaki veritabanı seçenekleri ayarlanır/geçersiz kılınabilir ve daha sonra değiştirilemez:

  • NEW_BROKER (aracı .bak dosyasında etkinleştirilmediyse)
  • ENABLE_BROKER (aracı .bak dosyasında etkinleştirilmemişse)
  • AUTO_CLOSE=KAPALI (.bak dosyasındaki bir veritabanında AUTO_CLOSE=ON varsa)
  • KURTARMA DOLU (.bak dosyasındaki bir veritabanında SIMPLE veya BULK_LOGGED kurtarma modeli varsa)
  • Bellek için iyileştirilmiş dosya grubu eklenir ve kaynak .bak dosyasında değilse XTP olarak adlandırılır. Mevcut bellek için iyileştirilmiş dosya grupları XTP olarak yeniden adlandırılır
  • SINGLE_USER ve RESTRICTED_USER seçenekleri MULTI_USER dönüştürülür

Sınırlamalar - SQL Yönetilen Örneği

Bu sınırlamalar geçerlidir:

  • . Birden çok yedekleme kümesi içeren BAK dosyaları geri yüklenemez.
  • . Birden çok günlük dosyası içeren BAK dosyaları geri yüklenemez.
  • .bak FILESTREAM verileri içeriyorsa geri yükleme başarısız olur.
  • Etkin Bellek içi nesneleri olan veritabanlarını içeren yedeklemeler Genel Amaçlı performans katmanına geri yüklenemez.
  • Salt okunur modda veritabanlarını içeren yedeklemeler şu anda geri yüklenemez.

Daha fazla bilgi için bkz. Azure SQL Yönetilen Örneği

Şifrelenmiş veritabanını geri yükleme

Şifrelenmiş bir veritabanını geri yüklemek için, veritabanını şifrelemek için kullanılan sertifikaya veya asimetrik anahtara erişiminiz olmalıdır. Sertifika veya asimetrik anahtar olmadan veritabanı geri yüklenemez. Sonuç olarak, veritabanı şifreleme anahtarını şifrelemek için kullanılan sertifika, yedekleme gerektiği sürece saklanmalıdır. Daha fazla bilgi için bkz. SQL Server Sertifikaları ve Asimetrik Anahtarlar.

Permissions

Kullanıcının RESTORE'i yürütebilmesi için izinlere sahip CREATE DATABASE olması gerekir.

CREATE LOGIN mylogin WITH PASSWORD = 'Very Strong Pwd123!';
GRANT CREATE ANY DATABASE TO [mylogin];

GERI YÜKLEME izinleri, üyelik bilgilerinin sunucu tarafından her zaman kullanılabilir olduğu rollere verilir. Sabit veritabanı rolü üyeliği yalnızca veritabanı erişilebilir ve hasarsız olduğunda denetlenebildiğinden ve RESTORE yürütülürken her zaman böyle olmadığından, sabit veritabanı rolünün db_owner üyelerinin RESTORE izinleri yoktur.

Örnekler

Aşağıdaki örnekler, kimlik bilgisi oluşturma dahil olmak üzere URL'den yalnızca kopya veritabanı yedeğini geri yükler.

A. Veritabanını dört yedekleme cihazından geri yükleme

-- Create credential
CREATE CREDENTIAL [https://mybackups.blob.core.windows.net/wide-world-importers]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
      SECRET = 'sv=2017-11-09&ss=bq&srt=sco&sp=rl&se=2022-06-19T22:41:07Z&st=2018-06-01T14:41:07Z&spr=https&sig=s7wddcf0w%3D';
GO
-- Restore database
RESTORE DATABASE WideWorldImportersStandard
FROM URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/00-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/01-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/02-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/03-WideWorldImporters-Standard.bak'

Veritabanı zaten varsa aşağıdaki hata gösterilir: Msg 1801, Level 16, State 1, Line 9 Database 'WideWorldImportersStandard' already exists. Choose a different database name.

B. Değişken aracılığıyla belirtilen veritabanını geri yükleme

DECLARE @db_name sysname = 'WideWorldImportersStandard';
DECLARE @url nvarchar(400) = N'https://mybackups.blob.core.windows.net/wide-world-importers/WideWorldImporters-Standard.bak';

RESTORE DATABASE @db_name
FROM URL = @url

C. Geri yükleme deyiminin ilerleme durumunu izleme

SELECT query = a.text, start_time, percent_complete,
    eta = dateadd(second,estimated_completion_time/1000, getdate())
FROM sys.dm_exec_requests r
    CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command = 'RESTORE DATABASE'

Uyarı

Bu görünümde büyük olasılıkla iki geri yükleme isteği gösterilir. Bunlardan biri istemci tarafından gönderilen özgün RESTORE deyimi, diğeri de istemci bağlantısı başarısız olsa bile yürütülen arka plan RESTORE deyimidir.

* Analiz
Platform Sistemi (PDW) *

 

Analiz Platformu Sistemi

Bir Analytics Platform Sistemi (PDW) kullanıcı veritabanını veritabanı yedeklemesinden Analytics Platform Sistemi (PDW) aletine geri yükler. Veritabanı, daha önce Analytics Platform Sistemi (PDW) BACKUP DATABASE - Analytics Platform Sistemi komutu tarafından oluşturulmuş bir yedeklemeden geri yüklenir. Olağanüstü durum kurtarma planı oluşturmak veya veritabanlarını bir gereçten diğerine taşımak için yedekleme ve geri yükleme işlemlerini kullanın.

Uyarı

Sistem veritabanını geri master yüklemek, alet oturum açma bilgilerini geri yüklemeyi içerir. Veritabanını geri yüklemek master için Configuration Manageraracının Ana Veritabanını Geri Yükle sayfasını kullanın. Denetim düğümüne erişimi olan bir yönetici bu işlemi gerçekleştirebilir. Analiz Platformu Sistemi (PDW) veritabanı yedeklemeleri hakkında daha fazla bilgi içinAnalytics Platform Sistemi (PDW) ürün belgelerindeki "Yedekleme ve Geri Yükleme" bölümüne bakın.

Sözdizimi

-- Restore the master database
-- Use the Configuration Manager tool.

Restore a full user database backup.
RESTORE DATABASE database_name
    FROM DISK = '\\UNC_path\full_backup_directory'
[;]

--Restore a full user database backup and then a differential backup.
RESTORE DATABASE database_name
    FROM DISK = '\\UNC_path\differential_backup_directory'
    WITH [ ( ] BASE = '\\UNC_path\full_backup_directory' [ ) ]
[;]

--Restore header information for a full or differential user database backup.
RESTORE HEADERONLY
    FROM DISK = '\\UNC_path\backup_directory'
[;]

Arguments

VERITABANı database_name GERI YÜKLEME

Kullanıcı veritabanının database_name adlı bir veritabanına geri yüklenmesini belirtir. Geri yüklenen veritabanının adı yedeklenen kaynak veritabanından farklı olabilir. database_name hedef alette veritabanı olarak mevcut olamaz. İzin verilen veritabanı adları hakkında daha fazla bilgi için Analiz Platformu Sistemi (PDW) ürün belgelerindeki "Nesne Adlandırma Kuralları" bölümüne bakın.

Kullanıcı veritabanını geri yüklemek tam veritabanı yedeğini geri yükler ve isteğe bağlı olarak alete değişiklik yedeğini geri yükler. Kullanıcı veritabanının geri yüklenmesi, veritabanı kullanıcılarını ve veritabanı rollerini geri yüklemeyi içerir.

DISKTEN = '\\UNC_path\backup_directory'

Analytics Platform Sistemi'nin (PDW) yedekleme dosyalarını geri yükleyeceği ağ yolu ve dizini. Örneğin, FROM DISK = '\\xxx.xxx.xxx.xxx\backups\2012\Monthly\08.2012.Mybackup'.

backup_directory Tam veya değişiklik yedeğini içeren bir dizinin adını belirtir. Örneğin, tam veya değişiklik yedeklemesi üzerinde BIR RESTORE HEADERONLY işlemi gerçekleştirebilirsiniz.

full_backup_directory Tam yedeklemeyi içeren bir dizinin adını belirtir.

differential_backup_directory Değişiklik yedeğini içeren dizinin adını belirtir.

  • Yol ve yedekleme dizini zaten mevcut olmalı ve tam evrensel adlandırma kuralı (UNC) yolu olarak belirtilmelidir.
  • Yedekleme dizininin yolu yerel bir yol olamaz ve Analiz Platformu Sistemi (PDW) alet düğümlerinden herhangi birinde bir konum olamaz.
  • UNC yolunun ve yedekleme dizini adının uzunluğu üst sınırı 200 karakterdir.
  • Sunucu veya ana bilgisayar bir IP adresi olarak belirtilmelidir.

HEADERONLY'İ GERİ YÜKLE

Yalnızca bir kullanıcı veritabanı yedeklemesi için üst bilgi bilgilerini döndürmeyi belirtir. Diğer alanların yanı sıra, üst bilgi yedeklemenin metin açıklamasını ve yedekleme adını içerir. Yedekleme adının, yedekleme dosyalarını depolayan dizinin adıyla aynı olması gerekmez.

RESTORE HEADERONLY sonuçları, SQL Server RESTORE HEADERONLY sonuçlarından sonra desenlenir. Sonuç 50'den fazla sütuna sahiptir ve bunların hepsi Analiz Platformu Sistemi (PDW) tarafından kullanılmaz. SQL Server RESTORE HEADERONLY sonuçlarındaki sütunların açıklaması için bkz. RESTORE HEADERONLY.

Permissions

İzin gerektirir CREATE ANY DATABASE .

Yedekleme dizinine erişme ve bu dizinden okuma izni olan bir Windows hesabı gerektirir. Ayrıca Windows hesabı adını ve parolasını Analiz Platformu Sistemi'nde (PDW) depolamanız gerekir.

Hata İşleme

RESTORE DATABASE komutu aşağıdaki koşullarda hatalara neden olur:

  • Geri yükleneceği veritabanının adı hedef gereçte zaten var. Bunu önlemek için benzersiz bir veritabanı adı seçin veya geri yüklemeyi çalıştırmadan önce mevcut veritabanını bırakın.
  • Yedekleme dizininde geçersiz bir yedekleme dosyası kümesi var.
  • Oturum açma izinleri veritabanını geri yüklemek için yeterli değildir.
  • Analiz Platformu Sistemi (PDW), yedekleme dosyalarının bulunduğu ağ konumu üzerinde doğru izinlere sahip değil.
  • Yedekleme dizininin ağ konumu yok veya kullanılamıyor.
  • İşlem düğümlerinde veya Denetim düğümünde yetersiz disk alanı var. Analiz Platformu Sistemi (PDW), geri yüklemeyi başlatmadan önce alette yeterli disk alanı olduğunu onaylamaz. Bu nedenle, RESTORE DATABASE deyimini çalıştırırken disk alanı yetersiz hatası oluşturmak mümkündür. Yetersiz disk alanı oluştuğunda Analiz Platformu Sistemi (PDW) geri yüklemeyi geri alır.
  • Veritabanının geri yüklendiği hedef gereç, veritabanının yedeklendiği kaynak aletten daha az İşlem düğümüne sahiptir.
  • Veritabanı geri yükleme işlemi bir işlem içinden denendi.

Açıklamalar

Analiz Platformu Sistemi (PDW), veritabanı geri yüklemelerinin başarısını izler. Değişiklik veritabanı yedeklemesini geri yüklemeden önce Analiz Platformu Sistemi (PDW), tam veritabanı geri yükleme işleminin başarıyla tamamlanmış olduğunu doğrular.

Geri yükleme işleminden sonra kullanıcı veritabanında veritabanı uyumluluk düzeyi 120 olur. Bu, özgün uyumluluk düzeyi ne olursa olsun tüm veritabanları için geçerlidir.

Daha fazla işlem düğümüne sahip bir gereci geri yükleme

Veritabanını daha küçük bir aletten daha büyük bir alete geri yükledikten sonra DBCC SHRINKLOG 'u (Azure Synapse Analytics) çalıştırın çünkü yeniden dağıtım işlem günlüğünü artırır.

Daha fazla sayıda İşlem düğümüne sahip bir gerecin geri yüklenmesi, ayrılan veritabanı boyutunu İşlem düğümlerinin sayısıyla orantılı olarak büyütür.

Örneğin, 2 düğümlü bir gereçten (düğüm başına 30 GB) 6 düğümlü bir gerece 60 GB veritabanı geri yüklerken, Analiz Platformu Sistemi (PDW), 6 düğümlü alette 180 GB veritabanı (düğüm başına 30 GB ile 6 düğüm) oluşturur. Analiz Platformu Sistemi (PDW) başlangıçta veritabanını kaynak yapılandırmayla eşleşecek şekilde 2 düğüme geri yükler ve ardından verileri 6 düğümün tümüne yeniden dağıtır.

Yeniden dağıtımdan sonra her İşlem düğümü, daha küçük kaynak gereci üzerindeki her İşlem düğümünden daha az gerçek veri ve daha fazla boş alan içerir. Veritabanına daha fazla veri eklemek için ek alanı kullanın. Geri yüklenen veritabanı boyutu ihtiyacınızdan büyükse, veritabanı dosya boyutlarını küçültmek için ALTER DATABASE - PDW kullanabilirsiniz.

Sınırlamalar ve kısıtlamalar

Bu sınırlamalar ve kısıtlamalar için kaynak alet, veritabanı yedeklemesinin oluşturulduğu alettir ve hedef alet veritabanının geri yükleneceği alettir.

  • Veritabanını geri yüklemek istatistikleri otomatik olarak yeniden oluşturmaz.
  • Herhangi bir zamanda alette yalnızca bir RESTORE DATABASE veya BACKUP DATABASE deyimi çalıştırılabilir. Aynı anda birden çok yedekleme ve geri yükleme deyimi gönderilirse, alet bunları bir kuyruğa alır ve teker teker işler.
  • Veritabanı yedeklemesini yalnızca kaynak gereçten aynı sayıda veya daha fazla İşlem düğümüne sahip bir Analytics Platform Sistemi (PDW) hedef gerecine geri yükleyebilirsiniz. Hedef gerecin kaynak gerecinden daha az İşlem düğümü olamaz.
  • SQL Server 2012 PDW donanımına sahip bir alette oluşturulan bir yedeklemeyi SQL Server 2008 R2 donanımına sahip bir alete geri yükleyemezsiniz. Alet başlangıçta SQL Server 2008 R2 PDW donanımıyla satın alınmış ve şimdi SQL Server 2012 PDW yazılımı çalıştırıyor olsa bile bu durum geçerlidir.

Kilitleme

DATABASE nesnesinde özel bir kilit alır.

Örnekler

A. Basit RESTORE örnekleri

Aşağıdaki örnek, veritabanına tam yedeklemeyi SalesInvoices2013 geri yükler. Yedekleme dosyaları dizininde \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full depolanır. Veritabanı SalesInvoices2013 hedef gereçte zaten var olamaz veya bu komut bir hatayla başarısız olur.

RESTORE DATABASE SalesInvoices2013
FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full';

B. Tam ve değişiklik yedeğini geri yükleme

Aşağıdaki örnek bir tam yedeklemeyi ve ardından veritabanına bir değişiklik yedeğini SalesInvoices2013 geri yükler

Veritabanının tam yedeklemesi, dizininde depolanan tam yedeklemeden \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full geri yüklenir. Geri yükleme başarıyla tamamlanırsa, değişiklik yedeği veritabanına geri yüklenir SalesInvoices2013 . Değişiklik yedeklemesi dizininde \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff depolanır.

RESTORE DATABASE SalesInvoices2013
    FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff'
    WITH BASE = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]

C. Yedekleme üst bilgisini geri yükleme

Bu örnek, veritabanı yedeklemesi \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Fulliçin üst bilgi bilgilerini geri yükler. Komut, yedekleme için bir bilgi satırıyla sonuç alır Invoices2013Full .

RESTORE HEADERONLY
    FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]

Yedeklemenin içeriğini denetlemek veya yedeklemeyi geri yüklemeye çalışmadan önce hedef geri yükleme aletinin kaynak yedekleme aletiyle uyumlu olduğundan emin olmak için üst bilgi bilgilerini kullanabilirsiniz.

Sonraki Adımlar