SQL Server Versiyon Yükseltme Sürecinde Değişiklik Yönetimi
I’m a passionate software engineer specializing in SQL change management, database security, and DevOps automation. With over 17 years of experience in the banking sector, I focus on building tools and processes that make database deployments safer, more auditable, and automated.
As the creator of SQL Change Guard, I develop solutions that use risk scoring and AI-powered code analysis to detect dangerous SQL scripts before they reach production. I’m dedicated to helping teams minimize downtime and data loss through smarter change governance.
When I’m not coding, I enjoy sharing insights about secure development practices, WPF desktop applications, and integrating modern CI/CD pipelines.
Feel free to connect or reach out at info@sqlchangeguard.com
SQL Server 2016'dan 2022'ye geçiş. Kulağa tek seferlik bir operasyon gibi gelir. Ama yanlış yönetildiğinde aylarca süren bir sorun kaynağına dönüşebilir.
Neden Bu Kadar Karmaşık?
Versiyon yükseltme tek bir değişiklik değil, yüzlerce potansiyel değişikliğin tetikleyicisi.
Yeni versiyonda deprecated olan özellikler var mı? Mevcut stored procedure'ler yeni versiyonla uyumlu mu? Uygulama katmanı yeni SQL Server sürücüsünü destekliyor mu? Üçüncü taraf araçlar yeni versiyonla çalışıyor mu?
Bu soruların cevabını bilmeden yükseltme yapmak, gözleri kapalı yürümek gibi.
Yükseltme Öncesi Yapılması Gerekenler
Mevcut durumu belgeleyin
Yükseltme öncesinde veritabanı şemasının tam bir anlık görüntüsünü alın. Tüm nesneler, yetki yapısı, job'lar, linked server'lar. Bu belge yükseltme sonrası karşılaştırma için şart.
Deprecated özellikleri tespit edin
sql
SELECT
instance_name AS OzellikAdi,
cntr_value AS KullanımSayisi
FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Deprecated%'
AND cntr_value > 0
ORDER BY cntr_value DESC;
Bu sorgu mevcut veritabanında kullanılan ama yeni versiyonda kaldırılmış özellikleri listeler. Her biri ayrı bir değişiklik kalemi.
Uyumluluk seviyesini kademe kademe yükseltin
Direkt SQL Server 2016'dan 2022'ye geçmek yerine uyumluluk seviyesini kademeli yükseltmek riskleri küçük parçalara böler.
sql
-- Mevcut uyumluluk seviyesini kontrol et
SELECT name, compatibility_level FROM sys.databases;
-- Uyumluluk seviyesini adım adım yükselt
ALTER DATABASE VeritabaniAdi SET COMPATIBILITY_LEVEL = 140; -- SQL 2017
-- Test et
ALTER DATABASE VeritabaniAdi SET COMPATIBILITY_LEVEL = 150; -- SQL 2019
-- Test et
ALTER DATABASE VeritabaniAdi SET COMPATIBILITY_LEVEL = 160; -- SQL 2022
Test Stratejisi
Versiyon yükseltme testi üç katmanda yapılmalı.
Fonksiyonel test: Tüm stored procedure'ler çalışıyor mu, beklenen sonuçları veriyor mu?
Performans testi: Yeni Query Optimizer bazen farklı sorgu planları seçer. Yükseltme sonrası kritik sorguların execution plan'larını karşılaştırın.
Entegrasyon testi: Uygulamalar, raporlar, üçüncü taraf araçlar yeni versiyonla sorunsuz çalışıyor mu?
Rollback Planı
Versiyon yükseltmesi geri alınamaz bir operasyondur. Bir kez yükseltilince downgrade yapılamaz, sadece backup'tan geri dönülebilir.
Bu nedenle yükseltme öncesinde tam backup alınmalı ve o backup'tan restore test edilmiş olmalı. "Gerekirse geri döneriz" değil, "şu kadar sürede geri dönebiliriz" şeklinde net bir plan olmalı.
Sonuç
Versiyon yükseltme değişiklik yönetiminin en karmaşık senaryolarından biri. Belgeleme, kademeli geçiş ve kapsamlı test bu karmaşıklığı yönetilebilir hale getirir.
Detaylı bilgi için: sqlchangeguard.com
