RESTORE (Transact-SQL)
Yedekle komutu kullanılarak gerçekleştirilen yedekleri geri yükler.Bu komut aşağıdaki geri yükleme senaryoları gerçekleştirmenize olanak sağlar:
Tüm bir veritabanının bir tam veritabanı yedek (bir tam geri yükleme) geri yükleyin.
Bölümü (bir kısmi geri yükleme) bir veritabanı geri yükleme.
Belirli dosyaları veya filegroups (bir dosya geri yüklemesi) veritabanına geri yükleyin.
Belirli sayfaları (bir sayfa geri yükleme) veritabanına geri yükleyin.
İşlem günlüğü (bir hareketi oturum geri yükleme) bir veritabanı üzerine geri yükleyin.
Bir veritabanı veritabanı anlık görüntüsütarafından yakalanan saat noktasına geri dönmek.
Hakkında daha fazla bilgi için SQL ServerBkz:geri yükleme senaryoları, Geri yükleme ve kurtarma Özet (SQL Server) ve SQL Server veritabanları için geri yükleme senaryoları uygulama.
Not
Bağımsız değişkenlerin açıklamaları hakkında daha fazla bilgi için bkz: Bağımsız değişkenlerini (Transact-SQL) 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 <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>
| , <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 } = { '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
--Backup Set Options
| FILE = { backup_set_file_number | @backup_set_file_number }
| PASSWORD = { password | @password_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
<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']
}
Bağımsız değişkenler
Bağımsız değişkenler tanımları için bkz: Bağımsız değişkenlerini (Transact-SQL) geri yükleme.
Açıklamalar
geri yükleme yedek sıkıştırılmış veritabanı sıkıştırılmamış bir veritabanına yapamazsınız.
Belirtilen veritabanı, kullanılıyorsa bir çevrimdışı geri yüklemesırasında geri yükleme kullanıcıların kapalı kısa bir gecikmeden sonra zorlar.çevrimiçi geri yükleme , birincil olmayan dosya grubuiçin veritabanı ne zaman geri yüklenen dosya grubu çevrimdışı duruma geçiriliyor dışında kullanımda da sağlanabilir.Belirtilen veritabanındaki herhangi bir veri geri yüklenen verileriyle değiştirilir.
Veritabanı kurtarmahakkında daha fazla bilgi için bkz: Anlama nasıl geri ve SQL Server Yedekleme kurtarma çalışma ve SQL Server veritabanları için geri yükleme senaryoları uygulama.
Veritabanı harmanlama işletim sistemi tarafından desteklenen sürece bile farklı işlemci türleri arasında çapraz platform geri yükleme işlemleri gerçekleştirilebilir.
Geri yükleme bir hatadan sonra yeniden başlatılabilir.Buna ek olarak, geri yükleme hataları rağmen devam etmek için söyleyebilir ve olabildiğince çok veri geri yükler (CONTINUE_AFTER_ERROR seçeneği bakın).Daha fazla bilgi için, bkz. SQL Server geri yükleme hataları nedeniyle zarar görmüş yedekleri tarafından yanıt.
Geri yükleme açık bir verilmez veya örtük işlem.
Bozuk bir geri ana veritabanı özel bir yordam kullanılarak gerçekleştirilir.Daha fazla bilgi için, bkz. Master veritabanını geri dikkat edilmesi gereken noktalar.
İle oluşturulan yedekler Microsoft SQL Server olamaz geri yüklenemedi önceki sürüm SQL Server.
Bir veritabanını geri yüklemek için örnek plan önbelleği temizler SQL Server.Plan önbelleği temizleniyor, yeniden derlemesinde tüm sonraki yürütme planları, neden olur ve ani bir geçici sorgu performans azalmasına neden olabilir.İtibariyle SQL Server 2005 plan önbelleğinde temizlenmiş her cachestore için Service Pack 2 SQL Server hata günlüğü aşağıdaki bilgi iletisini içerir: "SQL Server'% s' için temizleme cachestore yerde %d karşılaştı cachestore (planı önbellek parçası) bazı veritabanı bakım veya yeniden yapılandırma işlemleri yüzünden".Bu saat aralığında önbelleği temizlendi sürece bu ileti her beş dakikada bir günlüğe kaydedilir.
Geri yüklenen veritabanı az olmalıdır sürüm 80 (SQL Server 2000) geri yükleme SQL Server 2008 R2.SQL Server 2000veya SQL Server 2005 bir uyumluluk düzey küçüktür 80 olan veritabanları küme geri zaman 80 uyumluluk olacaktır.
Not
geri yükleme sonra bir SQL Server 2005 veya SQL Server 2000 veritabanına SQL Server 2008 R2, veritabanı hemen kullanılabilir hale gelir ve daha sonra otomatik olarak yükseltilir.Veritabanı tam metin dizinlerini varsa, yükseltme işlemi alır, sıfırlar veya bunları ayarına bağlı olarak yeniden oluşturur upgrade_option sunucu özellik.Yükseltme seçeneği almak için küme olup olmadığını (upgrade_option = 2) veya yeniden (upgrade_option = 0), tam metin dizinlerini yükseltme sırasında kullanılamaz.Dizini Oluşturulmakta olan veri miktarına bağlı olarak, alma işlemi birkaç saat sürebilir ve yeniden inşa etmek en çok on kat daha uzun sürebilir.Yükseltme seçeneği almak için küme olduğunda, hiçbir tam metin kataloğu varsa ilişkili tam metin dizinlerini yeniden oluşturulur.Ayarı değiştirmek için upgrade_option sunucu özellik, kullanım sp_fulltext_service.
Geri yükleme senaryoları
SQL Servergeri yükleme senaryoları çeşitli destekler:
Tam veritabanı geri yükleme
Hangi bir fark veritabanı yedek (ve günlüğü yedekleri) geri yükleyerek takip edilebilir bir tam veritabanı yedekile başlayan tüm veritabanını geri yükler.Daha fazla bilgi için, bkz. Tam veritabanı geri yükleme (Basit kurtarma modeli) gerçekleştirme veya Tam veritabanı geri yükleme (tam kurtarma modeli) gerçekleştirme.
Dosya geri yükleme
Bir dosya veya veritabanındaki bir multi -dosya grubu dosya grubu geri yükler.Not Basit kurtarma modeli altında bir salt okunur dosya grubuiçin dosya ait olması gerekir.Bir tam dosya geri yüklemesisonra bir fark dosyası yedek geri yüklenebilir.Daha fazla bilgi için, bkz. Dosya gerçekleştirme (tam kurtarma modeli) yükler ve Dosya gerçekleştirme (Basit kurtarma modeli) yükler.
Sayfa geri yükleme
Tek tek sayfaları geri yükler.Sayfa geri yükleme , yalnızca tam ve toplu kaydedilmiş kurtarma modelleri altında kullanılabilir.Daha fazla bilgi için, bkz. Sayfa gerçekleştirme geri yükler.
Parçalı geri yükleme
Veritabanı, birincil dosya grubu ve bir veya daha fazla ikincil filegroups ile başlayarak aşamalı geri yükler.Bir parçalı geri yükleme geri kısmi seçeneğini kullanarak ve bir veya daha fazla ikincil filegroups belirterek geri yüklenecek veritabanı ile başlar.Daha fazla bilgi için, bkz. Parçalı geri yüklemeler gerçekleştirme.
Yalnızca Kurtarma
Zaten veritabanı ile tutarlı ve yalnızca kullanılabilir yapılması gerektiğinde verileri kurtarır.Daha fazla bilgi için, bkz. Bir veritabanına veri geri yüklemeden kurtarmak.
Hareket günlük geri yükleme.
Tam altında veya toplu günlük kurtarma modeli, günlüğü yedekleri geri yüklemek istediğiniz kurtarma noktası ulaşmak için gerekli.Günlüğü yedekleri geri yükleme hakkında daha fazla bilgi için bkz: İşlem günlüğü yedekleri uygulanıyor.
yansıtma veritabanıoluşturun.
Daha fazla bilgi için, bkz. Nasıl yapılır: İçin (Transact-SQL) yansıtma yansıtma veritabanı hazırlama.
Oluşturmak ve bir hazır bekleyen sunucusürdürmek.Yedek sunucular hakkında daha fazla bilgi için bkz: Sıcak bekleme sunucusu kullanma.
Discontinued geri anahtar sözcükler
Aşağıdaki anahtar sözcükler yarıda SQL Server 2008:
Discontinued anahtar sözcük |
Değiştirilen by… |
Anahtar sözcüğü değiştirme örneği |
---|---|---|
YÜK |
GERİ YÜKLEME |
RESTORE DATABASE |
HAREKET |
GÜNLÜK |
RESTORE LOG |
DBO_ONLY |
RESTRICTED_USER |
RESTORE DATABASE ... WITH RESTRICTED_USER |
Şifrelenmiş bir veritabanı geri yükleme için gereksinim
geri yükleme için şifrelenmiş bir veritabanı, sertifika veya veritabanını şifrelemek için kullanılan asimetrik anahtar erişimi olması gerekir.sertifika veya asimetrik anahtarveritabanı geri yüklenemiyor.yedek gerektiği sürece veritabanı şifrelemeanahtar şifrelemek için kullanılan sertifika sonuç olarak korunması gerekir. Daha fazla bilgi için, bkz. SQL ServerSertifikaları ve asimetrik anahtarları.
Vardecimal depolama biçimi için veritabanı etkin
Yedekleme ve geri yükleme çalışmak doğru vardecimal depolama biçimi.Hakkında daha fazla bilgi için vardecimal depolama biçimi, bkz: Değişken uzunlukta ondalık veri saklama.
Kurtarma ve norecovery karşılaştırma
Geri restore deyim denetlenmektedir [kurtarma | norecovery] Seçenekler:
Bu geri almak ortaya norecovery belirtir.Böylece, sıradaki sonraki deyim ile devam etmek ileri sarmak .
Bu durum, geri yükleme sırası diğer yedekleri geri yükleme yapabilirsiniz ve ileriye Top.
Kurtarma (varsayılan), ileri sarmak geçerli yedekiçin tamamlandıktan sonra bu geri almak gerçekleştirilmesi gerektiğini gösterir.
Veritabanı kurtarma, gerektiren tüm küme , geri yüklenen verileri ( ileri sarmak küme) veritabanı ile tutarlı.ileri sarmakküme İleri yeterli veritabanı ile tutarlı olacak şekilde alındı değil ve kurtarma belirtilmişse, Veritabanı Altyapısı veren bir hata.
Geri yükleme yineleme
Bir geri yükleme etkilerini geri alma mümkün değildir; olumsuz ancak, veri kopyalama ve ileri sarmak etkilerini üzerinden dosya başına temelinde başlayarak yanıtlamak.Başlamak için geri yükleme istediğiniz dosya ve ileri sarmak yeniden gerçekleştirin.Örneğin, yanlışlıkla çok fazla günlüğü yedeklerini geri ve noktasını durdurmadan, amaçlanan overshot, sıra yeniden başlatması gerekir.
geri yükleme sırası durduruldu ve etkilenen dosyaların tüm içeriğini geri yükleyerek yeniden.
Tam metin verileri geri yükleme
Tam metin veri diğer veritabanı verileriyle birlikte bir tam geri yüklemesırasında geri yüklenir.Normal kullanarak RESTORE DATABASE database_name FROM backup_device sözdizimi, tam metin dosyaları, veritabanı dosyası geri yüklemeparçası olarak geri yüklenir.
restore deyim farklı yerler, fark geri yükler, dosya ve dosya grubu geri yükleme ve tam metin veri fark dosya ve dosya grubu geri yükler geri yükleme gerçekleştirmek için de kullanılabilir.Buna ek olarak, geri yükleme, geri yükleme tam metin dosyalarını yalnızca, hem de veritabanı verileriyle olabilir.
Not
Tam-metin katalogları içe SQL Server 2005 veya SQL Server 2000 hala olarak kabul edilirveritabanı dosyaları.Bu, SQL Server 2005 tam-metin katalogları yedekleme yordamı geçerli kalır, dışında duraklatma ve yeniden başlatma sırasında yedek işlemi olan artık gerekli.Daha fazla bilgi için bkz: Metatabanını yedekleme ve geri yükleme tam-metin katalogları de SQL Server 2005 Books Online.
Veritabanı ayarlarını ve geri yükleme
Bir geri yüklemesırasında alter database kullanarak ayarlanabilir veritabanı seçeneklerinin çoğu saat yedekucunun zorla değerlere sıfırlanır.
Not
Bu davranış sürümlerinden farklı SQL Server önce SQL Server 2000.
İLE RESTRICTED_USER seçeneğini kullanarak, ancak, bu davranış için kullanıcı erişim seçeneği ayarı geçersiz kılar.Bu ayar her zaman birlikte RESTRICTED_USER seçeneği içeren bir geri yükleme deyim küme içindir.
Yedekleme ve geri yükleme geçmişini tabloları
SQL ServerHer sunucu örnek yedek ve geri yükleme etkinliğini izlemek yedek ve geri yüklemegeçmiş tabloları içerir. Bir geri yükleme gerçekleştirildiğinde, yedek geçmiş tabloları da değiştirilir.Bu tablolar hakkında daha fazla bilgi için bkz: Yedekler hakkında bilgileri görüntüleme.
GÜNLÜK GERİ YÜKLEME
restore log dosyalarının oluşturulması sırasında ileri sarmakizin vermek için dosya listesi içerebilir.Günlük yedek günlük kayıtlarının veritabanına dosya eklendiği sırada yazılmış içerdiğinde kullanılır.
Not
Tam kullanarak bir veritabanı için veya toplu günlük kurtarma modeli, çoğu durumda, yedeklemek tail günlük veritabanına geri yüklemeden önce gerekir.restore database deyim ile değiştirebilir veya yan tümceile stopat içermediği sürece ilk hata, sonuçlar günlük tail yedekleme olmadan bir veritabanını geri yüklemek, hangi bir saat ya da sonunda veri yedekoluştu işlem belirtmeniz gerekir.Tail günlük yedeklemeler hakkında daha fazla bilgi için bkz: Tail günlüğü yedekleri.
Çevrimiçi geri yükleme
Not
Çevrimiçi geri yükleme izin yalnızca SQL Server 2005 Enterprise Edition ve sonraki sürümleri.
Veritabanı çevrimiçi ise çevrimiçi geri yükleme , desteklenen yerlerde, dosyayı geri yükler ve sayfa geri yüklemeler otomatik olarak çevrimiçi geri yüklemeler ve, ayrıca, başlangıç aşamasında bir parçalı geri yüklemesonra ikincil dosya grubu geri yükler.
Not
Çevrimiçi geri yüklemeler ilgili ertelenmiş hareketleri.
Daha fazla bilgi için, bkz. Çevrimiçi geri yüklemeler gerçekleştirme.
İçinde geri
Yeni parçalı geri yükleme, SQL Server 2005, geliştirir Microsoft SQL Server 2000 kısmi geri yükleme.Bir başlangıç, kısmi geri yükleme birincil ve ikincil filegroups bazıları sonra geri yüklenecek dosya gruplarını parçalı geri yükleme verir.Geri dosya gruplarını çevrimdışı olarak işaretlenir ve erişilebilir değil.Çevrimdışı filegroups ancak daha sonra bir dosya geri yüklemesitarafından geri yüklenebilir.Aşamalarında farklı zamanlarda geri yüklenecek tüm veritabanı izin vermek için parçalı geri yükleme korumak veritabanı sonunda, tutarlı olmasını sağlamak için denetler.
Not
De SQL Server 2000, bir kısmi geri yükleme yalnızca bir tam veritabanı yedekyapılabilir.Bu kısıtlama, kaldırıldı SQL Server 2005.
Herhangi bir kısmi geri yükleme sırası tutuyorsa FILESTREAM dosya grubu, point-içinde-saat geri yükleme desteklenmiyor.Devam etmek için geri yükleme sırası zorlayabilirsiniz.Ancak, restore deyim atlanır FILESTREAM filegroups hiçbir zaman geri yüklenebilir.Bir noktayı zorlamak için-içinde-saat geri yükleme, sonraki restore log deyimlerinde de belirtmelisiniz stopat, NOKTASINA veya STOPBEFOREMARK'ı seçeneği ile birlikte CONTINUE_AFTER_ERROR seçeneğini belirtin.CONTINUE_AFTER_ERROR belirtirseniz, kısmi geri yükleme sırası başarılı ve dosya grubu FILESTREAM kurtarılamaz duruma gelir.
parçalı geri yüklemehakkında daha fazla bilgi için bkz: Parçalı geri yüklemeler gerçekleştirme.
Bir veritabanı için veritabanı anlık görüntü dönüştürme
A veritabanı işlemi geri alır tam kaynak veritabanı geri saat içinde (belirtilen database_snapshot seçeneğini kullanarak), saat veritabanı anlık görüntüsüiçin geri dönülmesi, yani kaynak veritabanı içinde belirtilen veritabanı anlık görüntüsüsaklanır saat noktasından verilerle üzerine.Yalnızca geri anlık görüntü var olabilir.Geri döndürme işlemi sonra günlüğü yeniden oluşturur (Bu nedenle, daha ileri sarmak dönüştürülen veritabanı kullanıcı hata noktasına yapamazsınız).
Veri kaybı güncelleştirmeler veritabanı anlık görüntügörüntünün oluşturulması bu yana katmanlarla sınırlıdır.Dönüştürülen veritabanı meta veriler meta veriler anlık görüntü oluşturma saat aynıdır.Ancak, bir anlık görüntü dönüştürme tam metin kataloglar bırakır.
veritabanı anlık görüntüsü görüntüden geri dönülmesi medya kurtarmaiçin tasarlanmamıştır.Bir normal yedek küme, veritabanı anlık görüntüsü bir eksik veritabanı dosyaları kopyasıdır.Veritabanı veya veritabanı anlık görüntüsü bozuksa, anlık görüntü görüntüden geri dönülmesi imkansız olasıdır.Üstelik bile mümkün olduğunda, olay bozulma geri dönülmesi sorunu düzeltmek düşüktür.
Dönülüyor kısıtlamaları
Geri dönülmesi, aşağıdaki koşullar altında desteklenmez:
kaynak veritabanı salt okunur veya sıkıştırılmış filegroups içerir.
Dosyalar çevrimdışı, çevrimiçi anlık görüntü oluşturulduğunda.
Veritabanının birden çok anlık görüntü şimdilik.
Daha fazla bilgi için, bkz. Bir veritabanı Snapshot dönüştürme.
İzinler
Geri yüklenen veritabanı yoksa, kullanıcının yürütmek için geri yükleme için veritabanı oluşturma izinleri olması gerekir.Veritabanı varsa, geri yükleme izinleri üyeleri için varsayılan sysadmin ve dbcreator sabit sunucu rolleri ve sahibi (dbo) veritabanının (dan database_snapshot seçeneği için veritabanı her zaman vardır).
Geri yükleme izinleri, hangi üyelik bilgileri her zaman kullanılabilir sunucu rolleri için verilmiştir.Yalnızca veritabanı erişilebilir ve bozulmamış ise sabit veritabanı rolü üyeliği denetlenir, hangi değildir, çünkü her zaman durum geri yükleme yürütüldüğünde, üyeleri db_owner sabit veritabanı rolü geri yükleme izinlerine sahip değil.
yedek işlemi isteğe bağlı olarak bir medya kümesi, bir yedekkümeveya her ikisi için parolalarını belirtebilir. Parola bir medya kümesi veya yedek kümetanımlandığında geri yükleme deyimdoğru parola veya parola belirtmeniz gerekir.Bu parolalar yetkisiz geri yükleme işlemlerini önlemek ve yetkisiz media kullanarak yedek kümelerinin ekler SQL Server Araçlar.Ancak, parola korumalı ortam yedekleme deyimbiçimi seçeneği tarafından üzerine yazılabilir.
Güvenlik Notu |
---|
Bu parola sağlanan koruma zayıftır.Hatalı geri yükleme kullanarak bir engellemeye yöneliktir SQL Server araçları tarafından yetkili veya yetkisiz kullanıcıların.Bu yedek veri okuma başka yollarla veya parola değiştirme engellemez.Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.yedek teyplerini güvenli bir konuma veya yedeklemek için yeterli erişim denetim listeleri (ACL) tarafından korunan disk dosyalarını depolamak için yedekleri korumak için en iyi yöntem olacaktır.ACL'leri küme altında yedeklemeleri oluşturulan dizin kök olmalıdır. |
Örnekler
Not
AdventureWorks2008R2 Veritabanı gösterilen resimde.AdventureWorks2008R2örnek veritabanları biri olan SQL Server.Adventure Works Cycles, veritabanı kavramlarını ve senaryoları örneklendirmek için kullanılan sanal bir üretim şirketidir.Bu veritabanı hakkında daha fazla bilgi için bkz: AdventureWorks2008R2 örnek veritabanları.
Bir tam veritabanı yedek gerçekleştirilmediğini tüm örneklerde varsayılmaktadır.
Geri yükleme örnekleri şunlardır:
A.Tam veritabanı geri yükleme
B.Tam ve farklı veritabanı yedeklemelerini geri yükleme
C.Yeniden başlatma sözdizimini kullanarak bir veritabanını geri yükleme
D.Veritabanı ve taşıma dosyaları geri yükleme
E.Yedekleme ve geri yükleme kullanarak bir veritabanı kopyalama
F.Bir noktaya geri-içinde-saat stopat kullanma
G.İşlem günlüğü bir işareti geri yükleme
H.Teyp sözdizimini kullanarak geri yükleme
Ö.Dosya ve dosya grubu sözdizimini kullanarak geri yükleme
J.veritabanı anlık görüntüsügörüntüden geri dönme
Not
Ek örnekler için bkz: Geri yükleme senaryoları için birkaç geri Sequences örnekleri ve de geri yükleme nasıl yapılır konuları listelenen Yedekleme ve geri yükleme nasıl yapılır konuları (Transact-SQL).
A.Tam veritabanı geri yükleme
Aşağıdaki örnek bir tam veritabanı yedek gelen yükler AdventureWorks2008R2Backups mantıksal yedek aygıtı.Bu aygıtı oluşturma örneği için bkz: Yedekleme aygıtları.
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
Not
Tam kullanarak bir veritabanı için veya toplu günlük kurtarma modeli, SQL Server o, yedeklemek geri veritabanında önce günlük tail gerektirir çoğu durumdaDaha fazla bilgi için, bkz. Tail günlüğü yedekleri.
Örnekler [başa dön]
B.Tam ve farklı veritabanı yedeklemelerini geri yükleme
Aşağıdaki örnek bir fark yedek izlediği bir tam veritabanı yedek geri yükler Z:\SQLServerBackups\AdventureWorks2008R2.bakyedek aygıtı içeren iki yedekler. Geri yüklenecek tam veritabanı yedek olan altıncı yedek küme aygıt (FILE = 6), ve fark veritabanı yedek dokuzuncu yedek küme aygıt (FILE = 9).Fark yedek kurtarıldıktan hemen sonra veritabanı kurtarılır.
RESTORE DATABASE AdventureWorks2008R2
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak'
WITH FILE = 6
NORECOVERY;
RESTORE DATABASE AdventureWorks2008R2
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak'
WITH FILE = 9
RECOVERY;
Örnekler [başa dön]
C.Yeniden başlatma sözdizimini kullanarak bir veritabanını geri yükleme
Aşağıdaki örnek RESTART yeniden başlatma seçeneği bir RESTORE işlemi kesti tarafından bir sunucu güç hatası.
-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2Backups WITH RESTART
Örnekler [başa dön]
D.Veritabanı ve taşıma dosyaları geri yükleme
Aşağıdaki örnekte tam bir veritabanı ve hareket günlüğü geri yükler ve geri yüklenen veritabanına taşır C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data dizin.
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH NORECOVERY,
MOVE 'AdventureWorks2008R2_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\NewAdvWorks2008R2.mdf',
MOVE 'AdventureWorks2008R2_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\NewAdvWorks2008R2.ldf'
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH RECOVERY
Örnekler [başa dön]
E.Yedekleme ve geri yükleme kullanarak bir veritabanı kopyalama
Aşağıdaki örnek, her ikisini de kullanır BACKUP ve RESTORE bir kopyasını oluşturmak için ifadeleri AdventureWorks2008R2 veritabanı.MOVEdeyim belirtilen konuma geri yüklenecek veri ve günlük dosyası neden olur. RESTORE FILELISTONLYdeyim , geri yüklenen veritabanı içindeki dosyaların adlarını ve sayılarını belirlemek için kullanılır. Yeni veritabanının kopyasını adlı TestDB.Daha fazla bilgi için, bkz. Geri yükleme FILELISTONLY (Transact-SQL).
BACKUP DATABASE AdventureWorks2008R2
TO AdventureWorks2008R2Backups ;
RESTORE FILELISTONLY
FROM AdventureWorks2008R2Backups ;
RESTORE DATABASE TestDB
FROM AdventureWorks2008R2Backups
WITH MOVE 'AdventureWorks2008R2_Data' TO 'C:\MySQLServer\testdb.mdf',
MOVE 'AdventureWorks2008R2_Log' TO 'C:\MySQLServer\testdb.ldf';
GO
Örnekler [başa dön]
F.Bir noktaya geri-içinde-saat stopat kullanma
Aşağıdaki örnek veritabanını geri yükler, durumuna itibariyle 12:00 AM üzerinde April 15, 2020 ve bir geri yükleme işlemi, ilgili birden çok günlük yedeklemeler.yedek aygıtındaki AdventureWorks2008R2Backups, üçüncü yedekküme aygıttaki geri tam veritabanı yedek olan ( FILE = 3), ilk günlük yedek olan dördüncü yedekküme ( FILE = 4), ve ikinci günlük yedek beşinci yedekküme ( FILE = 5).
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH FILE=3, NORECOVERY;
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH FILE=4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks2008R2 WITH RECOVERY;
Örnekler [başa dön]
G.İşlem günlüğü bir işareti geri yükleme
Aşağıdaki örnek işlem günlüğü adlı işaretli hareket işareti geri yükler ListPriceUpdate.
USE AdventureWorks2008R2;
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 AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH FILE = 3, NORECOVERY;
GO
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2Backups
WITH FILE = 4,
RECOVERY,
STOPATMARK = 'ListPriceUpdate';
Örnekler [başa dön]
H.Teyp sözdizimini kullanarak geri yükleme
Aşağıdaki örnek bir tam veritabanı yedek gelen yükler bir TAPE yedek aygıtı.
RESTORE DATABASE AdventureWorks2008R2
FROM TAPE = '\\.\tape0'
Örnekler [başa dön]
Ö.Dosya ve dosya grubu sözdizimini kullanarak geri yükleme
Aşağıdaki örnek, adlı bir veritabanı geri yükler MyDatabase iki dosya, bir ikincil dosya grubuve bir işlem günlüğünü vardırVeritabanı kullanan tam kurtarma modeli.
Veritabanı yedek dokuzuncu yedek küme medya kümesi adlı bir mantıksal yedek aygıtı olan MyDatabaseBackups.Ardından, üç sonraki üç yedek kümeleri içinde yedekleri oturum (10, 11, ve 12), MyDatabaseBackups aygıtı kullanarak geri WITH NORECOVERY.Son günlük yedekgeri yüklendikten sonra veritabanı kurtarılır.
Not
Kurtarma, çok erken tüm günlük yedeklemeler geri önce kurtarma olasılığını azaltmak için ayrı bir adım olarak gerçekleştirilir.
De RESTORE DATABASE, dikkat edin, iki tür vardır FILE seçenekleri.FILE Seçenekleri önceki yedek aygıt adı veritabanı dosyalarından geri yüklenemedi yedekküme; dan için mantıksal dosya adlarını belirtme Örneğin, FILE = 'MyDatabase_data_1'.Bu yedek küme ilk veritabanı yedek medya kümesideğildir; konumuna medya kümesi kullanarak bu nedenle belirtilen FILE , seçenek WITH yan tümce FILE=9.
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
Örnekler [başa dön]
J.veritabanı anlık görüntüsügörüntüden geri dönme
Aşağıdaki örnek, bir veritabanı veritabanı anlık görüntüsüdöner.Bu sadece bir anlık görüntü veritabanı üzerinde şimdilik örnek varsayar.Bu veritabanı anlık görüntüsüoluşturma konusunda bir örnek için bkz: Nasıl yapılır: Veritabanı Snapshot (Transact-sql) oluştur.
Not
Bir anlık görüntü dönüştürme tam metin kataloglar bırakır.
USE master
RESTORE DATABASE AdventureWorks2008R2 FROM DATABASE_SNAPSHOT = 'AdventureWorks2008R2_dbss1800';
GO
Daha fazla bilgi için, bkz. Bir veritabanı Snapshot dönüştürme.
Örnekler [başa dön]
Ayrıca bkz.