sunucu.com.tr
İş Yazılımları

SQL Server 2016 desteği bitti: Logo ve Mikro veritabanlarını yeni sunucuda SQL Server 2022'ye taşıma

SQL Server 2016'nın genişletilmiş desteği sona erdi. Logo, Mikro, Netsis ya da ETA veritabanlarınızı yeni bir Windows Server'daki SQL Server 2022 veya 2025'e yedekle geri yükleme yöntemiyle taşıyın. Login aktarımı, uyumluluk düzeyi, istemci yönlendirme ve geri dönüş planı adım adım anlatılıyor.

sunucu.com.tr Ekibi11 dk okuma

SQL Server 2016'nın genişletilmiş desteği 14 Temmuz 2026'da sona erdi. Logo Tiger, Mikro, Netsis ya da ETA'yı hâlâ SQL Server 2014 veya 2016 üzerinde çalıştırıyorsanız artık bu sunucu güvenlik güncellemesi almıyor ve muhasebe verileriniz kapanmayacak açıklarla duruyor. Bu rehber, şirket veritabanlarını yeni bir Windows Server'daki SQL Server 2022'ye (ya da 2025'e) güvenli biçimde taşımak isteyen sistem yöneticileri ve KOBİ sahipleri için hazırlandı.

Destek sonu Logo ve Mikro kullananlar için ne anlama geliyor?

Program yarın sabah açılmayı bırakmayacak. Sorun daha sessiz ilerler:

  • Yeni çıkan SQL Server açıkları için yama gelmez. ERP sunucusu çoğu zaman uzak masaüstüyle dışarıya açık olduğu için bu ciddi bir risktir.
  • ERP üreticileri yeni sürümlerinde desteklenen veritabanı listesini zamanla daraltır. Bir noktada program güncellemesi eski SQL sürümünde kurulmaz.
  • Denetimde ve KVKK değerlendirmesinde "desteği bitmiş yazılım" kolayca bulgu olarak yazılır.

Microsoft'un seçeneklerini destek sonu seçenekleri sayfasında görebilirsiniz. Genişletilmiş güvenlik güncellemeleri (ESU) satın almak mümkün, ama bu yalnızca zaman kazandırır. Kalıcı çözüm, desteklenen bir sürüme geçmektir.

Hedef sürümü seçmek: 2022 mi, 2025 mi?

İlk karar ERP'nin neyi desteklediğine göre verilir, SQL Server'ın en yeni sürümüne göre değil.

ERP uyumluluğu. Logo, Mikro, Netsis ve ETA her program sürümü için desteklenen SQL Server listesini yayımlar. Taşıma öncesinde kullandığınız program sürümünün SQL Server 2022 ya da 2025 ile resmi olarak desteklendiğini bayinizden ya da üreticinin belgesinden yazılı olarak teyit edin. SQL Server 2025 ile ilgili topluluk forumlarında performans tartışmaları sürüyor; üretici onayı yoksa 2022 daha sakin bir tercihtir.

Express sınırı. Küçük işletmelerde Express sürüm yaygındır. SQL Server 2022 Express'te veritabanı başına 10 GB sınırı vardır. SQL Server 2025 Express'te bu sınır 50 GB'a çıkarıldı (SQL Server 2025 yenilikleri). Birkaç yıllık Logo veya Mikro veritabanı 10 GB'ı kolayca geçer. Veritabanınız sınıra yakınsa ya Standard lisans alın ya da ERP 2025'i destekliyorsa 2025 Express'i değerlendirin.

Lisans. Standard sürüm çekirdek ya da sunucu+CAL modeliyle lisanslanır. Yeni sunucudaki çekirdek sayısını lisans maliyetiyle birlikte planlayın; gereğinden fazla vCPU vermek lisans faturasını büyütür.

Neden yerinde yükseltme değil, yeni sunucu?

