Installing SQL Server on Linux (Ubuntu)

Linux’ta SQL Server Kurulumu: Ubuntu 24.04 Üzerine SQL Server 2025, Adım Adım

Ubuntu 24.04 üzerine SQL Server 2025 kurulumu ve production’a hazırlık: desteklenen sürüm eşleşmeleri, disk düzeni, mssql-conf ayarları, mssql TuneD profili, güvenlik, uzaktan bağlantı, güncelleme ve kaldırma.

Eylül 25, 2025

SQL Server, SQL Server 2017’den bu yana Linux üzerinde native olarak çalışıyor. Windows’takiyle aynı veritabanı motoru, aynı T-SQL, aynı yedek formatı ve aynı query optimizer; ince bir platform soyutlama katmanının üzerinde çalışıyor. Windows’ta alınan bir yedek Linux’ta, Linux’ta alınan bir yedek de Windows’ta restore edilebiliyor.

Kurulumun kendisi on dakika kadar sürer. Sunucuyu production’a hazır hale getirmek ise daha fazlasını ister: SQL Server sürümünüze uygun Ubuntu sürümü, mantıklı bir disk düzeni, kernel ayarları, bellek sınırları, tempdb dosyaları, TLS ve bir yama rutini. Bu rehber ikisini de ele alıyor; ana örnek olarak Ubuntu 24.04 üzerinde SQL Server 2025’i kullanıyor, Ubuntu 22.04 üzerinde SQL Server 2022 için de notlar veriyor.

SQL Server Kurulum Desteği

Linux üzerinde SQL Server'ı production'a hazır kuralım

Kıdemli DBA ekibimiz sürüm ve dağıtım seçiminden disk düzenine, kernel ayarlarından yedekleme ve güvenliğe kadar kurulumun tamamında destek verir.

Kurulum Desteği Alın

Hangi SQL Server Sürümü Hangi Ubuntu Sürümünde Çalışır?

Her SQL Server sürümünün, her Ubuntu sürümü için ayrı bir paket deposu vardır. Eşleşme yanlışsa depo çözümlenmez ve kurulum ilk apt-get komutunda başarısız olur.

SQL Server sürümü Ubuntu sürümü Destek başlangıcı
SQL Server 2025 (17.x) 24.04 LTS SQL Server 2025 CU1
SQL Server 2022 (16.x) 22.04 LTS SQL Server 2022 CU10
SQL Server 2019 (15.x) 20.04 LTS SQL Server 2019 CU10
SQL Server 2017 (14.x) 18.04 LTS SQL Server 2017 CU20

Yeni bir production sunucusu için Ubuntu 24.04 LTS üzerinde SQL Server 2025 kullanın. SQL Server 2025, Ubuntu dışında Red Hat Enterprise Linux’u (RHEL 10 dahil) destekliyor. SUSE Linux Enterprise Server ise SQL Server 2025’ten itibaren desteklenmiyor.

Başlamadan Önce: Gereksinimler ve Disk Düzeni

Microsoft’un minimum gereksinimleri mütevazıdır:

  • x64 işlemci, 2 çekirdek, 2 GHz
  • En az 2 GB bellek
  • En az 6 GB boş disk alanı
  • XFS veya ext4 dosya sistemi (Btrfs gibi diğer dosya sistemleri desteklenmez)

Bu değerler bir test ortamı için yeterlidir. Production için depolamayı kurulumdan önce planlayın:

  • Veri dosyaları, transaction log’lar, tempdb ve yedekler için ayrı volume’lar kullanın. Böylece bir iş yükünün I/O’su diğerini etkilemez, dolan bir yedek diski de veritabanını durduramaz.
  • Veri ve log dosyaları için Microsoft’un önerdiği dosya sistemi XFS‘tir. ext4 de desteklenir; 5.6’dan eski kernel’lerde XFS kullanın.
  • Veri ve log volume’larını noatime ile mount edin ve /etc/fstab içinde UUID ile tanımlayın.
  • Sanal makinede sabit bellek kullanın; Hyper-V Dynamic Memory gibi dinamik bellek özelliklerini kullanmayın.
# Örnek /etc/fstab satırları (UUID'leri bulmak için: sudo blkid)
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx1  /sqldata    xfs  rw,attr2,noatime  0 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx2  /sqllog     xfs  rw,attr2,noatime  0 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx3  /sqltempdb  xfs  rw,attr2,noatime  0 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx4  /sqlbackup  xfs  rw,attr2,noatime  0 0

Ubuntu 24.04 Üzerine SQL Server 2025 Kurulumu

1. Microsoft paket imzalama anahtarını içe aktarın

curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --batch --yes --dearmor -o /usr/share/keyrings/microsoft-prod.gpg

