Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
- SQL Server geri yükleme senaryoları hakkında daha fazla bilgi için bkz. Geri Yükleme ve Kurtarma'ya Genel Bakış.
- Bir veritabanını başka bir örnekten geri yüklerken, Veritabanını Başka Bir Sunucu Örneğinde Kullanılabilir Hale Getirirken Meta Verileri Yönet (SQL Server) başlığındaki bilgileri göz önünde bulundurun.
- Microsoft Azure Blob Depolama'dan geri yükleme hakkında daha fazla bilgi için bkz. MICROSOFT Azure Blob Depolama ile SQL Server Yedekleme ve Geri Yükleme.
- S3 uyumlu nesne depolamaya yedekleme ve geri yükleme, SQL Server 2022'de (16.x) kullanıma sunulmuştur. S3 uyumlu nesne depolama alanından geri yükleme hakkında daha fazla bilgi için bkz. S3 uyumlu nesne depolama alanı ile SQL Server yedekleme ve geri yükleme. Ayrıca S3 uyumlu nesne depolama için SQL Server'ı URL'ye yedekleme seçeneğini gözden geçirin.
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:
Tam veritabanı geri yükleme
Tam veritabanı yedeklemesi ile başlayarak veritabanının tamamını geri yükler. Bunun ardından değişiklik veritabanı yedeklemesi (ve günlük yedeklemeleri) geri yüklenebilir. Daha fazla bilgi için bkz . Tam Veritabanı Geri Yüklemeleri - Basit Kurtarma Modeli veya Tam Veritabanı Geri Yüklemeleri - Tam Kurtarma Modeli.
Dosya geri yükleme
Çok dosya grubu veritabanındaki bir dosyayı veya dosya grubunu geri yükler. Basit kurtarma modeli altında, dosyanın salt okunur bir dosya grubuna ait olması gerekir. Tam dosya geri yükleme işleminden sonra değişiklik dosyası yedeklemesi geri yüklenebilir. Daha fazla bilgi için bkz. Dosya Geri Yüklemeleri - Tam Kurtarma Modeli ve Dosya Geri Yüklemeleri - Basit Kurtarma Modeli.
Sayfa geri yükleme
Tek tek sayfaları geri yükler. Sayfa geri yükleme yalnızca tam ve toplu günlüğe kaydedilen kurtarma modellerinin altında kullanılabilir. Daha fazla bilgi için bkz. Sayfaları Geri Yükleme - SQL Server.
Parçalı geri yükleme
Veritabanını birincil dosya grubundan ve bir veya daha fazla ikincil dosya grubundan başlayarak aşamalı olarak geri yükler. Parçalı geri yükleme, PARTIAL seçeneğini kullanarak bir RESTORE DATABASE ile başlar ve geri yüklenecek bir veya daha fazla ikincil dosya grubu belirtir. Daha fazla bilgi için bkz . Piecemeal Restores - SQL Server.
Yalnızca kurtarma
Veritabanıyla zaten tutarlı olan ve yalnızca kullanıma sunulması gereken verileri kurtarır. Daha fazla bilgi için bkz. Verileri Geri Yüklemeden Veritabanını Kurtarma.
İşlem günlüğü geri yükleme.
Tam veya toplu günlüğe kaydedilen kurtarma modeli altında, istenen kurtarma noktasına ulaşmak için günlük yedeklemelerinin geri yüklenmesi gerekir. Günlük yedeklemelerini geri yükleme hakkında daha fazla bilgi için bkz. İşlem Günlüğü Yedeklemelerini Uygulama - SQL Server.
Always On kullanılabilirlik grubu için kullanılabilirlik veritabanı hazırlama
Daha fazla bilgi için bkz. İkincil Veritabanını Kullanılabilirlik Grubu - SQL Server için El ile Hazırlama.
Veritabanı yansıtması için yansıtma veritabanı hazırlama
Daha fazla bilgi için bkz. Yansıtma Veritabanını Yansıtma için Hazırlama - SQL Server.
Çevrimiçi Geri Yükleme
Uyarı
Çevrimiçi geri yüklemeye yalnızca SQL Server'ın Enterprise sürümünde izin verilir.
Ç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.
Microsoft Azure Blob Depolama'dan geri yükleme hakkında daha fazla bilgi için bkz. MICROSOFT Azure Blob Depolama ile SQL Server Yedekleme ve Geri Yükleme.
S3 uyumlu nesne depolamaya yedekleme ve geri yükleme, SQL Server 2022'de (16.x) kullanıma sunulmuştur. S3 uyumlu nesne depolama alanından geri yükleme hakkında daha fazla bilgi için bkz. S3 uyumlu nesne depolama alanı ile SQL Server yedekleme ve geri yükleme. Ayrıca S3 uyumlu nesne depolama için SQL Server'ı URL'ye yedekleme seçeneğini gözden geçirin.
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
STOPATseç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.
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.
S3 uyumlu nesne depolamaya yedekleme ve geri yükleme, SQL Server 2022'de (16.x) kullanıma sunulmuştur. S3 uyumlu nesne depolama alanından geri yükleme hakkında daha fazla bilgi için bkz. S3 uyumlu nesne depolama alanı ile SQL Server yedekleme ve geri yükleme. Ayrıca S3 uyumlu nesne depolama için SQL Server'ı URL'ye yedekleme seçeneğini gözden geçirin.
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:
- A. Tam veritabanını geri yükleme
- B. Tam ve fark veritabanı yedeklerini geri yükleme
- C. RESTART söz dizimlerini kullanarak veritabanını geri yükleme
- D. Veritabanını geri yükleme ve dosyaları taşıma
- E. BACKUP ve RESTORE kullanarak veritabanı kopyalama
- F. STOPAT kullanarak belirli bir noktaya geri yükleme
- G. İşlem günlüğünü bir işarete geri yükleme
- H. TAPE söz dizimi kullanarak geri yükleme
- I. FILE ve FILEGROUP söz dizimlerini kullanarak geri yükleme
- J. Veritabanı anlık görüntüsünden geri dönme
- K. Microsoft Azure Blob Depolama'dan geri yükleme
- L. Anlık görüntü yedeklemesinden geri yükleme
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.
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;
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;
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;
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
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;
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';
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';
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
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.
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';
Sonraki Adımlar
- Geri Yükleme ve Kurtarma'ya Genel Bakış (SQL Server)
- SQL Server Veritabanlarını Yedekleme ve Geri Yükleme
- Sistem Veritabanlarını Yedekleme ve Geri Yükleme (SQL Server)
- SSMS Kullanarak Veritabanı Yedeklemesini Geri Yükleme
- Full-Text Kataloglarını ve Dizinlerini Yedekleme ve Geri Yükleme
- Çoğaltılan Veritabanlarını Yedekleme ve Geri Yükleme
- YEDEK
- Medya Kümeleri, Medya Aileleri ve Yedekleme Kümeleri
- GERI YÜKLEMEYI TEK TEK GERI YÜKLEME
- VERIFYONLY GERI YÜKLEME
- SADECE DOSYA LISTESINI GERI GETIR (Transact-SQL)
- HEADERONLY GERI YÜKLEME (Transact-SQL)
- Yedekleme Geçmişi ve Üst Bilgi Bilgileri
* 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:
- SADECE DOSYA LISTESINI GERI GETIR (Transact-SQL)
- HEADERONLY GERI YÜKLEME (Transact-SQL)
- YALNIZCA YALNIZCA ETKİLENDİ (Transact-SQL)
- VERIFYONLY GERI YÜKLEME (Transact-SQL)
Ö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çin
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.
- Kimlik bilgilerinin zaten orada olduğunu doğrulamak için sys.dm_pdw_network_credentials kullanın.
- Kimlik bilgilerini eklemek veya güncelleştirmek için sp_pdw_add_network_credentials - Azure Synapse Analytics kullanın.
- Analytics Platform Sistemi'nden (PDW) kimlik bilgilerini kaldırmak için sp_pdw_remove_network_credentials - Azure Synapse Analytics kullanın.
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.