Linux üzerinde SQL Server: Bilinen sorunlar

Aşağıdaki bölümlerde Linux üzerinde SQL Server ile ilgili bilinen sorunlar açıklanmaktadır.

Genel

Aşağıdaki tabloda Linux üzerinde SQL Server ile ilgili en yaygın sorunlar listelenir.

Sorun Çözünürlük
SQL Server'ın kurulduğu ana bilgisayar adının uzunluğu 15 karakter veya daha kısa olmalıdır. İsmi /etc/hostname 15 karakter uzunluğunda veya daha kısa bir değere dönüştürün.
Sistem zamanını manuel olarak geriye ayarladığınızda, SQL Server Database Engine içindeki dahili sistem zamanını güncellemeyi durdurur. SQL Server yeniden başlatın.
Yalnızca tek örnekli yüklemeler desteklenir. Bir ana bilgisayarda birden fazla örnek bulundurmak için sanal makineler veya Linux konteynerleri kullanmayı düşünün.
SQL Server Yapılandırma Yöneticisi, Linux üzerinde SQL Server'a bağlanamıyor. linux'ta Yapılandırma Yöneticisi desteklenmez. Bunun yerine Linux üzerinde SQL Server yönetmek için kullanınmssql-conf.
sa hesabının varsayılan dili İngilizce'dir. sa açıklamasıyla ALTER LOGIN hesabının dilini değiştirin.
OLE DB sağlayıcısı aşağıdaki uyarıyı günlüğe kaydeder:

Failed to verify the Authenticode signature of 'C:\binn\msoledbsql.dll'. Signature verification of SQL Server DLLs will be skipped. Genuine copies of SQL Server are signed. Failure to verify the Authenticode signature might indicate that this isn't an authentic release of SQL Server. Install a genuine copy of SQL Server or contact customer support.
Eylem gerekmez. OLE DB sağlayıcısı ise SHA256 imzası kullanır. SQL Server Database Engine, imzalı .dll doğru şekilde doğrulamaz.
Şifreyi sıfırlama komutu aşağıdaki mssql-conf hatayı atar:

Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information.
Hata iletisi hatalı negatif. Şifre sıfırlama başarılı olur ve yeni şifreyi kullanmaya devam edebilirsiniz.

Yalnızca SQL Server 2022 (16.x) konteyner görüntüleri için geçerlidir.

