Veri Tabanı Yönetim Sistemleri
Başlangıç Rehberi
Bu Sektör Nedir?
Veri Tabanı Yönetim Sistemleri Sektör Rehberi.
Kimler İçin Uygun?
İş Modeli Nasıl Çalışır?
Fiziksel Alan İhtiyaçları
Personel İhtiyaçları
Başlangıç İpuçları
Mevzuat Kontrolü
İşletmenizi açmadan önce yerel belediyenin ruhsat şartlarını detaylıca öğrenin.
Fiyatlandırma Hassasiyeti
Güncel maliyet ve tedarik değerlerinizi kullanmanız önerilir. Sistem piyasa fiyatı tahmin etmez.
Konum Analizi
Hedef kitlenizin yoğun olduğu, yaya trafiği yüksek caddeleri tercih edin.
Mesleki Bilgi ve Referans Merkezi
Sektörel mesleki standartlar, parametreler ve referans rehberleri.
İzleme
Veritabanı Performans İzleme ve Alarm Eşiklerinin Belirlenmesi
Performans izleme yalnızca CPU kullanımına dayandırılmamalıdır. Query latency, Disk I/O, bellek kullanımı, aktif bağlantı sayısı, Blocking, Deadlock, Transaction Log kullanımı ve TempDB tüketimi temel metrikler olarak takip edilmelidir. Her metrik için normal çalışma tabanı oluşturulmalı ve alarm eşikleri kısa süreli dalgalanmalar yerine sürdürülebilir anormallikleri yakalayacak şekilde belirlenmelidir. Örneğin bir sorgunun gecikmesi tek başına alarm sebebi olmak yerine aynı anda CPU, I/O veya Blocking artışıyla ilişkilendirilmelidir. Alarm oluştuğunda önce zaman aralığı belirlenmeli, ardından ilgili Execution Plan, bekleme türleri ve yoğun sorgular korele edilmelidir. Yapılan müdahale ve sonuçları olay kaydına eklenerek sonraki performans analizlerinde karşılaştırılabilir bir geçmiş oluşturulmalıdır.
Veri Tabanı Depolama Büyüme Hesaplayıcı
Mevcut veri hacmi ve büyüme oranına göre gelecekteki depolama ihtiyacını hesaplar.
Hesaplanan Sonuçlar
Veri Tabanı Partition Dağılım Planlayıcı
Büyük tabloların partition yapısını ve veri dağılımını planlamak için kullanılır.
Hesaplanan Sonuçlar
Veri Tabanı Index Optimizasyon Hesaplayıcı
Index yapılarının disk kullanımına etkisini ve optimizasyon ihtiyacını analiz eder.
Hesaplanan Sonuçlar
Veri Tabanı Mimarisi Seçim Karar Analizi
SQL, NoSQL ve hibrit veri tabanı mimarileri arasında kriter bazlı seçim yapılmasını sağlar.
Hesaplanan Sonuçlar
SQL Sorgu Performans Analiz Hesaplayıcı
Sorgu çalışma süresi, veri erişim mesafesi ve performans iyileştirme katsayısını analiz eder.
Hesaplanan Sonuçlar
Veri Tabanı Rapor Okunabilirlik Hesaplayıcı
Dashboard ve raporlama ekranlarında veri gösteriminin okunabilirliğini analiz eder.
Hesaplanan Sonuçlar
Veri Tabanı Yedekleme Stratejisi Planlama
Yedekleme sıklığı, saklama süresi ve bileşen ihtiyaçlarını ölçeklendirir.
| Bileşen Anahtarı | Bileşen Adı | Baz Miktar | Sabit mi? | Sabit Değer |
|---|
Hesaplanan Sonuçlar
Standart Operasyonel İş Akışları
Sektör standartlarına uygun iş akış ve süreç adımları.
Yedekleme Planının Kontrolü
Veritabanının Full Backup, Incremental Backup ve gerekiyorsa Log Backup planı incelenir. Backup Window, saklama süresi, Off-site Backup hedefi ve iş sürekliliği gereksinimleriyle uyumlu olduğu doğrulanır.
Restore Talebinin Doğrulanması
Geri yükleme talebinin hangi veritabanını, hangi tarih ve saat noktasını ve hangi ortamı kapsadığı netleştirilir. Üretim verisinin üzerine yazma ihtimali varsa ayrıca onay alınır.
Yavaş Sorgunun Belirlenmesi
Performans izleme kayıtlarından yüksek çalışma süresine, CPU tüketimine veya Disk I/O kullanımına sahip sorgu belirlenir. Aynı sorgunun farklı parametrelerle davranışı da gerekiyorsa karşılaştırılır.
İndeks Durumunun Analizi
Tablolardaki indekslerin kullanım sıklığı, boyutu ve Fragmentation durumu incelenir. Kullanılmayan veya birbirinin işlevini büyük ölçüde tekrarlayan indeksler ayrıca değerlendirmeye alınır.
Veritabanı Hesaplarının Envanteri
Veritabanındaki kullanıcı, servis hesabı ve yönetici hesapları listelenir. Kullanılmayan, sahibi belirsiz veya amacı tanımlanmamış hesaplar incelemeye alınır.
Sürüm Envanterinin Çıkarılması
Çalışan veritabanı motorlarının sürüm, patch seviyesi ve destek durumu kayıt altına alınır. Üretim, test ve yedekleme ortamları ayrı ayrı değerlendirilir.
RTO ve RPO Gereksinimlerinin Belirlenmesi
Veritabanının iş açısından kabul edilebilir kesinti süresi ve veri kaybı toleransı belirlenir. RTO ve RPO değerleri teknik ekip tarafından varsayılan değerler olarak değil, iş birimlerinin gereksinimleriyle birlikte tanımlanır.
Uzun Transactionların Belirlenmesi
Açık kalma süresi yüksek Transaction işlemleri ve bunların tuttuğu Lock kayıtları incelenir. Uzun işlemlerin Blocking ve diğer kullanıcı işlemlerine etkisi belirlenir.
Arşiv Verisinin Belirlenmesi
İş gereksinimi ve yasal saklama sürelerine göre aktif sistemde tutulması gerekmeyen kayıtlar belirlenir. Arşiv kriterleri tarih, durum veya iş süreci gibi açık kurallarla tanımlanır.
Günlük Sistem Sağlık Kontrolü
Veritabanı servis durumu, bağlantı sayıları, kritik hata kayıtları, disk kapasitesi ve Transaction Log kullanımı kontrol edilir. Önceki günle karşılaştırıldığında olağan dışı değişimler ayrıca incelenir.
Yedekleme Alanının Hazırlanması
Yedekleme hedefindeki kullanılabilir Disk Kapasitesi, ağ bağlantısı ve depolama erişilebilirliği kontrol edilir. Yeni yedeklerin mevcut yedekleri beklenmedik şekilde tüketmemesi için büyüme ve saklama kapasitesi değerlendirilir.
Uygun Yedek Zincirinin Belirlenmesi
İstenen geri dönüş noktası için gerekli Full Backup, Incremental Backup ve Log Backup zinciri belirlenir. Yedekler arasında eksik veya bozuk parça bulunmadığı kontrol edilmeden Restore başlatılmaz.
Execution Plan İncelemesi
Sorgunun Execution Plan çıktısı incelenerek Full Table Scan, yüksek maliyetli JOIN, gereksiz Sort, Hash Match veya beklenmeyen Nested Loop işlemleri belirlenir. Tahmini ve gerçek satır sayıları arasında belirgin fark varsa ayrıca kaydedilir.
Fragmentation Seviyesinin Ölçülmesi
İndeks Fragmentation seviyesi ve ilgili tablo erişim modeli ölçülür. Küçük ve seyrek kullanılan tablolar için gereksiz bakım çalışması yapılmaz; müdahale kararı gerçek performans etkisine göre verilir.
Yetkilerin İncelenmesi
Her hesabın sahip olduğu roller, tablo erişimleri ve yönetim yetkileri iş gereksinimiyle karşılaştırılır. Gereksiz yüksek ayrıcalıklar Least Privilege prensibine göre azaltılır.
Güvenlik Güncellemelerinin Değerlendirilmesi
Üretici tarafından yayımlanan Güvenlik Yaması ve kritik hata düzeltmeleri incelenir. Güncellemenin mevcut sürüm, işletim sistemi ve uygulama bağımlılıklarıyla uyumluluğu değerlendirilir.
Kurtarma Mimarisinin Kontrolü
Hot Standby, Snapshot, yedekleme ve alternatif sunucu gibi mevcut kurtarma mekanizmalarının hedef RTO ve RPO'yu karşılayıp karşılamadığı değerlendirilir. Tek bir kurtarma yöntemine bağımlılık ayrıca analiz edilir.
Blocking Zincirinin Analizi
Bekleyen oturumlar ve kaynakları incelenerek Blocking zincirinin başlangıç noktası belirlenir. Sorunun uygulama sorgusundan mı, Transaction tasarımından mı veya kaynak yetersizliğinden mi kaynaklandığı ayrıştırılır.
Arşivleme Öncesi Yedekleme
Arşivleme işleminden önce ilgili verinin geri döndürülebilir bir Full Backup veya eşdeğer güvenli kopyası alınır. Arşivleme sırasında veri bütünlüğünün korunması için işlem kapsamı belirlenir.
Kaynak Kullanımı İncelemesi
CPU, Bellek Kullanımı ve Disk I/O metrikleri birlikte değerlendirilir. Tek bir kaynağın sürekli yüksek kullanım göstermesi halinde ilgili sorgular, joblar veya bakım işlemleri araştırılır.
Yedekleme İşleminin Çalıştırılması
Planlanan yedekleme görevi çalıştırılır ve işlem başlangıç zamanı, tamamlanma zamanı, oluşturulan dosya boyutu ve işlem durumu kaydedilir. Kritik veritabanlarında yedekleme sırasında oluşan hata veya kesintiler ayrıca incelenir.
Restore Ortamının Hazırlanması
Hedef ortamda yeterli disk kapasitesi ve uygun Data File yerleşimi hazırlanır. Üretim verisinin yanlışlıkla üzerine yazılmasını önlemek için hedef veritabanı ve bağlantı bilgileri tekrar doğrulanır.
Filtre ve JOIN Koşullarının İncelenmesi
WHERE ve JOIN koşullarının Sargable olup olmadığı kontrol edilir. Gereksiz fonksiyon kullanımı, örtülü veri tipi dönüşümü ve gereksiz Sonuç Kümesi üretimi sorgu üzerinden temizlenir.
Rebuild veya Reorganize Kararı
Veritabanı motorunun desteklediği bakım yöntemleri değerlendirilerek Rebuild veya Reorganize seçilir. İşlem için uygun bakım penceresi belirlenir ve üretim yükü dikkate alınır.
Secret Yönetiminin Kontrolü
Config File, uygulama kodu ve betiklerde veritabanı parolası veya erişim anahtarı bulunup bulunmadığı kontrol edilir. Hassas bilgiler mümkün olduğunca Secret Management altyapısına taşınır.
Test Ortamında Uygulama
Yama öncelikle üretime benzer test ortamında uygulanır. Uygulama bağlantıları, sorgular, joblar, Stored Procedureler ve yedekleme süreçleri temel fonksiyon testleriyle doğrulanır.
Felaket Senaryosunun Hazırlanması
Ana veritabanı sunucusunun tamamen kullanılamaz olduğu varsayılarak kurtarma senaryosu oluşturulur. Gerekli yedekler, bağlantı bilgileri, sorumlular ve uygulama yönlendirme adımları prosedürde tanımlanır.
Deadlock Kayıtlarının İncelenmesi
Deadlock oluşmuşsa olay kaydı incelenerek hangi Transactionların aynı kaynaklara farklı sırayla eriştiği belirlenir. Tekrarlayan desenler uygulama ve sorgu tasarımı açısından değerlendirilir.
Verinin Arşiv Alanına Aktarılması
Belirlenen kayıtlar kontrollü bir işlemle arşiv ortamına aktarılır. Aktarım sırasında kayıt sayısı, anahtar değerleri ve gerekli referans ilişkileri doğrulanır.
Log ve Geçici Alan Kontrolü
Transaction Log, TempDB veya Temporary Tablespace kullanım oranları incelenir. Hızlı büyüme, beklenmeyen doluluk veya olağan dışı işlem hacmi tespit edilirse ilgili Transaction ve uygulama işlemleri araştırılır.
Yedek Dosyasının Doğrulanması
Yedekleme tamamlandıktan sonra dosyanın bütünlüğü ve veritabanı motorunun yedekleme doğrulama mekanizması kullanılarak okunabilirliği kontrol edilir. Başarılı görünen ancak doğrulanamayan yedekler geçerli yedek kabul edilmez.
Point-in-time Recovery Uygulaması
Gerekliyse Full Backup sonrasında ilgili Incremental ve Log Backup dosyaları doğru sırayla uygulanır. İstenen tarih ve saat için Point-in-time Recovery tamamlanana kadar işlem zinciri kesilmez.
İndeks İhtiyacının Değerlendirilmesi
Filtreleme ve JOIN kolonları için mevcut İndeks yapısı incelenir. Yeni indeks eklenmeden önce yazma maliyeti, indeks boyutu, mevcut benzer indeksler ve sorgunun gerçek kullanım sıklığı değerlendirilir.
İstatistiklerin Kontrolü
İlgili tablo ve indeks istatistiklerinin güncelliği kontrol edilir. Veri dağılımının önemli ölçüde değiştiği tablolarda Query Optimizer'ın güncel dağılım bilgilerine sahip olması sağlanır.
Audit Log Kontrolü
Yetkili erişimler, başarısız girişler, ayrıcalık değişiklikleri ve kritik yönetim işlemlerinin Audit Log üzerinde izlenebilir olduğu doğrulanır. Logların saklama süresi ve erişim yetkileri de kontrol edilir.
Üretim Bakım Penceresinin Planlanması
Başarılı test sonrasında üretim bakım zamanı belirlenir. Olası geri dönüş yöntemi, son geçerli yedek, sorumlu kişiler ve iletişim planı değişiklik kaydına eklenir.
Kurtarma Testinin Uygulanması
Belirlenen senaryoya göre yedekten veya yedek sistemden veritabanı ayağa kaldırılır. Restore süresi, veri bütünlüğü, uygulama bağlantısı ve kritik işlemlerin çalışabilirliği ölçülür.
Transaction Kapsamının Daraltılması
Gereksiz uzun Transaction kapsamları küçültülür ve mümkün olan işlemler Transaction dışına alınır. Set-based işlemler tercih edilerek çok sayıda satırın tek tek işlenmesinden kaynaklanan Locking maliyeti azaltılır.
Arşiv Doğrulaması
Aktarılan verinin beklenen kayıt sayısı ve örnek kayıt içerikleri kaynak sistemle karşılaştırılır. Arşiv verisinin gerektiğinde okunabilir ve geri getirilebilir olduğu test edilir.
Başarısız İşlerin İncelenmesi
Planlanmış bakım, yedekleme, veri aktarımı ve diğer otomatik görevlerin başarısız kayıtları kontrol edilir. Tekrarlayan başarısız işler için kök neden ve yeniden çalıştırma gereksinimi belirlenir.
Off-site Kopyanın Kontrolü
Yedek dosyasının belirlenen Off-site Backup veya Bulut Depolama hedefine aktarılıp aktarılmadığı kontrol edilir. Aktarım tamamlanmadan işin başarılı kabul edilmemesi ve aktarım sonucunun kayıt altına alınması sağlanır.
Restore Sonrası Veri Doğrulaması
Restore tamamlandıktan sonra veritabanının açılabilirliği, temel tabloların erişilebilirliği, kritik kayıtların varlığı ve uygulama bağlantısı kontrol edilir. Restore Verify sonucu kayıt altına alınarak yedekten gerçekten kullanılabilir veri üretildiği doğrulanır.
Optimizasyon Sonrası Ölçüm
Değişiklik uygulandıktan sonra aynı test verisi ve mümkün olduğunca aynı parametrelerle sorgu yeniden çalıştırılır. CPU, I/O, süre ve satır sayısı önceki sonuçlarla karşılaştırılarak optimizasyonun gerçekten fayda sağladığı doğrulanır.
Bakım Sonrası Performans Kontrolü
Bakım tamamlandıktan sonra kritik sorguların Execution Plan ve çalışma süreleri önceki durumla karşılaştırılır. Olumsuz sonuç oluşursa indeks değişikliği geri alınabilir veya bakım politikası yeniden değerlendirilir.
Uygulama Sorgularının Güvenlik Kontrolü
Uygulama tarafından çalıştırılan SQL sorgularında kullanıcı girdilerinin doğrudan sorgu metnine eklenmediği doğrulanır. Parameterized Queries veya Prepared Statements kullanımı kontrol edilerek SQL Injection riski azaltılır.
Yama Sonrası Doğrulama
Üretim güncellemesi tamamlandıktan sonra veritabanı servisleri, bağlantılar, kritik sorgular, yedekleme görevleri ve uygulama işlevleri kontrol edilir. Sorun görülürse önceden tanımlanan geri dönüş prosedürü uygulanır.
Test Sonuçlarının Güncellenmesi
Gerçekleşen RTO ve RPO değerleri hedeflerle karşılaştırılır. Eksik kalan adımlar, manuel bağımlılıklar ve darboğazlar dokümante edilerek Felaket Kurtarma Planı güncellenir.
Değişiklik Sonrası Kilit Kontrolü
Uygulama değişikliği sonrasında aynı işlem senaryosu tekrar test edilir. Blocking, Deadlock, Transaction süresi ve işlem throughput değerleri önceki durumla karşılaştırılır.
Aktif Veriden Temizleme
Arşiv doğrulaması tamamlandıktan sonra yalnızca prosedürde tanımlanan kayıtlar aktif sistemden kaldırılır. İşlem sonrasında tablo boyutları, indeksler ve sorgu performansı kontrol edilerek gerekli bakım çalışmaları planlanır.
Günlük Operasyon Raporunun Oluşturulması
Kritik alarm, performans sorunu, yedekleme durumu, kapasite riski ve gerçekleştirilen müdahaleler günlük operasyon kaydına işlenir. Açık kalan riskler bir sonraki vardiyaya veya sorumlu ekibe devredilir.
Operasyonel Kontrol Listeleri
Günlük rutinleri tarayıcınızda saklanacak şekilde takip edin.
Günlük Veritabanı Sağlık Kontrolü Checklisti
%0Haftalık Sorgu Performansı İnceleme Checklisti
%0Yedekleme ve Restore Doğrulama Checklisti
%0Veritabanı Kullanıcı ve Yetki Denetimi Checklisti
%0Haftalık İndeks ve İstatistik Bakım Checklisti
%0Veritabanı Güvenlik Konfigürasyonu Checklisti
%0Transaction ve Blocking Günlük İzleme Checklisti
%0Veri Büyümesi ve Kapasite Planlama Checklisti
%0Felaket Kurtarma Hazırlık Checklisti
%0Veritabanı Değişiklik ve Sürüm Yönetimi Checklisti
%0Sorun / Çözüm Kütüphanesi
Veri Tabanı Yönetim Sistemleri sektöründe karşılaşılabilecek teknik ve operasyonel sorunlar için çözüm ve teşhis rehberi.
Büyük tablolarda 'Full Table Scan' kaynaklı yüksek CPU kullanımı
Sorgularda WHERE koşulunda kullanılan kolonlar için uygun indekslerin tanımlanmamış olması veya sorgunun indeksi kullanmayı engelleyen fonksiyonlar içermesi.
Sorgu çalışma planını (Execution Plan) inceleyerek 'Table Scan' veya 'Full Scan' operasyonlarının maliyetini kontrol et.
Sık kullanılan filtreleme kolonlarına B-Tree veya Hash indeksleri ekle, sorguları indeksi kullanacak şekilde (sargable) yeniden yaz.
Transaction kilitlenmeleri (Deadlock) nedeniyle işlemlerin sonlanması
Aynı kaynaklara (satırlara veya tablolara) farklı transactionların aynı anda erişip, birbirlerini bekleyen döngüsel kilitleme oluşturması.
Database yönetim panelinden aktif kilitleri ve deadlock loglarını izle, hangi transactionların birbirini beklediğini tespit et.
Tablo erişim sırasını standartlaştır, transaction süresini minimuma indir ve kilitlenme seviyesini tablo yerine satır bazına (row-level) düşür.
Büyük ölçekli veritabanlarında yedekleme süresinin iş saatlerine sarkması
Veri boyutunun büyümesiyle birlikte geleneksel full backup yönteminin disk I/O kapasitesini aşması.
Yedekleme penceresi (backup window) süresini ve yedekleme esnasındaki disk kuyruk uzunluğunu izle.
Incremental (artımlı) veya differential (farklı) yedekleme yöntemlerine geç, storage seviyesinde snapshot alarak yedekleme yükünü veritabanı motorundan ayır.
Transaction Log dosyasının disk alanını tüketmesi
Veritabanının 'Full' recovery modelinde olması ve uzun süre transaction log yedeği alınmaması nedeniyle logların temizlenmemesi.
Disk doluluk oranlarını ve log dosyasının aktif kullanım (log reuse wait) durumunu kontrol et.
Log yedeği alma sıklığını artır, veritabanı recovery modelini ihtiyaca göre 'Simple' seviyesine çek ve logları manuel olarak truncate et.
Veritabanı kullanıcı yetkilerinin 'Least Privilege' prensibine aykırı olması
Geliştirici veya uygulama hesaplarına gereğinden fazla (DBA veya SysAdmin) yetki tanımlanmış olması.
Kullanıcı rollerini ve bu rollerin erişebildiği tablo/prosedür listesini denetle (audit log).
Sadece gerekli CRUD operasyonlarına izin veren özelleştirilmiş roller oluştur ve yetkisiz sistem prosedürlerine (örn. xp_cmdshell) erişimi kapat.
İndekslerin parçalanması (Fragmentation) nedeniyle sorgu yavaşlığı
Tablodaki verilerin yoğun şekilde güncellenmesi, silinmesi ve eklenmesi sonucu indeks yapısının düzensizleşmesi (page split).
İndeks parçalanma oranlarını (fragmentation percentage) istatistiksel raporlardan kontrol et.
Periyodik olarak 'Reorganize' veya 'Rebuild' işlemleri planlayarak indeksleri optimize et.
Yavaş çalışan sorguların genel sistem performansını etkilemesi (Blocking)
Uzun süren okuma veya yazma işlemlerinin, tabloyu veya sayfayı kilitli tutması sonucu diğer işlemlerin beklemesi.
Lock wait sürelerini ve 'blocked process' raporlarını takip et.
Sorguları optimize et, gerekli ise 'READ UNCOMMITTED' seviyesini (veri doğruluğu kritik değilse) kullan veya 'NOLOCK' ipucunu değerlendir.
Geri yükleme (Restore) işleminin hatalı veya eksik gerçekleşmesi
Yedekleme dosyalarının bozuk olması veya geri yükleme sırasında veritabanı dosya yollarının uyuşmaması.
Yedek dosyasının 'Checksum' değerini doğrula ve 'Restore Verify Only' testlerini çalıştır.
Yedeklerin sağlıklı olduğunu periyodik olarak restore testleri ile doğrula ve geri yükleme prosedürlerini otomatize et.
Temporary Tablespace yetersizliği
Karmaşık JOIN işlemleri, büyük veri setlerinin sıralanması veya geniş çaplı gruplama (GROUP BY) sorgularının temp veritabanını doldurması.
TempDB veya ilgili temporary tablespace kullanım oranlarını ve disk doluluklarını izle.
Sorguları sadeleştir, temp dosyaları için ayrı ve hızlı disk (SSD) konfigürasyonu yap, tempdb dosya sayısını çekirdek sayısına göre optimize et.
SQL Injection saldırılarına karşı savunmasız kod yapısı
Uygulama katmanında kullanıcı girdilerinin doğrudan sorgu metnine birleştirilmesi (string concatenation).
Kod içerisinde parametrik olmayan tüm veritabanı sorgularını tara.
Sorguları mutlaka 'Parameterized Queries' veya 'Prepared Statements' kullanarak oluştur, ORM kütüphanelerinden faydalan.
İstatistiklerin güncel olmaması nedeniyle yanlış execution plan seçimi
Tablodaki veri dağılımının değişmesine rağmen veritabanı istatistiklerinin (statistics) güncellenmemesi, optimizasyon motorunun hatalı tahmin yapması.
İstatistiklerin en son ne zaman güncellendiğini kontrol et.
Otomatik istatistik güncelleme görevlerini aktif et veya büyük veri değişimlerinden sonra manuel olarak 'UPDATE STATISTICS' komutunu çalıştır.
Kaskad (Cascade) silme işlemlerinin performans kaybı
Yabancı anahtar (Foreign Key) ilişkilerinde ON DELETE CASCADE özelliğinin, silinen ana kaydın ilişkili tüm alt kayıtlarını tek tek silmesi.
Silme işlem süresini ve veritabanı loglarındaki aktiviteyi analiz et.
İlişkileri kontrol et, gerekirse 'ON DELETE CASCADE' yerine uygulama seviyesinde kontrollü silme veya yumuşak silme (soft delete) yöntemini kullan.
Point-in-time recovery yapılamaması
Veritabanının transaction log tutmayan 'Simple' modda çalışması.
Veritabanı 'Recovery Model' ayarını kontrol et.
Veritabanını 'Full' veya 'Bulk-Logged' moduna al ve düzenli log yedekleme planı oluştur.
Veri dosyalarının (Data Files) diske dengesiz dağılımı
Veritabanı dosyalarının tek bir disk üzerinde olması ve disk G/Ç (I/O) darboğazı yaratması.
Disk IOPS değerlerini ve disk kuyruk uzunluklarını (disk queue length) izle.
Data, Index ve Log dosyalarını fiziksel olarak farklı fiziksel disk veya disk gruplarına (RAID) dağıt.
Varsayılan veritabanı portlarının değiştirilmemesi
Standart portların (örn: 1433, 3306) kullanımı, port taramaları ile veritabanı tipinin ve sürümünün kolayca tespit edilmesine yol açar.
Veritabanı servisinin dinlediği portu ve internete açıklığını kontrol et.
Varsayılan portları standart olmayan yüksek port numaraları ile değiştir ve veritabanına doğrudan dış erişimi kapat.
Gereksiz verilerin seçilmesi (SELECT *)
Uygulama katmanında sadece belirli kolonlara ihtiyaç varken, tüm tablonun seçilmesi ile artan ağ trafiği ve bellek kullanımı.
Uygulama sorgularını ve SELECT ifadelerini incele.
Sorgularda sadece kullanılan kolon isimlerini yazarak ağ ve bellek yükünü azalt.
Dış anahtar (Foreign Key) eksikliği nedeniyle referans bütünlüğü bozulması
İlişkisel veritabanı olmasına rağmen performans kaygısıyla veya uygulama katmanı hatası ile Foreign Key tanımlanmaması.
Veritabanı şemasındaki ilişki diyagramlarını ve Foreign Key listelerini kontrol et.
İlişkisel bütünlüğü korumak için gerekli Foreign Key kısıtlarını tanımla.
Yedekleme sunucusu ile veritabanı sunucusu arasındaki ağ bant genişliği yetersizliği
Yedekleme anında ağın tıkanması ve yedeğin tamamlanamaması.
Yedekleme sırasında ağ trafiğini ve ağ anahtarı (switch) kullanımını ölç.
Yedekleme için ayrı bir ağ (backup network) oluştur veya yedekleme için düşük trafikli saatleri seç.
Veritabanı dosya sistemindeki blok boyutu (Block Size) uyumsuzluğu
Dosya sistemi blok boyutunun veritabanı sayfa (page) boyutuyla uyuşmaması, disk okuma verimini düşürür.
İşletim sistemi ve veritabanı sayfa boyutu ayarlarını karşılaştır.
Veritabanı için disk formatlama aşamasında optimum blok boyutunu belirle ve hizala (alignment).
Veritabanı şifrelerinin düz metin (plain text) olarak konfigürasyon dosyalarında saklanması
Uygulama ayarlarında şifrelerin şifrelenmeden tutulması.
Konfigürasyon dosyalarını ve çevresel değişkenleri incele.
Şifreleri 'Secret Management' araçları veya şifrelenmiş konfigürasyon yöntemleri ile sakla.
Çok karmaşık sorgularda (JOINs) indeks kullanılmaması
JOIN anahtarlarının indekslenmemesi, tablolardaki eşleşmelerin CPU tarafından hesaplanması.
JOIN kullanılan sorguların execution planında 'Hash Match' veya 'Nested Loop' maliyetlerini incele.
JOIN yapılan tüm anahtar sütunlara mutlaka indeks ekle.
Hatalı indeksleme nedeniyle güncellemelerin yavaşlaması
Tabloya gereğinden fazla indeks eklenmesi, her INSERT/UPDATE işleminde tüm indekslerin güncellenmesi.
İndeks kullanım oranlarını ve INSERT/UPDATE süresini ölç.
Sadece sık kullanılan ve performansı artıran indeksleri tut, kullanılmayan veya düşük faydalı indeksleri kaldır.
Yedeklerin bozuk olduğunun felaket anında fark edilmesi
Düzenli yedek alınıyor ancak alınan yedeklerin dönülebilirliği hiç test edilmiyor.
Düzenli test restore takvimini kontrol et.
Belirli aralıklarla alınan yedeklerden gerçek bir geri yükleme testi yap ve süreci raporla.
Log dosyalarının disk üzerinde parçalanması (Fragmentation)
Log dosyalarının sürekli büyüyüp küçülmesi veya çok fazla küçük log dosyası oluşturulması.
Disk dosya sistemindeki log dosyalarının parça (fragment) sayısını kontrol et.
Log dosyalarını daha büyük parçalarla önceden ayır (pre-allocate) ve dosya büyüme oranlarını sabitle.
Veritabanı loglarında hassas verilerin açıkça görülmesi
Uygulama loglarında veritabanı sorgularının parametreleriyle birlikte açıkça yazılması.
Uygulama log dosyalarını taranarak sorgu ve hassas verileri ara.
Loglama seviyesini ayarla veya sorgu loglarında hassas verileri maskeleyen filtreler ekle.
Cursor kullanımı nedeniyle performans kaybı
Küme bazlı işlemler (Set-based) yerine satır satır işlem yapan (row-by-row) Cursor kullanımı.
Stored prosedürleri inceleyerek Cursor yapılarını tespit et.
Cursor yerine Set-based (SELECT, INSERT, UPDATE) işlemlerini kullan.
Tetikleyicilerin (Trigger) karmaşıklığı nedeniyle yavaşlık
Veri değiştiğinde çalışan tetikleyicilerin (Trigger) ağır işlemler yapması veya döngüsel tetiklemelere neden olması.
Tetikleyicilerin çalışma zamanını ve etkilediği tabloları analiz et.
Tetikleyicileri sadeleştir, ağır işleri asenkron iş kuyruklarına (queue) taşı.
Yedekleme dosyalarının dışarıya (off-site) aktarılamaması
Yedeklerin sadece veritabanı sunucusu üzerinde kalması ve sunucunun fiziksel arızasında tüm yedeklerin kaybı.
Yedekleme lokasyonlarını ve aktarım yöntemlerini denetle.
Yedekleri farklı bir fiziksel lokasyona veya bulut depolama alanına aktaran bir replikasyon hattı kur.
Hatalı veri türü kullanımı (Veri İsrafı)
Çok küçük değerler için (örn. 0 veya 1) büyük veri türlerinin (örn. BIGINT) kullanılması.
Tablo şemasındaki veri türlerini ve kapladıkları alanları analiz et.
Veri türlerini ihtiyaç olan minimum boyuta göre yeniden düzenle (örn. TINYINT).
Veritabanı yazılımının güncel yamalarının (patch) uygulanmaması
Yama yapmanın sistemi bozacağı endişesiyle güvenlik güncellemelerinin ertelenmesi.
Veritabanı yazılımının sürümünü ve mevcut güvenlik yamalarını kontrol et.
Güvenlik yamalarını bir test ortamında doğrula ve periyodik olarak canlıya al.
Eksik kullanılan 'LIMIT' veya 'TOP' ifadeleri
Sadece ilk birkaç kayda ihtiyaç duyulan yerlerde tüm veri setinin getirilmesi.
Uygulama sorgularını incele ve sonuç kümesi sınırlarını kontrol et.
Sadece ilk kayıtlara ihtiyaç duyulan sorgularda LIMIT veya TOP ifadelerini kullan.
Transaction loglarının yedeklenmemesi nedeniyle oluşan doluluk
Veritabanının tam yedeği alınıyor ancak sürekli büyüyen log dosyaları boşaltılmıyor.
Log dosyası büyüme oranını ve log yedeği periyodunu kontrol et.
Düzenli transaction log yedeği alma görevini oluştur.
Felaket kurtarma süresinin (RTO) iş hedefleriyle uyuşmaması
Yedekten dönme stratejilerinin yavaş olması, sunucu kurulum süresinin uzun sürmesi.
Felaket kurtarma simülasyonu (DR Drill) yaparak toplam süreyi (RTO) ölç.
Yedekli sunucular (Hot Standby) kullanarak sistemi hızlıca ayağa kaldıracak mimariler kur.
Eski verilerin (Arşiv) ana veritabanında tutulması
Yıllanmış, nadir erişilen verilerin ana veritabanında durması ve performans düşürmesi.
Tablolardaki kayıt tarihlerini ve sorgu erişim sıklıklarını analiz et.
Eski verileri arşiv veritabanlarına veya veri ambarlarına taşı (Partitioning/Archiving).
Reklam & Pazarlama Fikir Havuzu
İşletmenizin marka değerini artıracak, fiziksel ve dijital reklam stratejileri.
Tasarım İlham Merkezi
Kurumsal Kimlik & Tasarım Örnekleri
Logo Tasarım Örnekleri
Veri Tabanı Yönetim Sistemleri Logosunda Dikkat Edilmesi Gerekenler
Logo tasarım rehber kriterleri analiz ediliyor...
Bu Sektörde Başarıya Ulaşın
Markanıza ait profesyonel tasarım, web sitesi, mobil uygulama ve pazarlama süreçlerinde birlikte çalışalım.
Bizimle İletişime Geçin
TÜRKİYE'NİN EN KAPSAMLI İŞ & İŞLETME VERİ MERKEZİ