27 Şub by NURULLAH ÇAKIR

Page Restore

Veritabanı suspect mode’a düştüğünde full backup’tan restore işlemini yapmadan önce sadece bozulmuş page’leri restore ederek bazen sorunu çözebiliriz. Aşağıdaki script yardımıyla suspect olmuş page’leri bulabilirsiniz.

 

select * from msdb..suspect_pages

Suspect_pages tablosu aşağıdaki durumlardan sonra değişebilir.

  • Bir query read yapmak istediğinde
  • DBCC CHECKDB komutu çalıştırıldıktan sonra
  • Backup alındıktan sonra

Veritabanı üzerinde aşağıdaki script’i kullanarak restore edeceğimiz page’leri teyit edelim.

DBCC CHECKDB (N'Test') WITH NO_INFOMSGS, ALL_ERRORMSGS;

Bu işlemden sonra aşağıdaki script’i tekrar çalıştıralım.

select * from msdb..suspect_pages

Restore işlemine başlamadan önce suspect mode’a düşmüş veritabanından aşağıdaki script yardımıyla tail log backup almaya çalışalım. Tail Log Backup  son log backup’tan sonraki log kayıtlarının backup’ını alır. NO_TRUNCATE ifadesini sağlam bir veritabanında kullanmamalısınız.

BACKUP LOG Test
TO DISK = 'C:\MSSQL\TestTailLog.trn'
WITH NO_TRUNCATE, COMPRESSION, STATS = 1

Suspect olmuş page’leri bulduktan sonra makalenin başında paylaştığım sorgudaki file_id’leri aşağıdaki script’te 1 gördüğünüz yerlere page_id’leri’de 58 ve 200 gördüğümüz yerlere yazıyoruz ve script’i çalıştırıyoruz.

use master
go
RESTORE DATABASE Test PAGE='1:58, 1:200' 
FROM DISK=N'C:\MSSQL\testfull.bak'
WITH NORECOVERY ;


RESTORE LOG Test FROM DISK=N'C:\MSSQL\testlog.trn' 
WITH NORECOVERY;

Son olarak aldığımız Tail Log Backup’ı recovery mode’da restore ederek işlemi tamamlıyoruz.

RESTORE LOG Test FROM DISK=N'C:\MSSQL\TestTailLog.trn' 
WITH RECOVERY;

 

Page Restore işlemi SQL Server 2012 ile beraber SSMS üzerinden de yapılabiliyor. Aşağıdaki gibi ilgili veritabanına sağ tıklayarak Task-Restore-Page… diyoruz.

 

 

Karşımıza gelen ekranda Pages kısmından Add diyerek restore edeceğimiz page’i ya da page’leri giriyoruz. Tabi alt tarafta backup sets kısmında gözüken backup’ların o path’lerde duruyor olması gerekir. Verify diyerek restore işlemi yapmadan önce o dosyaların doğruluğunu teyit edebilirsiniz.

 

 

 

DBCC CHECKDB ile ilgili “DBCC CHECKDB Detayları” isimli makalemi okumanızı tavsiye ederim.

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir