Adisyon Kaydedilemiyor: ‘Database is in Read-Only Mode’ Kilitlenmesi
Restoranlarda, kafelerde ve hızlı tüketim işletmelerinde kasa bilgisayarı açıldığında veya garson masaya yeni bir sipariş eklemek istediğinde ekrana gelen ‘Failed to update database "SAMBAPOS5" because the database is read-only’ (Veritabanı salt okunur modda olduğundan güncelleştirilemedi) veya Hata Kodu 3906 uyarısı restoranın tüm adisyon ve satış akışını durdurur. Kasiyer mevcut açık masaları görebilir fakat masaya yeni bir içecek ekleyemez, hesap kapatamaz ve parçalı ödeme alamaz. Kullanıcılar programın bozulduğunu düşünür; oysa bu durum Microsoft SQL Server Express motorunun veritabanı dosyasını disk doluluğu veya dosya izinleri sebebiyle kendini korumaya alarak ‘Yalnızca Okunabilir’ kipine kilitlemesidir.
SQL Veritabanının Salt Okunur Moda Geçmesinin Üç Temel Nedeni
Veritabanının yazma fonksiyonunu kapatmasına yol açan etkenler şunlardır:
- Sabit Diskin (C: Sürücüsü) Tamamen Dolması: SQL Server, yapılan her işlemi önce işlem günlüğü (Transaction Log –
.ldf) dosyasına yazar. Eğer kasa bilgisayarının C: diskinde boş alan 0 MB seviyesine inerse, SQL motoru veri kaybını engellemek için tüm veritabanını otomatik olarak ‘Read-Only’ moduna çeker. - Bozulan Windows NTFS Güvenlik İzinleri: Veritabanı dosyalarının bulunduğu (
SAMBAPOS5.mdfveSAMBAPOS5_log.ldf) klasörün Windows kullanıcı izinlerindeNETWORK SERVICEveyaMSSQLSERVERservis hesabının ‘Tam Denetim’ (Full Control) yazma yetkisini kaybetmesi. - Veritabanının Acil Durum (Emergency / Suspect) Modundan Hatalı Çıkması: Ani elektrik kesintisi sonrası SQL Server kurtarma işlemini tamamlayamadığı için veritabanını salt okunur kilitte bırakır.
1. Adım: C: Sürücüsünde Disk Alanı Açma
İlk olarak diskin doluluk durumu denetlenir:
- ‘Bu Bilgisayar’ açılarak C: diskinin kırmızı renkte olup olmadığına bakılır.
- Disk doluysa
C:WindowsTempklasörü temizlenir, eski Windows güncelleme artıkları silinir ve diske en az 5 GB kullanılabilir alan kazandırılır.
2. Adım: T-SQL Komutu ile Veritabanını Tekrar Okuma-Yazma (READ_WRITE) Moduna Alma
Disk rahatlatıldıktan sonra SQL Server Management Studio (SSMS) açılarak veya komut satırından sqlcmd ile şu sorgu çalıştırılır:
USE [master];
GO
-- 1. Açık bağlantıları sonlandırarak veritabanını tek kullanıcıya düşürün:
ALTER DATABASE [SAMBAPOS5] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
-- 2. Veritabanını tekrar Okuma-Yazma moduna geçirin:
ALTER DATABASE [SAMBAPOS5] SET READ_WRITE;
GO
-- 3. Veritabanını yeniden tüm terminallerin erişimine açın:
ALTER DATABASE [SAMBAPOS5] SET MULTI_USER;
GOKomut başarıyla tamamlandığında veritabanının yanındaki gri renkli (Read-Only) ibaresi kaybolur ve veritabanı normal durumuna döner.
3. Adım: MDF ve LDF Dosyalarının NTFS Klasör İzinlerini Düzeltme
Sorgu yetki hatası veriyorsa dosya sistemi izinleri sıfırlanmalıdır:
Dosya İzin Yapılandırması:
1. C:Program FilesMicrosoft SQL ServerMSSQLxx.MSSQLSERVERMSSQLDATA klasörüne gidin.
2. DATA klasörüne sağ tıklayın -> Özellikler -> Güvenlik -> Düzenle.
3. 'Ekle' butonuna basarak 'NT SERVICEMSSQL$SAMBAPOS' veya 'NETWORK SERVICE' hesabını ekleyin.
4. Bu hesaba 'Tam Denetim' (Full Control) kutusunu işaretleyerek kaydedin.SambaPOS yeniden başlatıldığında adisyonlar anında kaydedilir ve masalar sorunsuz çalışır.
Restoran otomasyonu, SambaPOS SQL veritabanı kilitlenme onarımları, disk optimizasyonları ve yedekleme sistemlerinde BaykalSoft Perakende Teknolojileri ekibimizden 7/24 teknik destek alabilirsiniz.