Aracılığıyla paylaş


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 listelenmiştir.

Sorun Çözünürlük
SQL Server'ın yüklü olduğu konak adının uzunluğu 15 karakter veya daha az olmalıdır. /etc/hostname adını 15 karakter uzunluğunda veya daha kısa bir değerle değiştirin.
Sistem saatinin zamana geri doğru el ile ayarlanması, SQL Server'ın Veritabanı Altyapısı içindeki iç sistem saatini güncelleştirmeyi durdurmasına neden olur. SQL Server'i yeniden başlatın.
Yalnızca tek örnekli yüklemeler desteklenir. Belirli bir konakta birden fazla örneğin olmasını istiyorsanız, sanal makineleri veya Linux kapsayıcılarıkullanmayı göz önünde bulundurun.
SQL Server Configuration Manager, Linux üzerinde SQL Server'a bağlanamıyor. Hiç kimse.
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ı SHA256 kullanılarak imzalanır. SQL Server Veritabanı Altyapısı imzalı .dll'ı doğru bir şekilde doğrulamaz.
mssql-conf kullanarak parolayı sıfırla komutu aşağıdaki hatayı döndürür:

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

Şunlar için geçerlidir: yalnızca SQL Server 2022 (16.x) kapsayıcı görüntüleri.

Veritaban -ları

  • master veritabanı mssql-conf yardımcı programıyla taşınamaz. Diğer sistem veritabanları mssql-confile taşınabilir.

  • Windows üzerinde SQL Server'da yedeklenmiş bir veritabanını geri yüklerken, Transact-SQL deyimindeki WITH MOVE yan tümcesini kullanmanız gerekir. Daha fazla bilgi için bkz. Yedekleme ve geri yüklemekullanarak SQL Server veritabanını Windows'tan 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, SQL Server'a bağlanmaya çalışırken bağlantı hatalarına ve yüksek kullanılabilirlik gruplarındaki çoğaltmalar arasında bağlantı kurma sorunlarına neden olur.

    Bu sorunu çözmek için, aşağıdaki adımları izleyerek Linux üzerinde SQL Server'ın mssql.conf yapılandırma betiğini değiştirerek sorunlu şifreleme paketlerini devre dışı bırakın:

    1. Aşağıdaki bölümü /var/opt/mssql/mssql.conf'a ekleyin. Ünlem simgesi (!) ifadeyi olumsuzlar. Bu, OpenSSL'e aşağıdaki şifreleme paketini kullanmaması gerektiğini bildirir.

      [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. SQL Server'i aşağıdaki komutla yeniden başlatın.

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

  • Kullanıcı izni ADMINISTER BULK OPERATIONS şu anda Linux'ta desteklenmiyor.

  • SQL Server 2019 (15.x) CU 16 ve sonraki sürümleri kullanılarak yapılan TDE ile sıkıştırılmış yedeklemeler, SQL Server 2019'un (15.x) önceki CU sürümlerine geri yüklenemez. Daha fazla bilgi için bkz. DÜZELTME: RESTORE LOG veya RESTORE DATABASEyürütülürken hata 3241 oluşuyor.

    SQL Server 2019'un (15.x) önceki CU sürümleri kullanılarak yapılan Saydam Veri Şifrelemesi (TDE) ile sıkıştırılmış yedeklemeler, SQL Server 2019 (15.x) CU 16 ve sonraki sürümleri kullanılarak geri yüklenebilir.

  • 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.

Bağlı sunucular, PolyBase veya kullanılabilirlik grupları gibi sqlservr işleminden giden TCP bağlantılarını içeren özellikler, aşağıdaki koşulların her ikisi de karşılandığında ç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.
    • socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) çağıran bir C programı başarılı olmalıdır - sistem çağrısı bir fd != -1 döndürmeli ve EAFNOSUPPORTile baş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, yedekteki ALTER AVAILABILITY GROUP JOIN DDL beş dakika sonra download configuration timeout hatasıyla başarısız olur.

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

