SQL Server Bozulmuş – Suspect Page – Sayfalarını Nasıl izlenir?
  1. Anasayfa
  2. SQL Server

SQL Server Bozulmuş – Suspect Page – Sayfalarını Nasıl izlenir?

0

Bugün sizlere bir veritabanı yöneticisinin en önemli iş sorumluluğunda yer alan veritabanlarında yaşanan “veritabanı bozulmalarını” tespit etmek ve bu tespit sonrasında gerekli aksiyonları almasıdır. Bu yazımızda msdb veritabanı içerisinde yer alan suspect_pages tablosunu kullanarak veritabanı bozulmalarını nasıl tespit edebileceğinizi anlatacağım.

SQL Server 2005 yılında msdb sistem veritabanında SUSPECT_PAGES tablosunun kullanılabilir olduğu bilgisini duyurmuştur. SQL Server 2005’ten bu zamana her bozulmuş sayfa bilgisi msdb.dbo.suspect_pages tablosuna eklenir. SQL Server veritabanı yapısı gereği aşağdaki hatalardan biriyle karşılaşırsa bozulmuş olarak kabul eder.  (MSDN de yer alan bilgiyere göre )

  • Disk hatası veya bazı donanım hataları gibi işletim sistemi tarafından CRC ( Cyclic Redundancy Check ) hatası oluşması ile 823 hatasının gerçekleşmesi. Bir Windows okuma veya yazma işteğinin başarısız olması.
  • Torn Page Logical Consistency – 824 hatası – Bu hata, windows’un page’i başarılı bir şekilde okuması fakat sql server’ın page üzerinde tutarsızlık yaşanması sebebi ile oluşur. 823 hatasına benzer bir alt yapıya sahiptir.

 

SUSPECT_PAGES tablosuna ne zaman kayıt gelir ?

SQL Server database engine, aşağıda belirtilen işlemlerden herhangi biri sırasında karşılaşılan page bozulmalarını kayıt edilmesini sağlar.

  • DBCC CHECKDB komutunun çalıştırılması sırasında
  • Veritabanı Yedeklenmesi ve Restore edilmesi sırasında
  • Çalıştırılan sorgunun bozulmuş bir page okuması sırasında
  • DBCC CHECKDB REPAIR_ALLAW_DATA_LOSS işlemi sırasında
  • Veritabanı silinirken – Drop Database işlemlerinde

 

Önemli Not! : Belirli aralıklarla bakım sırasında DBCC CHECKDB komutu çalıştırılmalıdır.

SUSPECT_PAGES tablosuna kayıt edilen hatalar nelerdir ?

Aşağıdaki tabloda event_type verilerine göre hataların açıklamaları yer almaktadır.

Event_typeHata Açıklaması
1İşletim sistemi seviyesinde yaşanan 823 ve 824 numaralı hata kayıtları – CRC Error
2Bad CheckSum
3Torn Page
4Restored (The page was restored after it was marked bad) –

Sayfa bozulmuştu fakat tamir edildi.

5DBCC ile onarıldı
7Deallocated by DBCC

 

Aşağıdaki sorguyu kullanarak bozulmuş sayfaları bulabiliriz.

SELECT
SD.name AS DatabaseName
,MSP.file_id AS FileID
,SMF.physical_name AS PhysicalFilePath
,MSP.page_id AS PageID
,CASE
WHEN MSP.event_type = 1 THEN ‘823 error caused by an operating system CRC error or 824 error other than a bad checksum or a torn page’
WHEN MSP.event_type = 2 THEN ‘Bad checksum’
WHEN MSP.event_type = 3 THEN ‘Torn Page’
WHEN MSP.event_type = 4 THEN ‘Restored (The page was restored after it was marked bad)’
WHEN MSP.event_type = 5 THEN ‘Repaired (DBCC repaired the page)’
WHEN MSP.event_type = 7 THEN ‘Deallocated by DBCC’
END AS EventDescription
,MSP.error_count AS ErrorCount
,MSP.last_update_date AS LastUpdated
FROM msdb.dbo.suspect_pages MSP
INNER JOIN sys.databases SD ON SD.database_id = MSP.database_id
INNER JOIN sys.master_files SMF ON SMF.database_id = MSP.database_id AND SMF.file_id = MSP.file_id
SUSPECT_PAGES tablosunun bakımı

Veritabanı yöneticileri SUSPECT_PAGES tablosunu periyodik olarak gözden geçirmeli ve bu tablo 1000 satırla sınırlı olduğundan eski satırları silinmelidir. Eğer tablo dolu ise, o zaman yeni hatalar kayıt edilemeyecektir. SUSPECT_PAGES Tablosundan veri silebilmek için msdb veritabanından db_owner yetkisine sahip yada sysadmin yetkisine sahip bir kullanıcı ile SQL Server’a giriş yapmış olmalısınız.

DELETE FROM msdb..suspect_pages
WHERE (event_type = 4
OR event_type = 5
OR event_type = 7)

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

https://www.mshowto.org

TAGs: MSDB, sql page suspect, SQL Server, sql server suspect page, suspect_Pages,SQL Server Bozulmuş,Suspect Page

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Milenyumdan beri ilginç bir merak duygusu ile başlayan bilgisayar ve teknoloji dünyası merakı sayesinde eğitim yaşantımı doğup büyüdüğüm Düzce'de geçirdim. Sonrasında Düzce'nin kendimi geliştirmek adına yeterli imkanlara sahip olmadığından İstanbul'a gelip Bilge Adam Eğitim Kurumlarından Yazılım ve Veritabanı eğitimi aldım. Eğitimimi tamamlarken çeşitli Windows ve Web uygulamaları geliştirdim.Sırası ile Sentez Yazılım, Nebim Yazılım, Ciceksepeti, Doğan Holding, Kariyer.Net, TurkNet gibi firmalarında Yönetici / Müdür pozisyonlarında farklı ünvanlarda ( Yazılım Geliştirici / Raporlama ve Veritabanı Yöneticisi gibi) görev aldım. Şimdilerde ise DMC Bilgi Teknolojileri firmasının Kurucu Ortaklığını ve Veritabanı Danışmalığı Hizmeti vermekteyim.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

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