Veritaban -ları

  • Veritabanını yardımcı mssql-conf programla birlikte taşıyamazsınızmaster. Diğer sistem veritabanlarını da taşıyabilirsiniz mssql-conf.

  • Windows'da SQL Server yedeklenmiş bir veritabanını geri yüklerken, Transact-SQL deyiminde WITH MOVE yan tümcesini kullanmanız gerekir. Daha fazla bilgi için bkz. Yedekleme ve geri yükleme kullanarak SQL Server veritabanını Windows'den Linux'a geçirme.

  • Aktarım Katmanı Güvenliği (TLS) için bazı algoritmalar (şifre paketleri) Linux üzerinde SQL Server ile düzgün çalışmaz. Bu davranış, SQL Server'a bağlanmaya çalıştığınızda bağlantı hatalarına ve yüksek kullanılabilirlik gruplarındaki replikalar arasında bağlantı kurma sorunlarına yol açar.

    Bu sorunu çözmek için, Linux üzerinde SQL Server yapılandırma betiklerini sorunlu şifre paketlerini devre dışı bırakacak şekilde değiştirinmssql.conf:

    1. Aşağıdaki bölümü /var/opt/mssql/mssql.conf'a ekleyin. Ünlem simgesi (!) ifadeyi olumsuzlar. Bu negeleme, OpenSSL'ye ardından gelen şifreleme paketini kullanmamasını söyler.

      [network]
      tlsciphers=AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!ECDHE-RSA-AES128-GCM-SHA256:!ECDHE-RSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES128-GCM-SHA256:!ECDHE-ECDSA-AES256-SHA384:!ECDHE-ECDSA-AES128-SHA256:!ECDHE-ECDSA-AES256-SHA:!ECDHE-ECDSA-AES128-SHA:!ECDHE-RSA-AES256-SHA384:!ECDHE-RSA-AES128-SHA256:!ECDHE-RSA-AES256-SHA:!ECDHE-RSA-AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-DSS-AES256-SHA256:!DHE-DSS-AES128-SHA256:!DHE-DSS-AES256-SHA:!DHE-DSS-AES128-SHA:!DHE-DSS-DES-CBC3-SHA:!NULL-SHA256:!NULL-SHA
      
    2. aşağıdaki komutla SQL Server yeniden başlatın.

      sudo systemctl restart mssql-server
      
  • Windows SQL Server OLTP kullanan veritabanlarını Linux üzerinde SQL Server'In-Memory ye geri getiremezsiniz. SQL Server 2014 (12.x) veritabanınız In-Memory OLTP kullanıyorsa, önce veritabanlarını Windows'da daha yeni bir SQL Server sürümüne yükseltin. Sonra, yedekleme/geri yükleme veya ayırma/ekleme ile Linux üzerinde SQL Server'a taşıyın.

  • Linux şu anda kullanıcı iznini desteklemiyor ADMINISTER BULK OPERATIONS .

  • SQL Server 2019 (15.x) CU 16 ve daha sonraki sürümlerle yapılan Saydam Veri Şifrelemesi (TDE) sıkıştırılmış yedeklemeleri, önceki SQL Server 2019 (15.x) CU sürümlerine geri getiremezsiniz. Daha fazla bilgi için bkz.: DÜZELTME: RESTORE LOG veya RESTOREDATABASE yürütülürken 3241 hatası oluşur.

    SQL Server 2019 (15.x) CU 16 ve sonraki sürümlerini hâlâ kullanarak önceki CU sürümlerinde yapılan TDE sıkıştırılmış yedeklemeleri geri getirebilirsiniz (SQL Server 2019 (15.x).

  • Ubuntu 22.04'e SQL Server 2022 (16.x) yüklediğinizde şu hata iletisini görebilirsiniz: Failed to start Microsoft SQL Server Database Engine. Hata günlüğünü gözden geçirirseniz sistem veritabanları için yanlış bir yol görürsünüz.

    Bu sorunu geçici olarak çözmek için örneği tek kullanıcı modunda başlatın ve ALTER DATABASE ... MODIFY FILE kullanarak sistem veritabanlarının yapılandırılan konumunu /var/opt/mssql/datavarsayılan konuma taşıyın. Bu değişikliği yaptıktan sonra hizmeti yeniden başlatın.

Süreçten sqlservr giden TCP bağlantılarını içeren özellikler, örneğin bağlı sunucular, PolyBase veya erişilebilirlik grupları, aşağıdaki iki koşul da geçerlidirse çalışmayabilir:

  • Hedef sunucu, IP adresi olarak değil ana bilgisayar adı olarak belirtilir.

  • Kaynak örnekte çekirdekte IPv6 devre dışı bırakıldı. Sisteminizin çekirdekte IPv6'yı etkinleştirip etkinleştirmediğini doğrulamak için aşağıdaki tüm testlerin geçmesi gerekir:

    • cat /proc/cmdline mevcut çekirdeğin önyükleme cmdline'ını yazdırır. Çıktı ipv6.disable=1içermemelidir.
    • /proc/sys/net/ipv6/ dizini mevcut olmalıdır.
    • Çağrı yapan socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) bir C programı başarılı olmalı. Sistem çağrısı an fd != -1 döndürmeli ve ile EAFNOSUPPORTbaşarısız olmamalıdır.

Tam hata özelliğine bağlıdır. Bağlı sunucular için oturum açma zaman aşımı hatası görürsünüz. Kullanılabilirlik grupları için, ALTER AVAILABILITY GROUP JOIN ikincil cihazdaki DDL beş dakika sonra bir download configuration timeout hata ile arızalanır.

Bu sorunu geçici olarak çözmek için aşağıdaki seçeneklerden birini yapın:

  • TCP bağlantısının hedefini belirtmek için konak adları yerine IP'leri kullanın.

  • Önyükleme komut satırından ipv6.disable=1 kaldırarak çekirdekte IPv6'yı etkinleştirin. yöntemi Linux dağıtımına ve grubgibi önyükleme yükleyicisine bağlıdır. IPv6'nın devre dışı bırakılmasını istiyorsanız, net.ipv6.conf.all.disable_ipv6 = 1 yapılandırmasında sysctl ayarlayarak devre dışı bırakabilirsiniz (örneğin, /etc/sysctl.conf). Bu ayar, sistemin ağ bağdaştırıcısının bir IPv6 adresi almasına engel olsa da, sqlservr özelliklerinin çalışmasını sağlar.

TLS 1.3, SQL Server 2022'de desteklenmiyor

Sadece SQL Server 2022 (16.x) için geçerlidir.