Eski sunucuda SQL Server kurulumunu doğrudan yükseltmek mümkündür ve Microsoft desteklenen yolları sürüm yükseltme sayfasında listeler. Ancak ERP sunucularında yeni sunucuya taşıma neredeyse her zaman daha doğrudur:

  • Eski sunucunun Windows Server sürümü genellikle yeni SQL Server tarafından desteklenmez. İşletim sistemi de yükseltilecekse iki büyük değişiklik aynı geceye sıkışır.
  • Yerinde yükseltme başarısız olursa geri dönüş zordur. Yeni sunucuda ise eski sunucu dokunulmadan bekler, geri dönüş birkaç dakikadır.
  • Taşımadan önce yeni sunucuda istediğiniz kadar deneme yapabilirsiniz.

Yeni kurulumda Windows Server 2022 veya 2025 üzerine SQL Server kurun ve seçtiğiniz SQL sürümünün işletim sistemi gereksinimlerini Microsoft belgesinden kontrol edin. Veri ve log dosyaları için ayrı diskler, tempdb için hızlı bir disk ayırmak performansa doğrudan yansır. Bunu kendi donanımınızda yapmak yerine hazır bir SQL Server veritabanı sunucusu da kullanabilirsiniz.

Taşıma öncesi hazırlık

1. Envanter çıkarın

Aşağıdaki sorgu eski sunucudaki sürümü, sunucu collation'ını, veritabanlarını, uyumluluk düzeylerini ve boyutları listeler. SQL Server 2014 ve 2016 için hazırlandı; yalnızca okuma yapar, geri alınacak bir değişiklik yoktur.

sql
-- Sunucu bilgisi: sürüm ve sunucu düzeyi collation
SELECT @@VERSION AS Surum,
       SERVERPROPERTY('Edition')   AS Edisyon,
       SERVERPROPERTY('Collation') AS SunucuCollation;

-- Kullanıcı veritabanları: uyumluluk düzeyi, collation, kurtarma modeli ve boyut (MB)
SELECT d.name,
       d.compatibility_level,
       d.collation_name,
       d.recovery_model_desc,
       CAST(SUM(mf.size) * 8.0 / 1024 AS DECIMAL(12,1)) AS BoyutMB
FROM sys.databases d
JOIN sys.master_files mf ON mf.database_id = d.database_id
WHERE d.database_id > 4
GROUP BY d.name, d.compatibility_level, d.collation_name, d.recovery_model_desc
ORDER BY BoyutMB DESC;

Çıktıyı saklayın. Özellikle sunucu collation'ını not edin: yeni SQL Server'ı kurarken aynı collation'ı seçmelisiniz. Türkçe ERP'lerde bu genellikle Turkish ile başlayan bir collation'dır, ama tahmin etmeyin, sorgunun sonucunu kullanın.

Ayrıca şunları listeleyin: SQL Agent işleri, bakım planları, bağlı sunucular (linked server), ERP'nin kullandığı SQL login'leri ve programın dışından veritabanına bağlanan raporlama ya da entegrasyon araçları.

2. ERP sürümünü güncelleyin

Eski programı yeni SQL'e taşımak yerine, önce eski sunucuda ERP'yi yeni SQL sürümünü destekleyen sürüme yükseltin. Böylece veritabanı şeması güncel hâliyle taşınır ve iki değişikliği aynı anda yapmamış olursunuz.

3. Kesinti penceresini planlayın

Taşıma gecesi kullanıcıların sistemden tamamen çıkması gerekir. Ay sonu, KDV beyanı ve e-Defter dönemlerinden uzak bir hafta sonu seçin. Kullanıcılara önceden yazılı duyuru yapın.

Adım adım yedekle geri yükleme

Eski sunucuda son yedek

Aşağıdaki betik veritabanını yalnız okunur yapar, ardından sağlama toplamlı tam yedek alır ve yedeği doğrular. SQL Server 2014 ve 2016 için hazırlandı. ORNEK_DB ve yedek yolunu kendi değerlerinizle değiştirin. Geri almak için betiğin sonundaki yorum satırındaki komutu çalıştırmanız yeterli.

