İlginizi Çekebilir
  1. Ana Sayfa
  2. SQL Server
  3. SQL Server Bozulmuş – Suspect Page – Sayfalarını Nasıl izlenir?

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

SQL_Suspect
1

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 veritabanı içerisinde yer alan tablosunu kullanarak veritabanı bozulmalarını nasıl tespit edebileceğinizi anlatacağım.

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_type Hata Açıklaması
1 İşletim sistemi seviyesinde yaşanan 823 ve 824 numaralı hata kayıtları – CRC Error
2 Bad CheckSum
3 Torn Page
4 Restored (The page was restored after it was marked bad) –

Sayfa bozulmuştu fakat tamir edildi.

5 DBCC ile onarıldı
7 Deallocated 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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

https://www.mshowto.org

TAGs: MSDB, , SQL Server, sql server , suspect_Pages,,Suspect Page

Yorum Yap

Yazar Hakkında

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.

Yorum Yap