MSSQL Server’da Page Verify Seçenekleri

MSSQL Server

Veritabanı yönetim sistemlerinde veri bütünlüğü ve tutarlılığı en kritik konulardan biridir. Özellikle fiziksel disk hatalarından kaynaklı oluşabilecek veri bozulmalarına karşı önlem almak, sistem yöneticileri için büyük önem taşır. Microsoft SQL Server, bu tür senaryolara karşı Page Verify mekanizmasını kullanır. Bu yazıda, Page Verify seçeneklerinden olan TornPage ve Checksum yapılarını karşılaştırmalı olarak inceleyeceğiz.

Page Verify Nedir?

Page Verify, SQL Server’ın veritabanı sayfalarının (pages) diskten okunduğunda bozulup bozulmadığını denetlemek için kullandığı bir koruma mekanizmasıdır. Özellikle disk üzerindeki I/O (Input/Output) hatalarının tespiti amacıyla kullanılır. Bu özellik, veritabanı seviyesi bir ayar olup, veritabanı oluşturulurken veya daha sonrasında değiştirilebilir.

TornPage Mekanizması

TornPage, daha eski bir doğrulama mekanizmasıdır ve her bir sektör için (diskteki en küçük okuma/yazma birimi, genellikle 512 byte) yalnızca ilk iki biti, veritabanı sayfasının başlığına (page header) kaydeder. Sayfa diskten tekrar okunduğunda bu bitler karşılaştırılır.

  • Eğer eşleşme sağlanmazsa bir bozulma (corruption) tespit edilir.
  • Ancak sektörün geri kalanında bir bozulma oluşursa, bu yöntemle tespit edilemez.
  • Bu nedenle güvenlik seviyesi düşüktür.

Bu mekanizma daha az kaynak kullanır, dolayısıyla performans üzerindeki etkisi düşüktür. Ancak modern sistemlerde veri bütünlüğü açısından yetersiz kalmaktadır.

Checksum Mekanizması

Checksum, TornPage’e göre daha gelişmiş bir doğrulama yöntemidir. Her sayfa için tüm içeriği temel alan bir kontrol toplamı (checksum) üretilir ve bu değer page header’da saklanır. Veri tekrar diskten okunduğunda bu değer yeniden hesaplanır ve karşılaştırılır.

  • Sayfa içindeki tek bir bit dahi bozulmuş olsa, bu yöntemle tespit edilebilir.
  • TornPage’e göre çok daha güvenlidir.
  • Küçük bir performans maliyeti vardır, ancak bu maliyet veri güvenliği için kabul edilebilir düzeydedir.

Hangisi Tercih Edilmeli?

Modern SQL Server sürümlerinde varsayılan olarak Checksum kullanılır. Performans üzerindeki etkisi oldukça düşüktür, buna karşın sunduğu veri bütünlüğü garantisi oldukça yüksektir. Bu nedenle:

  • Yeni veritabanlarında mutlaka Checksum tercih edilmelidir.
  • Eski sistemlerde TornPage kullanılıyorsa, uygun bir zaman diliminde değiştirilmesi önerilir.

Veri bütünlüğü ve sistem güvenliği, özellikle kurumsal ortamlarda SQL Server yapılandırmasının vazgeçilmez bir parçasıdır. Page Verify seçenekleri, disk tabanlı hataların tespit edilmesinde önemli rol oynar. Checksum, modern sistemlerde güvenilirliği ile öne çıkarken, TornPage geçmişte kalmış bir seçenektir. Bu yapıların doğru anlaşılması ve uygun şekilde kullanılması, olası veri kayıplarının önüne geçmek açısından kritik öneme sahiptir.

Eğer sayfa bozuksa (yani diskteki checksum ile hesaplanan uyuşmuyorsa):

• Sorguyu çalıştıran kullanıcıya anında bir hata mesajı döner.

• Bu hata Windows Event Viewer (Olay Görüntüleyicisi) ve SQL Server Error Log dosyalarına 824 nolu hata (veya torn page için 823) olarak kaydedilir.

• Ayrıca bu durum msdb..suspect_pages tablosuna otomatik olarak yazılır.

SQL Server bir sayfayı okumadığı sürece onun bozuk olduğunu bilemez. Yani diskte pasif duran, hiç sorgulanmayan bozuk bir sayfa varsa, durup dururken Error Log’a hata düşmez.

DBCC CHECKDB, veritabanındaki tüm sayfaları tek tek diskten okuyarak baştan sona tarar. Tarama esnasında her sayfa için PAGE_VERIFY kontrolü (Checksum) teteklenir.

Pasif Hataları Yakalar: Normalde hiç sorgulanmayan ve bu yüzden bozuk olduğu fark edilmeyen sayfalar DBCC CHECKDB sayesinde gün yüzüne çıkar.

Raporlar ve Loglar: DBCC CHECKDB çalışırken bulduğu tüm bozuk sayfaları hem komut çıktısı olarak size raporlar hem de yine SQL Server Error Log içerisine detaylıca yazar.

Bu makalede SQL Server’da Page Verify Seçenekleri ve Veri Bütünlüğü Üzerindeki Etkilerini detaylı bir şekilde görmüş olduk. Başka bir makalede görüşmek dileğiyle..

“Kur’an okunduğu zaman hemen dikkat kesilerek ona kulak verin, susup dinleyin ki rahmete eresiniz.” A’râf / 204. Ayet

Author: Yunus YÜCEL

Bir yanıt yazın

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