sql
-- Açık bağlantıları kes ve veritabanını yalnız okunur yap.
-- Böylece yedekten sonra kimse veri giremez, eski sunucu temiz bir geri dönüş noktası olur.
USE master;
IF DATABASEPROPERTYEX('ORNEK_DB', 'Updateability') = 'READ_WRITE'
    ALTER DATABASE ORNEK_DB SET READ_ONLY WITH ROLLBACK IMMEDIATE;

-- COPY_ONLY: mevcut yedek zincirini bozmaz.
-- COMPRESSION Express sürümde desteklenmez; Express kullanıyorsanız bu satırdaki COMPRESSION'ı silin.
BACKUP DATABASE ORNEK_DB
TO DISK = N'D:\Tasima\ORNEK_DB_son.bak'
WITH COPY_ONLY, CHECKSUM, COMPRESSION, INIT, STATS = 10;

-- Yedek dosyasının okunabilir ve tutarlı olduğunu doğrula
RESTORE VERIFYONLY FROM DISK = N'D:\Tasima\ORNEK_DB_son.bak' WITH CHECKSUM;

-- GERİ ALMA (taşımadan vazgeçerseniz):
-- ALTER DATABASE ORNEK_DB SET READ_WRITE WITH ROLLBACK IMMEDIATE;

Logo'da şirket ve dönem tabloları genellikle tek veritabanında, sistem tabloları ise ayrı bir veritabanında olabilir. Mikro'da her şirket için ayrı veritabanı ve ortak bir sistem veritabanı bulunur. Envanter sorgusunda çıkan tüm ERP veritabanları için aynı adımı tekrarlayın. Yedek dosyasını yeni sunucuya kopyaladıktan sonra boyutunun aynı olduğunu kontrol edin.

Yeni sunucuda geri yükleme

Önce yedeğin içindeki mantıksal dosya adlarını öğrenin, sonra dosyaları yeni sunucunun disk düzenine taşıyarak geri yükleyin. SQL Server 2022 ve 2025 için hazırlandı. Betik veritabanı zaten varsa üzerine yazmaz ve durur; bu bilinçli bir tercihtir. Geri almak için yeni sunucuda oluşan veritabanını silmeniz yeterlidir, eski sunucuda hiçbir şey değişmez.

sql
-- 1) Yedekteki mantıksal dosya adlarını gör (LogicalName sütunu)
RESTORE FILELISTONLY FROM DISK = N'E:\Tasima\ORNEK_DB_son.bak';

-- 2) Veritabanı yoksa geri yükle; dosyaları yeni disklere yerleştir.
--    ORNEK_DB_Data ve ORNEK_DB_Log, FILELISTONLY çıktısındaki LogicalName değerleriyle değiştirilmeli.
IF DB_ID('ORNEK_DB') IS NULL
BEGIN
    RESTORE DATABASE ORNEK_DB
    FROM DISK = N'E:\Tasima\ORNEK_DB_son.bak'
    WITH MOVE N'ORNEK_DB_Data' TO N'F:\SQLData\ORNEK_DB.mdf',
         MOVE N'ORNEK_DB_Log'  TO N'G:\SQLLog\ORNEK_DB_log.ldf',
         CHECKSUM, RECOVERY, STATS = 10;
END
ELSE
    PRINT 'ORNEK_DB zaten var, geri yükleme atlandı.';

-- 3) Yedek salt okunur alındığı için veritabanı salt okunur gelir; yazmaya aç
ALTER DATABASE ORNEK_DB SET READ_WRITE;

-- 4) Bütünlük kontrolü
DBCC CHECKDB (ORNEK_DB) WITH NO_INFOMSGS;

Geri yükleme sırasında SQL Server veritabanının iç yapısını yeni sürüme yükseltir. Bu tek yönlü bir işlemdir; aşağıda geri dönüş planında buna değineceğiz.

Login'leri, Agent işlerini ve bakım planlarını taşıma

Veritabanı içindeki kullanıcılar yedekle gelir, ama sunucu düzeyindeki login'ler gelmez. Logo ve Mikro çoğunlukla SQL kimlik doğrulamalı bir login kullanır. Login yeni sunucuda aynı SID ve parola özetiyle oluşturulmazsa "yetim kullanıcı" sorunu yaşarsınız.

