RESTORE İfadeler (Transact-SQL)

Komut kullanılarak BACKUP alınan SQL veritabanı yedeklemelerini geri getirir.

Ü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

  • Argümanların tanımları hakkında daha fazla bilgi için Arguments bölümüne bakınızRESTORE.
--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

Argümanların açıklamaları için bkz.RESTORE Argümanlar.

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.

Opsiyonlarla RESTORE İlgilenecek Ek Noktalar

Üretimi RESTORE Durdurulmuş Anahtar Kelimeler

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

RESTORE GÜNLÜK

RESTORE LOG, rollforward sırasında dosyaların oluşturulmasını sağlayan 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. Veritabanını, günlüğün kuyruğunu yedeklemeden geri yüklemek, hata ile sonuçlanır; tabii eğer ifade RESTOREDATABASE WITH REPLACE veya WITH STOPAT maddesini içermiyorsa; bu madde veri yedeklemesinin bitmesinden sonra gerçekleşen bir zaman veya işlemi belirtmek zorundadır. Kuyruk günlüğü yedeklemeleri hakkında daha fazla bilgi için bkz. yedeklemelerTail-Log.

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

Geri alma işlemi RESTORE [ RECOVERY | 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 şifresi çözüldükten sonra, gelecekte REGENERATE ifadesini kullanarak sunucuya DMK'nın bir kopyasını servis ana anahtarı (SMK) ile şifrelenmiş şekilde sağlama seçeneğiniz ALTER MASTER KEY 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'nın yenilenmesi 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 kullanıcılar kısa bir gecikmeyle kapatılır. 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.

RESTORE bir hata sonrası yeniden başlatılabilir. Ayrıca, hatalara rağmen devam etmenizi söyleyebilirsiniz RESTORE ve mümkün olduğunca çok veriyi geri kazanır (seçeneğe CONTINUE_AFTER_ERROR bakınız).

RESTORE 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, kullanılabilir veritabanı seçeneklerinin çoğu ALTER DATABASE yedekleme bittiğinde geçerli 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 bir RESTORE ifadeden sonra ayarlanır ve bu ifade WITH RESTRICTED_USER seçeneğini içerir.

Ş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.

Bu RESTORE ifade ayrıca alternatif konumlara geri yükleme, diferansiyel geri yükleme, dosya ve dosya grubu geri yükleme ve tam metin verilerin diferansiyel dosya ve dosya grubu geri yüklemeleri için de kullanılabilir. Ayrıca, RESTORE yalnızca tam metin dosyaları ve veritabanı verilerini geri getirebilir.

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 deyimde belirtilen veritabanı geçerli sunucuda zaten varsa ve belirtilen veritabanı ailesi GUID'i yedekleme kümesine 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. Bir medya setinde veya yedek setinde bir şifre tanımlandığında, ifadede doğru şifre veya şifreleri RESTORE belirtmelisiniz. Bu parolalar, SQL Server araçlarını kullanarak yetkisiz geri yükleme işlemlerini ve yedekleme kümelerinin medyaya yetkisiz eklenmesini önler. Ancak, şifre korumalı medya, ifadenin FORMAT seçeneğiyle BACKUP üzerine 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üklenmekte olan veritabanı mevcut değilse, kullanıcının CREATE DATABASE komutunu çalıştırabilmesi için RESTORE izinlerine sahip olması gerekir. Veritabanı varsa, RESTORE izinler varsayılan olarak sabit sysadmindbcreator sunucu rollerinin üyelerine ve veritabanının sahibine (dbo) atanır (bu FROM DATABASE_SNAPSHOT seçenek için veritabanı her zaman vardır).

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 ve zarar görmediğinde kontrol edilebildiğinden, ki bu her zaman yürütüldüğünde RESTORE böyle değildir; sabit veritabanı rolünün db_owner üyelerinin izni yoktur RESTORE .

Örnekler

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

Örnekler RESTORE ş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. Veritabanını ve BACKUP kullanarak kopyalayın RESTORE

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 RESTORE 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 komut, yedek cihazını okumak için gereken bilgileri bulmak için blob depolama URL'sini kullanarak kimlik bilgilerini arar.

RESTORE İşlem asenkron - istemci bağlantısı kesilse 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 çalıştırabilmesi RESTOREiçin izinlere sahip CREATE DATABASE olması gerekir.

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

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 ve zarar görmediğinde kontrol edilebildiğinden, ki bu her zaman yürütüldüğünde RESTORE böyle değildir; sabit veritabanı rolünün db_owner üyelerinin izni yoktur RESTORE .

Ö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. Biri istemci tarafından gönderilen orijinal RESTORE ifade, diğeri ise istemci bağlantısı başarısız olsa bile yürüten arka plan RESTORE ifadesidir.

* 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 System (PDW) BACKUPDATABASE - Analytics Platform System komutu tarafından oluşturulan bir yedeklemeden geri getirilir. 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 Yapılandırma Yöneticisiaracı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

RESTORE DATABASE database_name

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 diferansiyel yedekleme üzerinde bir RESTORE HEADERONLY işlem yapabilirsiniz.

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.

RESTORE HEADERONLY

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 RESTORE HEADERONLYsonuçlar SQL Server RESTORERESTORE HEADERONLY sonuçlarına göre örneklenmiştir. 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

Komut RESTOREDATABASE aşağıdaki koşullarda hatalara yol açar:

  • 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, ifadeyi RESTOREDATABASE çalıştırırken disk alanı dışı hata oluşturulabilir. 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 getirilen veritabanı boyutu ihtiyacınzdan büyükse, ALTER DATABASE veritabanı dosya boyutlarını küçültmek için - 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.
  • Cihazda aynı anda yalnızca bir RESTOREDATABASE veya BACKUPDATABASE bir ifade çalışabilir. 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

Nesneye özel bir kilitleme DATABASE alıyor.

Örnekler

A. Basit örnekler RESTORE

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