TLS 1.3, Windows için SQL Server 2022 (16.x) üzerinde destekleniyor olsa da, Linux üzerinde TLS 1.2 kullanmanız gerekir.

Uyarı

TLS 1.3, Ubuntu 22.04, Ubuntu 24.04, RHEL 9 ve RHEL 10 üzerinde SQL Server 2025 (17.x) için desteklenir. TLS 1.3 varsayılan olarak etkindir.

Ağ Dosya Sistemi (NFS)

Üretimde Ağ Dosya Sistemi (NFS) uzak paylaşımları kullanıyorsanız aşağıdaki destek gereksinimlerini not edin:

  • NFS sürüm 4.2 veya sonraki sürümleri kullanın. NFS'nin eski sürümleri, modern dosya sistemlerinde yaygın olarak kullanılan fallocate ve seyrek dosya oluşturma gibi gerekli özellikleri desteklemez.

  • NFS mount üzerinde sadece /var/opt/mssql dizinler destekleniyor. SQL Server sistem ikili dosyaları gibi diğer dosyalar desteklenmez.

  • Uzak paylaşımı bağlarken, NFS istemcilerinin mutlaka nolock seçeneğini kullandığından emin olun.

Microsoft Entra kimlik doğrulaması ile IPv6 bağlantısı

Sunucunuz veya kapsayıcınız IPv6 için etkinleştirildiyse, IPv6 adreslerinin erişilebilir ve yönlendirilebilir olduğundan emin olun. IPv6 tam olarak yapılandırılmamışsa, Microsoft Entra ID kimlik doğrulama istekleri erişilemeyen IPv6 uç noktaları nedeniyle başarısız olabilir.

SQL Server 2022 CU 19 ve sonraki sürümlerde IPv6 DNS çözümleme davranışını denetlemek için network.ipv6dnsrecordslimit içindeki mssql-conf seçeneğini ayarlayın. Daha fazla bilgi için bkz . network.ipv6dnsrecordslimit.

Yerelleştirme

  • Kurulum sırasında yerel ayarınız İngilizce (en_us) değilse bash oturumunuzda/terminalinizde UTF-8 kodlaması kullanmanız gerekir. ASCII kodlaması kullanıyorsanız aşağıdaki çıkışa benzer bir hata görebilirsiniz:

    UnicodeEncodeError: 'ascii' codec u'\xf1' karakterini pozisyon 8'de kodlayamaz: geçerli aralıkta değil (128)

    UTF-8 kodlamasını kullanamıyorsan, dil seçimini belirtmek MSSQL_LCID için ortam değişkeniyle setup çalıştır.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • SQL Server'ı İngilizce olmayan bir kurulum yaptığınızdamssql-conf setup, yerelleştirilmiş metnin ardından, "Configuring SQL Server... ". Veya Latin tabanlı olmayan yüklemelerde cümle tamamen eksik olabilir. Eksik tümce aşağıdaki yerelleştirilmiş dizeyi görüntülemelidir:

    Lisans PID'i başarıyla işlendi. Yeni sürüm [<Name> sürümü] şeklindedir.

    Bu dizi yalnızca bilgi amaçlı görünür ve SQL Server'ın kurulumunu etkilemez.

Microsoft Office belgelere yönelik filtreler de dahil olmak üzere tüm filtreler bu sürümde kullanılamaz. Desteklenen filtrelerin listesi için bkz. Linux'ta SQL Server Full-Text Search Yükleme.

SQL Server Integration Services (SSIS)

mssql-server-is paketi SUSE Linux Enterprise Server'da (SLES) desteklenmez. Paket, Ubuntu ve Red Hat Enterprise Linux (RHEL) üzerinde desteklenmektedir.

Integration Services paketleri Linux'ta ODBC bağlantılarını kullanabilir. Bu işlevsellik, SQL Server ve MySQL ODBC sürücüleriyle çalışır ve ODBC spesifikasyonunu takip eden herhangi bir Unicode ODBC sürücüsüyle de çalışmalıdır. Tasarım zamanında, ODBC verilerine bağlanmak için bir DSN veya bir bağlantı dizesi sağlayabilirsiniz; ayrıca Windows authentication'ı da kullanabilirsiniz. Daha fazla bilgi için Linux 'da ODBC desteği duyurusununblog gönderisine bakın.