Microsoft'un klasik yöntemi sp_help_revlogin betiğidir. Daha pratik yol, topluluğun yaygın kullandığı dbatools PowerShell modülüdür. Aşağıdaki betik Windows Server 2022 ve PowerShell 5.1 ile uyumlu olacak şekilde hazırlandı; yeni sunucuda yönetici olarak çalıştırılır. ESKI-SQL ve YENI-SQL adlarını kendi sunucu adlarınızla değiştirin. Login yeni sunucuda zaten varsa varsayılan olarak atlanır, bu yüzden tekrar çalıştırmak güvenlidir. Geri almak için yeni sunucuda oluşturulan login'leri ve işleri SSMS'ten silebilirsiniz.

powershell
# dbatools modülü yoksa yükle (yalnız geçerli kullanıcı için)
if (-not (Get-Module -ListAvailable -Name dbatools)) {
    Install-Module dbatools -Scope CurrentUser
}

$kaynak = 'ESKI-SQL'   # eski sunucu (ör. ESKI-SQL\INSTANCE)
$hedef  = 'YENI-SQL'   # yeni sunucu

# Kurulum ve sistem login'leri hariç tüm login'leri SID ve parola özetiyle kopyala.
# Mevcut login'ler -Force verilmediği için atlanır.
Copy-DbaLogin -Source $kaynak -Destination $hedef -ExcludeSystemLogins

# SQL Agent işlerini kopyala (aynı adlı iş varsa atlanır)
Copy-DbaAgentJob -Source $kaynak -Destination $hedef

# Sonucu kontrol et: hedefteki login listesi
Get-DbaLogin -SqlInstance $hedef -ExcludeSystemLogin | Select-Object Name, LoginType, CreateDate

Bakım planları SSIS paketi olarak saklandığı için sorunsuz taşınmayabilir. Yeni sunucuda yedek, indeks bakımı ve istatistik güncelleme işlerini yeniden kurmak çoğu zaman daha temizdir. Yedekleri aynı sunucunun diskinde bırakmayın; fidye yazılımına karşı ayrı bir konumda tutmak için KVKK uyumlu ayrı yedekleme çözümlerini değerlendirin.

Yetim kullanıcıları kontrol etme

Login'leri taşıdıktan sonra her ERP veritabanında eşleşmeyen kullanıcı kalıp kalmadığına bakın. SQL Server 2022 ve 2025 için hazırlandı; ikinci adım yalnız eşleme yapar, veri silmez.

sql
USE ORNEK_DB;
-- SQL login'e bağlı olması gereken ama SID'i eşleşmeyen kullanıcılar
SELECT dp.name AS Kullanici, dp.sid
FROM sys.database_principals dp
LEFT JOIN sys.server_principals sp ON sp.sid = dp.sid
WHERE dp.type = 'S' AND sp.sid IS NULL AND dp.principal_id > 4;

-- Bulunan kullanıcıyı aynı adlı login'e bağla (ORNEK_KULLANICI yerine gerçek ad)
-- ALTER USER ORNEK_KULLANICI WITH LOGIN = ORNEK_KULLANICI;

Uyumluluk düzeyi ve Query Store: 130'dan 160'a güvenli geçiş

Geri yüklenen veritabanı eski uyumluluk düzeyini korur: SQL Server 2016'dan gelen veritabanı 130, 2014'ten gelen 120 ile açılır. SQL Server 2022'nin düzeyi 160, 2025'inki 170'tir (uyumluluk düzeyi belgesi).

Düzeyi hemen yükseltmek cazip görünür, ama yeni sorgu iyileştiricisi bazı ERP raporlarında farklı plan seçebilir. Güvenli sıra şudur:

  1. Taşıdıktan sonra birkaç gün eski düzeyde çalışın ve Query Store'u açın. Böylece "önceki iyi plan" kaydı oluşur.
  2. ERP üreticisi belirli bir düzey öneriyorsa ona uyun.
  3. Ardından düzeyi yükseltin, ağır raporları izleyin. Gerilemeyi Query Store'da görür, gerekirse eski planı zorlarsınız.