2. SQL Server deposunu kaydedin

curl -fsSL https://packages.microsoft.com/config/ubuntu/24.04/mssql-server-2025.list | sudo tee /etc/apt/sources.list.d/mssql-server-2025.list

Ubuntu 22.04 üzerinde SQL Server 2022 için liste dosyası https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list adresindedir.

Not

Eski rehberler apt-key ve add-apt-repository kullanır. apt-key güncel Ubuntu sürümlerinde kullanımdan kaldırıldığı için yukarıdaki keyring dosyası ve .list dosyası yöntemini kullanın.

3. Paketi kurun

sudo apt-get update
sudo apt-get install -y mssql-server

4. İlk yapılandırmayı çalıştırın

sudo /opt/mssql/bin/mssql-conf setup

Kurulum sizden bir sürüm seçmenizi ve sa parolasını belirlemenizi ister. Evaluation, Express ve SQL Server 2025’te Enterprise Developer ile Standard Developer ücretsizdir. Standard ve Enterprise için ürün anahtarı ya da Azure Arc üzerinden kullandıkça öde lisanslaması gerekir. SQL Server 2025’te Web sürümü artık yok.

sa parolası SQL Server parola politikasına uymalıdır: en az sekiz karakter; büyük harf, küçük harf, rakam ve sembol gruplarından en az üçünü içermeli; en fazla 128 karakter.

Script ile yapılan kurulumlarda aynı yapılandırma soru sormadan çalıştırılabilir:

sudo MSSQL_PID='Express' ACCEPT_EULA='Y' MSSQL_SA_PASSWORD='<GucluParola>' \
  /opt/mssql/bin/mssql-conf -n setup

5. Servisin çalıştığını doğrulayın

systemctl status mssql-server --no-pager

6. Güvenlik duvarını dar kapsamlı açın

SQL Server TCP 1433’te dinler. Bu portu herkese değil, yalnızca ihtiyaç duyan ağlara açın:

sudo ufw allow from 10.10.20.0/24 to any port 1433 proto tcp
sudo ufw status

sqlcmd ve bcp Kurulumu

Komut satırı araçları ayrı bir depodan gelir:

curl -fsSL https://packages.microsoft.com/config/ubuntu/24.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo apt-get install -y mssql-tools18 unixodbc-dev
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc

Ardından bağlanıp kısa bir test yapın:

sqlcmd -S localhost -U sa -C
CREATE DATABASE TestDB;
GO
USE TestDB;
CREATE TABLE dbo.Inventory (id INT PRIMARY KEY, name NVARCHAR(50), quantity INT);
INSERT INTO dbo.Inventory VALUES (1, N'koli', 150), (2, N'palet', 40);
SELECT * FROM dbo.Inventory WHERE quantity > 100;
GO

İpucu

mssql-tools18 araçları bağlantıları varsayılan olarak şifreler; yeni bir kurulum ise self-signed sertifika kullanır. -C seçeneği bağlantıyı şifreli tutarak bu sertifikaya güvenir. Bu, şifrelemeyi -No ile kapatmaktan daha doğru bir tercihtir; production’da aşağıda anlatıldığı gibi gerçek bir sertifika kurun.

Kurulumdan Hemen Sonra SQL Server’ı Yapılandırın

Linux’ta, Windows’ta Configuration Manager’dan yapılan instance ayarları mssql-conf ile yapılır. Değişikliklerden sonra servisi yeniden başlatın.

# Yeni veritabanları ve yedekler için varsayılan konumlar (klasörlerin sahibi mssql olmalı)
sudo mkdir -p /sqldata /sqllog /sqlbackup
sudo chown mssql:mssql /sqldata /sqllog /sqlbackup
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /sqldata
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /sqllog
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /sqlbackup

# SQL Server sürecinin bellek sınırı (MB)
sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 28672

# SQL Server Agent kuruludur ama varsayılan olarak kapalıdır
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true

sudo systemctl restart mssql-server
  • Bellek: Linux’ta SQL Server varsayılan olarak fiziksel belleğin %80’ine kadarını kullanabilir. Ayrılmış bir sunucuda bu genellikle makuldür; işletim sistemine ve ajanlara yeterli pay bırakın ve SQL Server içinde max server memory değerini de ayarlayın. Doğru boyutlandırmayı max server memory yazımızda anlatıyoruz.
  • tempdb: Linux’ta kurulum tek bir tempdb veri dosyası oluşturur. Kurulumdan sonra, genellikle çekirdek başına bir ve en fazla sekiz olacak şekilde, eşit boyutlu dosyalar ekleyin. Ayrıntılar için tempdb best practice’leri yazımıza bakabilirsiniz.
  • SQL Server Agent: yedekleri, index bakımını veya CHECKDB’yi SQL Server’ın kendisinden zamanlıyorsanız açın.
  • Write-through ve FUA: Ubuntu 18.04 veya üzeri, XFS (kernel 4.18+) ya da ext4 (kernel 5.6+) ve Forced Unit Access destekleyen bir depolamada Microsoft, trace flag 3979 ile control.alternatewritethrough = 0 ayarını öneriyor. Diğer durumlarda varsayılanları koruyun.

