Soru: Elektrik Kesintisi Sonrası SQL Server’da SambaPOS Veritabanı Neden ‘Suspect’ Moduna Düşer ve Nasıl Kurtarılır?
Cevap: Restoranlarda ve perakende satış işletmelerinde kasa bilgisayarı açıkken aniden yaşanan plansız bir elektrik kesintisi veya bilgisayarın fişinin çekilmesi sonrasında sistem yeniden başlatıldığında SambaPOS açılmaz ve SQL Server Management Studio (SSMS) konsolunda veritabanının adının yanında kırmızı renkli SAMBAPOS5 (Suspect) ibaresi belirir. Suspect (Şüpheli) modu; SQL Server ın açılış esnasında veritabanı dosyalarını (MDF ve LDF) okurken elektrik kesintisi sebebiyle yarıda kalan disk yazma işlemini (Torn Page / Transaction Inconsistency) tespit ettiğini, veri bütünlüğü bozulduğu için veritabanını tüm okuma ve yazma işlemlerine kalıcı olarak kilitlediğini gösterir.
Suspect Modunun Arkasındaki Veritabanı Çökme Mekanizması
SQL Server veri güvenliğini ACID (Atomicity, Consistency, Isolation, Durability) prensipleriyle sağlar:
- Elektrik kesildiği anda garson masaya adisyon girmekteyse, veritabanı işlem günlüğündeki (LDF) işlemler asıl veri dosyasına (MDF) henüz tam yazılamamıştır.
- Sistem yeniden başladığında SQL Server kurtarma (Recovery) sürecini başlatır; yarım kalan işlemleri geri almak (Rollback) ister.
- Eğer disk sektöründe fiziksel bir hasar oluşmuşsa veya dosya başlığı (Header) bozulmuşsa kurtarma motoru çöker ve SQL Server veritabanını çökmekten korumak için ‘Suspect’ moduna mühürler.
1. Adım: Veritabanını Acil Durum (EMERGENCY) Moduna Alma
Veritabanına müdahale edebilmek için önce salt okunur acil durum modu açılır:
SSMS Yeni Sorgu (New Query) Ekranı:
USE [master];
GO
-- 1. Veritabanını acil durum moduna geçirin (Sadece yöneticinin okumasına izin verir):
ALTER DATABASE [SAMBAPOS5] SET EMERGENCY;
GO
-- 2. Diğer tüm bağlantıları zorla keserek tek kullanıcı moduna alın:
ALTER DATABASE [SAMBAPOS5] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO2. Adım: Tutarlılık Denetimi ve Onarım (DBCC CHECKDB with REPAIR_ALLOW_DATA_LOSS)
Veritabanındaki bozuk sayfaları onarmak ve sistemi ayağa kaldırmak için en güçlü onarım komutu işletilir:
-- 3. Bozuk sektörleri onarın ve kilitleri temizleyin:
DBCC CHECKDB ([SAMBAPOS5], REPAIR_ALLOW_DATA_LOSS);
GO
-- 4. Veritabanını tekrar çok kullanıcılı normal çalışma moduna döndürün:
ALTER DATABASE [SAMBAPOS5] SET MULTI_USER;
GOREPAIR_ALLOW_DATA_LOSS parametresi, elektrik kesintisi anında diske yarım yazılmış ve kurtarılamayacak durumdaki bozuk 1-2 satırlık yarım adisyon kaydını feda ederek sistemin geri kalan %99.9 luk devasa geçmiş veritabanını kurtarır ve sistemi ‘Online’ duruma getirir.
3. Adım: Veritabanı Sağlık Doğrulaması ve SambaPOS Başlatma
SSMS sol panelindeki ‘Databases’ klasörü sağ tıklanıp ‘Refresh’ yapılır. Veritabanının yanındaki kırmızı (Suspect) yazısının kaybolduğu doğrulanır. SambaPOS programı masaüstünden başlatılır; tüm masalar, menü reçeteleri ve geçmiş cirolar eksiksiz açılır.
Restoran otomasyon veritabanı kurtarma, SQL Server Suspect onarımları, MDF veri kurtarma ve kesintisiz UPS güç güvenliği projelerinde BaykalSoft Veritabanı Kurtarma Laboratuvarı uzman kadromuzdan destek alabilirsiniz.