Aşağıdaki betik SQL Server 2022 için hazırlandı. Geri almak için uyumluluk düzeyini tekrar 130 yapmanız yeterlidir; bu ayar veriye dokunmaz.

sql
-- 1. aşama: Query Store'u aç (zaten açıksa yeniden açmak zararsızdır)
ALTER DATABASE ORNEK_DB SET QUERY_STORE = ON;
ALTER DATABASE ORNEK_DB SET QUERY_STORE (OPERATION_MODE = READ_WRITE);

-- İstatistikleri güncelle: sürüm değişiminden sonra planlar için önemlidir
USE ORNEK_DB;
EXEC sp_updatestats;

-- 2. aşama (birkaç gün sonra): uyumluluk düzeyini yükselt
-- ALTER DATABASE ORNEK_DB SET COMPATIBILITY_LEVEL = 160;

-- GERİ ALMA: ALTER DATABASE ORNEK_DB SET COMPATIBILITY_LEVEL = 130;

Logo ve Mikro istemcilerini yeni sunucuya yönlendirme

İstemciler sunucuya ad ya da IP ile bağlanır. Bağlantı ayarını her bilgisayarda tek tek değiştirmek yerine, bundan sonraki taşımaları da kolaylaştıracak bir yöntem önerilir: istemcileri erp-sql.example.com gibi bir DNS adına bağlayın ve bu adı yeni sunucunun adresine (ör. 192.0.2.10) yönlendirin. Logo'da veritabanı bağlantısı sistem işletmeni ve bağlantı yapılandırması üzerinden, Mikro'da ise programın veritabanı bağlantı ayarlarından değiştirilir. Kesin menü adları sürüme göre farklılık gösterdiği için bayinizin dokümanını izleyin.

Yeni sunucuda istemcilerin bağlanabilmesi için SQL portunun (varsayılan 1433) yalnızca iç ağdan ya da VPN'den erişime açılması gerekir. Bu portu internete açmayın. Windows Firewall kuralı eklerken dikkat: kuralları uygulamadan önce RDP erişiminize izin verildiğinden emin olun; aksi hâlde sunucuya erişimi kaybedebilirsiniz. Bu durum için sağlayıcınızın konsol erişimini önceden hazır tutun.

Logo kullanıcılarının ofis dışından çalışması gerekiyorsa veritabanını dışarı açmak yerine programı sunucuda uzak masaüstüyle çalıştırmak daha güvenlidir. Bu düzen için Logo sunucu ve Mikro sunucu sayfalarındaki kurulum modeline bakabilirsiniz.

Test listesi

Kullanıcıları içeri almadan önce şu kontrolleri yapın:

  • Her şirket ve dönem açılıyor mu?
  • Son girilen fiş, fatura ve stok hareketi yeni sunucuda görünüyor mu?
  • Mizan ve stok raporu eski sunucudaki çıktıyla aynı toplamı veriyor mu?
  • e-Fatura, e-Defter ve banka entegrasyonları bağlanıyor mu?
  • SQL Agent'taki yedek işi çalıştı ve yedek dosyası oluştu mu?
  • En ağır raporların süresi eski sunucuyla karşılaştırılabilir mi?

Geri dönüş planı

SQL Server, yeni bir sürümde alınan yedeğin eski sürüme geri yüklenmesine izin vermez. 2022'de alınan yedeği 2016'ya yüklemeye çalışırsanız Error 3169 alırsınız. Bu yüzden geri dönüş planınız yedek dosyası değil, eski sunucunun kendisidir:

  • Eski sunucuyu kapatmayın, veritabanını yalnız okunur hâlde en az birkaç hafta bekletin.
  • Yeni sunucuda sorun çıkar ve ilk saatlerde geri dönmeniz gerekirse, DNS adını eski sunucuya çevirip veritabanını yeniden yazılabilir yapın.
  • Yeni sunucuda veri girilmeye başladıktan sonra geri dönmek, o sürede girilen kayıtların elle aktarılması demektir. Kararı ilk iş günü sonunda verin.