Ubuntu’yu SQL Server İçin Ayarlayın

Microsoft, kernel önerilerini mssql adlı bir TuneD profilinde topluyor. Bu profil RHEL ile birlikte geliyor; Ubuntu’da tuned paketini kurup profili kendiniz oluşturmanız gerekir.

sudo apt-get install -y tuned
sudo mkdir -p /usr/lib/tuned/mssql
sudo tee /usr/lib/tuned/mssql/tuned.conf > /dev/null <<'EOF'
[main]
summary=Optimize for Microsoft SQL Server
include=throughput-performance

[cpu]
force_latency=5

[sysctl]
vm.swappiness = 1
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.transparent_hugepages=always
vm.max_map_count=1600000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
kernel.numa_balancing=0
EOF
sudo tuned-adm profile mssql
tuned-adm active
Ayar Önerilen değer Neden
vm.swappiness 1 SQL Server belleğinin swap’e atılması yerine RAM’de kalmasını sağlar
vm.max_map_count En az 262144 (profilde 1600000) Varsayılan 65536 SQL Server için düşük kalabilir
kernel.numa_balancing 0 Otomatik NUMA dengeleme, çok node’lu NUMA sistemlerde SQL Server’ı yavaşlatır
Transparent huge pages Açık (çok instance’lı sunucularda madvise) Tek instance için en tutarlı performansı verir
CPU governor performance throughput-performance taban profiliyle uygulanır
Disk read-ahead 4096 blockdev ile her cihaz için ayrı ayarlanır; profil kapsamında değildir

Uyarı

Yine de doğru boyutlandırılmış bir swap dosyası bulundurun. vm.swappiness = 1 swap kullanımını nadir hale getirir; ancak hiç swap yoksa ani bir bellek artışında kernel’in out-of-memory killer’ı SQL Server sürecini durdurabilir.

Linux’ta Temel Güvenlik

  • sa hesabını kapatın: kendi sysadmin login’inizi oluşturun, onunla yeniden bağlanın ve ALTER LOGIN sa DISABLE; çalıştırın. Linux’ta Windows kimlik doğrulaması için sunucuyu adutil ile Active Directory’ye bağlayın.
  • Ağı kısıtlayın: 1433 yalnızca uygulama sunucularına ve yönetim ağlarına açık olsun. SQL Server’ı asla doğrudan internete açmayın.
  • Gerçek sertifikayla TLS kullanın: mssql-conf ile network.tlscert, network.tlskey ve network.forceencryption ayarlarını yapın. Linux üzerinde SQL Server 2025, TLS 1.3’ü destekliyor.
  • İlk günden yedek alın: yedek formatı Windows’takiyle aynıdır. Yedekleri ayrı bir volume’a ya da mount edilmiş bir ağ paylaşımına yazın ve sunucu dışına kopyalayın.

Yetkilerden denetime kadar sıkılaştırma listesinin geri kalanı Linux’ta da aynen geçerli; SQL Server güvenlik sıkılaştırma rehberimize göz atabilirsiniz.

Uzaktan Bağlanma

SSMS, MSSQL eklentisiyle VS Code ve tüm uygulama sürücüleri, Linux’taki SQL Server’a Windows’takine bağlanır gibi bağlanır: sunucu adı ya da IP adresi ve 1433 portu. Lokal sqlcmd çalışırken uzaktan bağlantı başarısız oluyorsa sırasıyla şunları kontrol edin:

  • İstemcinin subnet’i için güvenlik duvarı kuralı var mı (sudo ufw status)?
  • SQL Server beklenen portu dinliyor mu (sudo ss -tlnp | grep 1433)?
  • Port network.tcpport ile değiştirilmiş mi, ya da istemci ile sunucu arasındaki bir ağ güvenlik duvarı bağlantıyı engelliyor mu?
  • İstemci sertifika doğrulamasında mı hata alıyor? İstemcide şifrelemeyi kapatmak yerine güvenilir bir sertifika kurun.

Linux’ta SQL Server’ı Güncelleme

Cumulative update’ler aynı depodan gelir. Paketi yeniden kurmak sunucuyu en son CU’ya taşır:

sudo apt-get update
sudo apt-get install -y mssql-server

