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.
Bu konuda, SQL Server Management Studio veya Transact-SQL kullanarak SQL Server'daki sayfaların nasıl geri yükleneceği açıklanmaktadır. Sayfa geri yüklemenin amacı, veritabanının tamamını geri yüklemeden bir veya daha fazla bozuk sayfayı geri yüklemektir. Genellikle, sayfaya erişilirken karşılaşılan bir hata nedeniyle geri yükleme adayı olan sayfalar "şüpheli" olarak işaretlenir. Şüpheli sayfalar, msdb veritabanındaki suspect_pages tablosunda tanımlanır.
Bu Konuda
Başlamadan önce:
Sayfa Geri Yükleme Ne Zaman Yararlı Olur?
Sayfaları geri yüklemek için şunları kullanarak:
Başlamadan Önce
Sayfa Geri Yükleme Ne Zaman Yararlı Olur?
Sayfa geri yükleme, yalıtılmış hasarlı sayfaları onarmaya yöneliktir. Birkaç sayfayı geri yüklemek ve kurtarmak, dosya geri yükleme işleminden daha hızlı olabilir ve geri yükleme işlemi sırasında çevrimdışı olan veri miktarını azaltır. Ancak, bir dosyada birkaç sayfadan fazlasını geri yüklemeniz gerekiyorsa, dosyanın tamamını geri yüklemek genellikle daha verimli olur. Örneğin, bir cihazdaki çok sayıda sayfa yaklaşan bir cihaz hatasını gösteriyorsa, dosyayı muhtemelen başka bir konuma geri yüklemenizi ve cihazı onarmanızı öneririz.
Ayrıca, tüm sayfa hataları geri yükleme gerektirmez. Verilerin yeniden hesaplanmasıyla çözülebilen ikincil dizin gibi önbelleğe alınmış verilerde bir sorun oluşabilir. Örneğin, veritabanı yöneticisi ikincil bir dizini bırakır ve yeniden oluşturursa, bozuk veriler düzeltilse de suspect_pages tablosunda bu şekilde gösterilmez.
Sınırlamalar ve Kısıtlamalar
Tam veya toplu günlük kaydedilen kurtarma modellerini kullanan SQL Server veritabanları için sayfa geri yükleme geçerlidir. Sayfa geri yükleme yalnızca okuma/yazma dosya grupları için desteklenir.
Yalnızca veritabanı sayfaları geri yüklenebilir. Sayfa geri yükleme aşağıdakileri geri yüklemek için kullanılamaz:
İşlem günlüğü
Ayırma sayfaları: Genel Ayırma Haritası (GAM) sayfaları, Paylaşılan Genel Ayırma Haritası (SGAM) sayfaları ve Sayfa Boş Alanı (PFS) sayfaları.
Tüm veri dosyalarının (dosya önyükleme sayfası) 0. sayfası
Sayfa 1:9 (veritabanı önyükleme sayfası)
Tam metin kataloğu
Toplu günlük kaydı kurtarma modelini kullanan bir veritabanı için, sayfa geri yüklemesi için aşağıdaki ek koşullar vardır:
Dosya grubu veya sayfa verileri çevrimdışıyken yedekleme yapmak, çevrimdışı verilerin günlüğe kaydedilmemesi nedeniyle toplu günlüğe kaydedilen veriler için sorun oluşturur. Herhangi bir çevrimdışı sayfa günlüğün yedeklenmesini engelleyebilir. Bu durumda DBCC REPAIR kullanmayı göz önünde bulundurun, çünkü bu en son yedeklemeye geri yüklemeden daha az veri kaybına neden olabilir.
Toplu kaydedilmiş bir veritabanının günlük yedeği, hatalı bir sayfayla karşılaşırsa WITH CONTINUE_AFTER_ERROR belirtilmediği sürece başarısız olur.
Sayfa geri yükleme genellikle toplu günlüğe kaydedilen kurtarma ile çalışmaz.
Sayfa geri yükleme işlemini gerçekleştirmek için en iyi yöntem, veritabanını tam kurtarma modeline ayarlamak ve bir günlük yedeklemesi denemektir. Günlük yedeklemesi çalışıyorsa sayfa geri yükleme işlemine devam edebilirsiniz. Günlük yedeklemesi başarısız olursa, önceki günlük yedeklemeden bu yana yapılan çalışmayı kaybetmeniz gerekir veya DBCC'yi REPAIR_ALLOW_DATA_LOSS seçeneğiyle çalıştırmanız gerekir.
Recommendations
Sayfa geri yükleme senaryoları:
Çevrimdışı sayfa geri yükleme
SQL Server'ın tüm sürümleri, veritabanı çevrimdışı olduğunda sayfaların geri yüklenmesini destekler. Çevrimdışı sayfa geri yüklemede, bozuk sayfalar geri yüklenirken veritabanı çevrimdışı olur. Geri yükleme sırasının sonunda veritabanı çevrimiçi olur.Çevrimiçi sayfa geri yükleme
SQL Server Enterprise sürümü çevrimiçi sayfa geri yüklemelerini destekler, ancak veritabanı şu anda çevrimdışıysa çevrimdışı geri yükleme kullanır. Çoğu durumda, bir sayfanın geri yüklendiği dosya grubu da dahil olmak üzere veritabanı çevrimiçi kalırken bozuk bir sayfa geri yüklenebilir. Birincil dosya grubu çevrimiçi olduğunda, ikincil dosya gruplarından biri veya daha fazlası çevrimdışı olsa bile sayfa geri yüklemeleri genellikle çevrimiçi gerçekleştirilir. Ancak bazen, bozuk bir sayfa çevrimdışı geri yükleme gerektirebilir. Örneğin, belirli kritik sayfalarda hasar olması veritabanının başlatılmasını engelleyebilir.Uyarı
Hasarlı sayfalar kritik veritabanı meta verilerini depoluyorsa, çevrimiçi sayfa geri yükleme girişimi sırasında meta verilerde gerekli güncelleştirmeler başarısız olabilir. Bu durumda, çevrimdışı bir sayfa geri yükleme gerçekleştirebilirsiniz, ancak önce bir kuyruk günlüğü yedeklemesi oluşturmanız gerekir (NORECOVERY ile RESTORE kullanarak işlem günlüğünü yedekleyerek).
Sayfa geri yükleme, geliştirilmiş sayfa düzeyi hata raporlamasından (sayfa sağlama toplamları dahil) ve izlemeden yararlanır. Denetim toplamı veya kesik yazma nedeniyle bozuk sayfa olarak algılanan sayfalar, sayfa geri yükleme işlemiyle geri yüklenebilir. Yalnızca açıkça belirtilen sayfalar geri yüklenir. Belirtilen her sayfa, belirtilen veri yedeklemesinden bu sayfanın kopyasıyla değiştirilir.
Sonraki günlük yedeklemelerini geri yüklerken, bunlar yalnızca kurtarılmakta olan en az bir sayfa içeren veritabanı dosyalarına uygulanır. Sayfanın bulunduğu dosya grubunu geçerli günlük dosyasına getirmek için, son tam veya diferansiyel geri yüklemeye kesintisiz bir günlük yedekleme zinciri uygulanmalıdır. Dosya geri yüklemede olduğu gibi, ilerleme kümesi tek bir günlük yeniden işleme geçişi ile ilerletilir. Sayfa geri yükleme işleminin başarılı olması için, geri yüklenen sayfaların veritabanıyla tutarlı bir duruma kurtarılması gerekir.
Security
Permissions
Geri yüklenen veritabanı yoksa, KULLANıCıNıN RESTORE'yi yürütebilmesi için CREATE DATABASE izinlerine sahip olması gerekir. Veritabanı varsa, RESTORE izinleri varsayılan olarak sysadmin ve dbcreator sabit sunucu rollerinin üyelerine ve veritabanının sahibine (dbo) atanır (FROM DATABASE_SNAPSHOT seçeneği kullanıldığında veritabanı daima mevcuttur).
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, db_owner sabit veritabanı rolünün üyeleri RESTORE izinlerine sahip değildir.
SQL Server Management Studio'yu kullanma
SQL Server 2016'dan (13.x) başlayarak, SQL Server Management Studio sayfa geri yüklemelerini destekler.
Sayfaları geri yüklemek için
SQL Server Veritabanı Altyapısı'nın uygun örneğine bağlanın, Nesne Gezgini'nde sunucu ağacını genişletmek için sunucu adına tıklayın.
Veritabanları'nın kapsamını genişletin. Veritabanına bağlı olarak, bir kullanıcı veritabanı seçin veya Sistem Veritabanları'nı genişletin ve ardından bir sistem veritabanı seçin.
Veritabanına sağ tıklayın, Görevler'in üzerine gelin, Geri Yükle'nin üzerine gelin ve Sayfa'ya tıklayın; bu, Sayfayı Geri Yükle iletişim kutusunu açar.
Geri yükleme
Bu bölüm, Veritabanını Geri Yükleme (Genel Sayfa) üzerindeki Geri Yükleme işleviyle aynı işlevi gerçekleştirir.Veritabanı
Geri yükleneceği veritabanını belirtir. Yeni bir veritabanı girebilir veya açılan listeden mevcut bir veritabanını seçebilirsiniz. Liste, ana ve tempdb sistem veritabanları dışında sunucudaki tüm veritabanlarını içerir.Uyarı
Parola korumalı yedeklemeyi geri yüklemek için RESTORE deyimini kullanmanız gerekir.
Tail-Log yedekleme
Yedekleme cihazında veritabanına ait son günlük yedeğinin depolanacağı bir dosya adı girin veya seçin.Yedekleme Kümeleri
Bu bölümde, geri yükleme işlemine dahil olan yedekleme kümeleri görüntülenir.Header Değerler İsim Yedekleme kümesinin adı. Bileşen Yedeklenen bileşen: Veritabanı, Dosya veya <boş> (işlem günlükleri için). Türü Gerçekleştirilen yedekleme türü: Tam, Fark veya İşlem Günlüğü. Sunucu Yedekleme işlemini gerçekleştiren Veritabanı Altyapısı örneğinin adı. Veritabanı Yedekleme işlemine katılan veritabanının adı. Konum Birimdeki yedekleme kümesinin konumu. İlk LSN Yedekleme kümesindeki ilk işlemin günlük dizisi numarası (LSN). Dosya yedeklemeleri için boş. Son LSN Yedekleme setindeki son işlemin günlük sıra numarası (LSN). Dosya yedeklemeleri için boş. Kontrol noktası LSN Yedekleme oluşturulduğu sırada en son denetim noktasının günlük dizisi numarası (LSN). Tam LSN En son alınan tam veritabanı yedeklemesinin günlük sıra numarası (LSN). Başlangıç Tarihi Yedekleme işleminin başladığı tarih ve saat, istemcinin bölgesel ayarında gösterilir. Bitiş Tarihi Yedekleme işleminin bittiği tarih ve saat, istemcinin bölgesel ayarında gösterilir. Boyut Yedekleme kümesinin bayt cinsinden boyutu. Kullanıcı Adı Yedekleme işlemini gerçekleştiren kullanıcının adı. Bitiş tarihi Yedekleme kümesinin süresinin dolmasına ilişkin tarih ve saat. Sayfa geri yükleme işlemini gerçekleştirmek için gereken yedekleme dosyalarının bütünlüğünü denetlemek için Doğrula'ya tıklayın.
Bozuk sayfaları tanımlamak için Veritabanı kutusunda doğru veritabanı seçili durumdayken Veritabanı Sayfalarını Denetle'ye tıklayın. Bu uzun süredir devam eden bir operasyondur.
Uyarı
Bozuk olmayan belirli sayfaları geri yüklemek için Ekle'ye tıklayın ve geri yüklenecek sayfaların Dosya Kimliği ile Sayfa Kimliğini girin.
Sayfalar kılavuzu, geri yüklenecek sayfaları tanımlamak için kullanılır. Başlangıçta, bu kılavuz suspect_pages sistem tablosundan doldurulur. Kılavuza sayfa eklemek veya kılavuzdan sayfa kaldırmak için Ekle veya Kaldır'a tıklayın. Daha fazla bilgi için bkz. suspect_pages Tablosunu Yönetme (SQL Server)
. Yedekleme kümeleri kılavuzu, yedekleme kümelerini varsayılan geri yükleme planında listeler. İsteğe bağlı olarak, yedeklemelerin okunabilir olduğunu ve yedekleme kümelerinin geri yüklemeden tamamlandığını doğrulamak için Doğrula'ya tıklayın. Daha fazla bilgi için bkz . RESTORE VERIFYONLY (Transact-SQL).
Sayfalar
Sayfalar kılavuzunda listelenen sayfaları geri yüklemek için Tamam'a tıklayın.
Transact-SQL Kullanımı
RESTORE DATABASE deyiminde bir sayfa belirtmek için, sayfanın bulunduğu dosyanın dosya kimliğine ve sayfanın sayfa kimliğine ihtiyacınız vardır. Gerekli söz dizimi aşağıdaki gibidir:
RESTORE DATABASE <database_name>
PAGE = '<file: page> [ ,... n ] ' [ ,... n ]
FROM <backup_device> [ ,... n ]
WITH NORECOVERY
PAGE seçeneğinin parametreleri hakkında daha fazla bilgi için bkz. RESTORE Arguments (Transact-SQL). RESTORE DATABASE söz dizimi hakkında daha fazla bilgi için bkz. RESTORE (Transact-SQL).
Sayfaları geri yüklemek için
Geri yüklenecek bozuk sayfaların sayfa kimliklerini alın. Kontrol toplamı veya yırtılmış yazma hatası, sayfa kimliğini döndürerek sayfaları belirtmek için gereken bilgileri sağlar. Bozuk bir sayfanın sayfa kimliğini aramak için aşağıdaki kaynaklardan birini kullanın.
Sayfa kimliği kaynağı Konu msdb..suspect_pages suspect_pages Tablosunu Yönet (SQL Server) Hata günlüğü SQL Server Hata Günlüğünü Görüntüleme (SQL Server Management Studio) Olay izlemeleri Olayları İzleyin ve Yanıt Verin DBCC DBCC (Transact-SQL) WMI sağlayıcısı Sunucu Olayları Kavramları için WMI Sağlayıcısı Sayfayı içeren tam veritabanı, dosya veya dosya grubu yedeklemesiyle sayfa geri yükleme işlemi başlatın. RESTORE DATABASE deyiminde PAGE yan tümcesini kullanarak geri yüklenecek tüm sayfaların sayfa kimliklerini listeleyin.
En son farklılıkları uygulayın.
Sonraki günlük yedeklemeleri yükleyin.
Geri yüklenen sayfaların son LSN'sini, yani son geri yüklenen sayfanın çevrimdışına alındığı noktayı içeren veritabanının yeni bir günlük yedeğini oluşturun. Dizideki ilk geri yüklemenin bir parçası olarak ayarlanan son LSN, yineleme hedefi LSN'dir. Sayfayı içeren dosyanın çevrimiçi olarak ileri alınması, yineleme hedefi LSN'sinde durabiliyor. Dosyanın geçerli yineleme hedefi LSN'sini öğrenmek için sys.master_files redo_target_lsnsütununa bakın. Daha fazla bilgi için bkz. sys.master_files (Transact-SQL).
Yeni günlük yedeklemesini geri yükleyin. Bu yeni günlük yedeklemesi uygulandıktan sonra sayfa geri yüklemesi tamamlanır ve sayfalar artık kullanılabilir duruma gelir.
Uyarı
Bu dizi, bir dosya geri yükleme dizisine benzer. Aslında, sayfa geri yükleme ve dosya geri yüklemeleri aynı dizinin bir parçası olarak gerçekleştirilebilir.
Örnek (Transact-SQL)
Aşağıdaki örnek, NORECOVERYile B dosyasının bozuk dört sayfasını geri yükler. Ardından iki günlük yedekleme NORECOVERY uygulanır ve RECOVERY ardından kuyruk günlük yedeği geri yüklenir. Bu örnek çevrimiçi geri yükleme gerçekleştirir. Örnekte, dosyanın B dosya kimliği şeklindedir 1ve bozuk sayfaların sayfa kimlikleri , , 57202ve 916şeklindedir1016.
RESTORE DATABASE [<database>] PAGE='1:57, 1:202, 1:916, 1:1016'
FROM DISK = '<file_backup_of_file_B>'
WITH NORECOVERY;
RESTORE LOG [<database>] FROM [<log_backup>]
WITH NORECOVERY;
RESTORE LOG [<database>] FROM [<log_backup>]
WITH NORECOVERY;
BACKUP LOG [<database>] TO [<new_log_backup>];
RESTORE LOG [<database>] FROM [<new_log_backup>] WITH RECOVERY;
GO
Ayrıca Bkz.
RESTORE (Transact-SQL)
İşlem Günlüğü Yedeklemelerini Uygulama (SQL Server)
suspect_pages Tablosunu Yönet (SQL Server)
SQL Server Veritabanlarını Yedekleme ve Geri Yükleme