Şunlar için geçerlidir: yalnızca SQL Server 2022 (16.x).

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 (önizlemede) ve RHEL 9 ü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 dosya sisteminde yalnızca /var/opt/mssql dizinlerini bulun. 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.

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ız, dil seçiminizi belirtmek için MSSQL_LCID ortam değişkenini kullanarak kurulumu çalıştırın.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • mssql-conf setupçalıştırdığınızda ve SQL Server'ın İngilizce olmayan bir yüklemesini gerçekleştirdiğinizde, "SQL Server Yapılandırıyor..." yerelleştirilmiş metinden sonra yanlış genişletilmiş karakterler görüntülenebilir. 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 dize yalnızca bilgi amaçlıdır, SQL Server'ın başarıyla yüklenmesini hiçbir şekilde etkilemez.

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

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 desteklenir.

Integration Services paketleri Linux'ta ODBC bağlantılarını kullanabilir. Bu işlev SQL Server ve MySQL ODBC sürücüleriyle test edilmiştir, ancak ODBC belirtimini gözlemleyen herhangi bir Unicode ODBC sürücüsüyle de çalışması beklenir. Tasarım zamanında, ODBC verilerine bağlanmak için bir DSN veya bağlantı dizesi sağlayabilirsiniz; Windows kimlik doğrulamayı da kullanabilirsiniz. Daha fazla bilgi için Linux 'da ODBC desteği duyurusununblog gönderisine bakın.

Linux üzerinde SSIS paketleri çalıştırdığınızda bu sürümde aşağıdaki özellikler desteklenmez:

  • Integration Services Katalogu veritabanı
  • SQL Server Aracısı tarafından zamanlanmış paket yürütmesi
  • 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ı

Şu anda desteklenmeyen veya sınırlamalarla desteklenen yerleşik SSIS bileşenlerinin listesi için bkz. linux SSIS için sınırlamalar ve bilinen sorunlar.

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'a bağlı Windows üzerinde SQL Server Management Studio için geçerlidir.

  • Bakım planları desteklenmez.

  • Yönetim Veri Ambarı (MDW) ve SQL Server Management Studio'daki 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.

  • Tutulacak günlük dosyalarının sayısı değiştirilemez.

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

Şunlar için geçerlidir: yalnızca SQL Server 2022 (16.x).

SQL Server 2022 (16.x) CU 16 ve önceki sürümlerini, RHEL 9'da SELinux etkinleştirilmiş sınırlı bir uygulama olarak çalıştırdığınızda Pacemaker kümelemesi beklendiği gibi çalışmayabilir. Pacemaker kümeleme özelliklerinden yararlanmak için SQL Server 2022'yi (16.x) SELinux etkin olacak şekilde, sınırsız bir uygulama olarak yüklemeniz gerekir. Bu sorun SQL Server 2022 (16.x) CU 17'de giderilmiştir.

Makine Öğrenmesi Hizmetleri

Şunlar için geçerlidir: yalnızca SQL Server 2022 (16.x).

RHEL 9 ve Ubuntu 22.04 için SQL Server 2022 (16.x) paketleri için, Machine Learning Services'i yüklemeden önce cgroup-v1dikkate alınması gereken bazı önkoşullar vardır.

  1. Ön koşul olarak, Red Hat Enterprise Linux 9'da cgroupfs kullanarak cgroups'u el ile yönetme talimatlarına () göre cgroup-v1'ın etkinleştirilmesi gerekmektedir (, Red Hat'ten).

  2. Ardından yönergeleri izleyerek SQL Machine Learning Services 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, hibrit CPU mimarisine sahip makinelerde başlatılamıyor

Sorun: 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ılamıyor olabilir.

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. Kapsayıcılar veya Windows'da Hyper-V gibi bir hiper yönetici (WSL dahil) kullanıyorsanız, bu durumdan etkilenmezsiniz.

Linux işletim sistemlerinde desteklenmeyen yerel ONNX modelleri

DOĞRUDAN SQL Server'da barındırılan CREATE EXTERNAL MODEL yerel ONNX modelleri şu anda SQL Server 2025 (17.x) üzerinde Linux için kullanılamamaktadır.