# Mevcut build'leri listeleyip belirli bir build'i kurun (geri dönüş için de kullanılır)
apt-cache madison mssql-server
sudo apt-get install -y mssql-server=<sürüm>

Uyarı

Sıradan bir apt-get upgrade, mssql-server’ı da günceller ve servisi yeniden başlatır. Production sunucularında paketi sabitleyin (sudo apt-mark hold mssql-server) ve CU’ları, build’in bilinen sorunlar listesinde olmadığını kontrol ettikten sonra planlı bir bakım penceresinde kurun. Nedenini tehlikeli SQL Server build’leri yazımızda anlatıyoruz.

Windows’taki SQL Server’dan Farklar

Motor aynı, ama etrafındaki platform farklı:

  • Analysis Services ve Power BI Report Server yalnızca Windows’ta çalışır. Integration Services Linux’ta bazı kısıtlamalarla çalışır.
  • Always On availability group’lar ve failover cluster instance’lar, Windows Server Failover Clustering yerine Pacemaker kullanır. AG’lerin nasıl çalıştığını Always On rehberimizde anlatıyoruz.
  • Windows kimlik doğrulaması için Active Directory’ye katılım ve keytab yapılandırması gerekir.
  • Yapılandırma Configuration Manager yerine mssql-conf ile yapılır; log’lar /var/opt/mssql/log altındadır.
  • Lisanslama Windows’takiyle aynıdır: çekirdek başına ya da Server + CAL.

Ubuntu’dan SQL Server’ı Kaldırma

sudo apt-get remove -y mssql-server
# Veriyi, log'ları ve yapılandırmayı kalıcı olarak siler
sudo rm -rf /var/opt/mssql/

Kritik

Paketi kaldırmak veritabanlarını /var/opt/mssql altında bırakır; ancak bu klasörü silmek master dahil tüm veritabanlarını yok eder. Bir şey silmeden önce yedek alıp doğrulayın ve özel klasörlerde duran veritabanı dosyalarını taşıyın.

Production Kontrol Listesi

  • SQL Server sürümü ile Ubuntu sürümü desteklenen bir eşleşme.
  • Veri, log, tempdb ve yedek, noatime ile mount edilmiş ayrı XFS volume’larda.
  • mssql TuneD profili aktif, swap yapılandırılmış.
  • Bellek sınırı ve max server memory ayarlanmış.
  • tempdb’de eşit boyutlu birden fazla veri dosyası var.
  • Sunucuda job çalışıyorsa SQL Server Agent açık.
  • sa kapalı, 1433 kısıtlı, TLS güvenilir bir sertifika kullanıyor.
  • Yedekler zamanlanmış, sunucu dışına kopyalanıyor ve restore testi yapılıyor.
  • mssql-server apt’de sabitlenmiş ve planlı olarak yamalanıyor.
Evet. Linux üzerindeki SQL Server, Windows’takiyle aynı veritabanı motorunu, query optimizer’ı ve storage engine’i çalıştırır. Pratikteki farklar donanımdan, depolamadan, kernel ayarlarından ve yapılandırmadan gelir; TuneD profili ve disk düzeni bu yüzden önemlidir.
SQL Server 2025 CU1 ile desteklenmeye başlayan Ubuntu 24.04 LTS’yi. SQL Server 2022 ise Ubuntu 22.04 üzerinde desteklenir.
Linux’ta SQL Server veri ve log dosyaları için Microsoft’un önerdiği dosya sistemi XFS’tir. ext4 de desteklenir. Btrfs gibi diğer dosya sistemleri desteklenmez.
Evet, yedek formatı aynıdır. .bak dosyasını Linux sunucusuna kopyalayın ve dosyaları Linux yollarına yerleştirmek için WITH MOVE kullanarak restore edin. Hedef sürüm kaynakla aynı ya da daha yeni olmalıdır.
Yalnızca ücretsiz sürümler: Express, Evaluation ve Developer sürümleri. Linux üzerindeki Standard ve Enterprise, Windows’taki ile tamamen aynı şekilde lisanslanır.
Tanımlı depodaki en son cumulative update’e geçmek için apt-get update ve apt-get install mssql-server komutlarını çalıştırın. Production’da paketi sabitleyin ve planlı bir pencerede yamalayın.

Linux Üzerinde SQL Server Desteği

SQL Server’ı Linux üzerinde production’da mı çalıştırıyorsunuz?

Aryasoft’un kıdemli DBA ekibi, disk düzeni ve kernel ayarlarından Pacemaker ile yüksek erişilebilirliğe, yedekleme, güvenlik ve düzenli yamalamaya kadar Linux üzerindeki SQL Server sunucularınızı tasarlar ve kurar.

4.7/5