Sık yapılan hatalar

Error 3169. Yeni sürümde alınmış yedeği eski sunucuya yüklemeye çalışmaktan kaynaklanır. Çözüm yoktur; yukarıdaki geri dönüş planını uygulayın.

Yetim kullanıcılar. Program "kullanıcı adı veya şifre hatalı" der ama login yeni sunucuda vardır. Login'ler SID'iyle taşınmamıştır. Yetim kullanıcı sorgusunu çalıştırıp eşleyin.

Collation farkı. Yeni SQL Server farklı collation ile kurulduysa tempdb ile ERP veritabanı arasında "Cannot resolve the collation conflict" hatası çıkar. Türkçe karakterli aramalar da yanlış sonuç verebilir. Sunucu collation'ını kurulumda eski sunucuyla aynı seçin; sonradan değiştirmek zahmetlidir.

Taşımadan sonra yavaşlama. En sık nedenler güncellenmemiş istatistikler, yeni sürüme hemen geçirilen uyumluluk düzeyi, yeni sunucuda varsayılan bırakılan bellek sınırı ve veri ile logun aynı yavaş diske konmasıdır. Max server memory değerini işletim sistemine pay bırakacak şekilde ayarlayın.

Express sınırını unutmak. 10 GB'a yakın bir veritabanı 2022 Express'e taşınırsa kısa süre sonra yeni kayıt girişi durur. Boyutu envanterde kontrol edin.

Sık sorulan sorular

ESU satın alıp SQL Server 2016'da kalabilir miyim?

Genişletilmiş güvenlik güncellemeleri belirli lisans koşullarıyla satın alınabilir ve size geçici olarak güvenlik yaması sağlar. Ancak maliyeti yıllar içinde artar ve ERP üreticisinin desteğini garanti etmez. ESU'yu taşımayı planlarken geçen süre için köprü olarak düşünmek daha doğrudur.

Taşıma ne kadar sürer?

Kesinti süresi büyük ölçüde veritabanı boyutuna, disk hızına ve yedek dosyasının kopyalanma süresine bağlıdır. Yeni sunucuda önceden bir deneme taşıması yaparak gerçek süreyi ölçün ve kesinti penceresini buna göre planlayın.

SQL Server 2014'ten doğrudan 2022'ye geçebilir miyim?

Evet, SQL Server 2022 SQL Server 2014 yedeklerini geri yükleyebilir. Veritabanı 120 uyumluluk düzeyiyle açılır. Aynı Query Store ve aşamalı düzey yükseltme yöntemini uygulayın.

Mevcut SQL Server lisansımı yeni sunucuda kullanabilir miyim?

Eski sürüm lisansı yeni sürümü kullanma hakkı vermez; Software Assurance gibi bir sözleşmeniz yoksa SQL Server 2022 veya 2025 için yeni lisans gerekir. Lisans durumunuzu yetkili satıcınızla netleştirin.

Eski sunucuyu ne zaman kapatabilirim?

Yeni sunucuda en az bir ay sonu kapanışı sorunsuz yapıldıktan ve yeni sunucunun yedeklerinden bir geri yükleme testi başarıyla tamamlandıktan sonra. Kapatmadan önce eski veritabanlarının son yedeğini arşivleyin.

Sonuç

SQL Server 2016'dan çıkmanın en güvenli yolu yeni bir sunucu kurmak, veritabanlarını yedekle geri yükleme yöntemiyle taşımak ve eski sunucuyu geri dönüş noktası olarak bekletmektir. Collation'ı eşleyin, login'leri SID'iyle taşıyın, uyumluluk düzeyini Query Store eşliğinde aşamalı yükseltin ve test listesini tamamlamadan kullanıcıları içeri almayın. Bu sıra izlendiğinde taşıma, muhasebe ekibinin fark etmeyeceği kısa bir hafta sonu işine dönüşür.

  • #sql server 2022
  • #sql server 2016
  • #logo tiger
  • #mikro
  • #veritabanı taşıma
  • #uyumluluk düzeyi
  • #dbatools