Bu sürüm, Linux'ta SSIS paketleri çalıştırıldığında aşağıdaki özellikleri desteklemez:

  • Integration Services Katalogu veritabanı
  • SQL Server Agent tarafından zamanlanmış paket yürütme
  • Windows Kimlik Doğrulaması
  • Üçüncü taraf bileşenleri
  • Veri yakalamayı (CDC) değiştirme
  • Integration Services Ölçeklendirme
  • SSIS için Azure Özellik Paketi
  • Hadoop ve HDFS desteği
  • SAP BW için Microsoft Bağlayıcısı

Sınırlı veya hiç desteklenmeyen yerleşik SSIS bileşenlerinin listesi için, Linux'ta SQL Server Integration Services (SSIS) için özellik desteği ve dikkate alınan unsurlar bölümüne bakınız.

Linux'ta SSIS hakkında daha fazla bilgi için aşağıdaki makalelere bakın:

SQL Server Management Studio (SSMS)

Aşağıdaki sınırlamalar, Linux üzerinde SQL Server bağlı Windows SQL Server Management Studio için geçerlidir.

  • Bakım planları desteklenmez.

  • Yönetim Veri Ambarı (MDW) ve SQL Server Yönetim Stüdyosu'ndaki veri toplayıcı desteklenmez.

  • Windows Kimlik Doğrulaması veya Windows olay günlüğü seçeneklerine sahip SQL Server Management Studio kullanıcı arabirimi bileşenleri Linux ile çalışmaz. Bu özellikleri SQL Server oturum açma bilgileri gibi diğer seçeneklerle kullanmaya devam edebilirsiniz.

  • Kayıt dosyalarının sayısını koruyamazsınız.

Yüksek kullanılabilirlik ve olağanüstü durum kurtarma

Sadece SQL Server 2022 (16.x) için geçerlidir.

SELinux etkinleştirilmiş sınırlı bir uygulama olarak RHEL 9'da SQL Server 2022 (16.x) CU 16 ve önceki sürümleri çalıştırdığınızda Pacemaker kümelemesi beklendiği gibi çalışmayabilir. Pacemaker küme yeteneklerini kullanmak için SQL Server 2022 (16.x) uygulamasını SELinux açık ve sınırsız bir uygulama olarak kurmalısınız. Bu sorun SQL Server 2022 (16.x) CU 17'de giderilmiştir.

Machine Learning Hizmetleri

Sadece SQL Server 2022 (16.x) için geçerlidir.

RHEL 9 ve Ubuntu 22.04 için SQL Server 2022 (16.x) paketleri için, Machine Learning Services'i kurmadan önce bu cgroup-v1 ön koşulları göz önünde bulundurun.

  1. Ön koşul olarak, Red Hat'ten Red Hat Enterprise Linux 9'u cgroups'u manuel olarak yönetmek için cgroupfs kullanma bölümünü etkinleştirincgroup-v1.

  2. Ardından yönergeleri izleyerek belgelerde belirtildiği şekilde SQL Machine Learning Hizmetleri'ni yükleyin.

  3. Ağ ad alanı yalıtımını devre dışı bırakın.

    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Bu değişikliklerin geçerli olması için mssql-launchpadd hizmetini yeniden başlatın.

    sudo systemctl restart mssql-launchpadd
    

SQL Server 2025'teki bilinen sorunlar

Aşağıdaki sorunlar SQL Server 2025'i (17.x) etkiler.

Linux üzerinde SQL Server karma CPU mimarisine sahip makinelerde başlatılamıyor

Issue: Makine Intel 12. Nesil veya sonraki bir karma mimari CPU kullanıyorsa ve konak işletim sistemi Linux ise Linux'ta SQL Server örnekleri başlatılamaz.

Aşağıdaki çıkışa benzer bir hata iletisi görebilirsiniz:

Reason: 0x00000004 Message: ASSERT: Expression=(result * DrtlGetProcessorCoreCount() == DrtlGetProcessorCount()) File=LibOS\Windows\Kernel\SQLPal\common\dk\sos\src\sosnumap.cpp Line=208

Linux ana bilgisayar işletim sistemi kullanmak istiyorsanız BIOS'unuzda verimlilik çekirdeklerini (E-çekirdekler) devre dışı bırakarak sorunu çözebilirsiniz. Eğer konteynerler veya Windows (WSL dahil) Hyper-V gibi hipervizör kullanırsanız, sorun sizi etkilemez.

Linux işletim sistemlerinde desteklenmeyen yerel ONNX modelleri

doğrudan SQL Server üzerinde barındırılan CREATE EXTERNAL MODEL yerel ONNX modelleri şu anda SQL Server 2025 (17.x) üzerinde Linux için kullanılamamaktadır.