SQL Server on Linux: 既知の問題

次のセクションでは、SQL Server on Linuxに関する既知の問題について説明します。

全般

次の表に、SQL Server on Linuxに関する最も一般的な問題を示します。

問題 解決策
SQL Serverがインストールされるホスト名の長さは15文字以下でなければなりません。 名前を15文字長くまたは短くする値に /etc/hostname 変更してください。
手動でシステム時間を逆に設定すると、SQL Serverはデータベース エンジン内で内部システム時刻の更新を停止します。 SQL Serverを再起動します。
サポートされているのは単一インスタンスのインストールのみです。 同じホストに複数のインスタンスを設置するには、 仮想マシンLinuxコンテナの使用を検討してください。
SQL Server 構成マネージャーはSQL Server on Linuxに接続できません。 Configuration Managerは Linux ではサポートされていません。 代わりに、mssql-confを使用してSQL Server on Linuxを管理します。
sa アカウントの既定の言語は英語です。 sa ステートメントを使用して、ALTER LOGIN アカウントの言語を変更してください。
OLE DB プロバイダーによって次の警告がログに記録されます:

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.
必要なアクションはありません。 OLE DBプロバイダーはSHA256署名を使用しています。 SQL Server データベース エンジンは、署名された .dll を正しく検証しません。
mssql-confのリセットパスワードコマンドは以下のエラーを出します:

Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information.
このエラー メッセージは偽陰性です。 パスワードリセットは成功し、新しいパスワードを使い続けられます。

対象:SQL Server 2022(16.x)コンテナイメージのみ。

データベース

  • masterユーティリティでmssql-confデータベースを移動することはできません。 mssql-confで他のシステムデータベースを移動できます。

  • WindowsのSQL Serverにバックアップされたデータベースを復元する場合は、Transact-SQL ステートメントで WITH MOVE 句を使用する必要があります。 詳細については、「バックアップと復元を使用してWindowsから Linux にSQL Serverデータベースを削除するを参照してください。

  • トランスポート層セキュリティ (TLS) の特定のアルゴリズム (暗号スイート) が、SQL Server on Linuxで正しく機能しません。 この動作により、SQL Serverに接続しようとした際に接続が失敗したり、高可用性グループ内のレプリカ間の接続確立に問題が生じたりします。

    この問題を解決するために、SQL Server on Linuxのmssql.conf設定スクリプトを変更して問題のある暗号スイートを無効にしてください:

    1. 次のセクションを /var/opt/mssql/mssql.conf に追加します。 感嘆符 (!) は式を否定します。 この否定はOpenSSLに続く暗号スイートを使わないように指示しています。

      [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を再起動します。

      sudo systemctl restart mssql-server
      
  • In-Memory OLTP を使用する Windows 上の SQL Server 2014 (12.x) データベースを、Linux 上の SQL Server に復元することはできません。 SQL Server 2014 (12.x) データベースで In-Memory OLTP が使用されている場合は、まず、Windowsでデータベースを新しいバージョンのSQL Serverにアップグレードします。 その後、バックアップ/復元、またはデタッチ/アタッチでLinuxのSQL Server on Linuxに移します。

  • Linuxは現在、 ADMINISTER BULK OPERATIONS ユーザー権限をサポートしていません。

  • SQL Server 2019(15.x)CU 16以降のバージョンで作成されたTransparent Data Encryption(TDE)圧縮バックアップを、以前のSQL Server 2019(15.x)のCUバージョンに復元することはできません。 詳細については、「FIX: エラー 3241 RESTORE LOG またはRESTOREDATABASEの実行中に発生するを参照してください。

    SQL Server 2019(15.x)CU 16以降のバージョンで、以前のCUバージョンのSQL Server 2019(15.x)で作成されたTDE圧縮バックアップを復元することは可能です。

  • Ubuntu 22.04 SQL Server 2022 (16.x) をインストールすると、Failed to start Microsoft SQL Server データベース エンジン というエラー メッセージが表示されることがあります。 エラー ログを確認すると、システム データベースのパスが正しく表示されていません。

    この問題を回避するには、インスタンスをシングル ユーザー モードで起動し、システム データベースの構成された場所を既定の場所 ALTER DATABASE ... MODIFY FILE に移動するために /var/opt/mssql/data を使用します。 この変更が完了したら、サービスを再起動してください。

ネットワーク

リンクサーバー、PolyBase、可用性グループなど、 sqlservr プロセスからのTCPからのアウトバウンド接続を伴う機能は、以下の両方の条件が当てはまる場合に動作しないことがあります。

  • ターゲット サーバーは、IP アドレスではなくホスト名として指定されます。

  • カーネルでは、ソース インスタンスの IPv6 が無効になっています。 システムのカーネルで IPv6 が有効になっているかどうかを確認するには、次のすべてのテストに合格する必要があります。

    • cat /proc/cmdline は、現在のカーネルのブート コマンドラインを出力します。 この出力に ipv6.disable=1 を含めることはできません。
    • /proc/sys/net/ipv6/ ディレクトリは存在している必要があります。
    • socket(AF_INET6, SOCK_STREAM, IPPROTO_IP)を呼び出すCプログラムなら成功するはずです。 シスコールは fd != -1 を返さなければならず、 EAFNOSUPPORTで失敗してはなりません。

正確なエラーは、機能によって異なります。 リンク サーバーの場合、ログイン タイムアウト エラーが表示されます。 可用性グループの場合、セカンダリの ALTER AVAILABILITY GROUP JOIN DDLは5分後に download configuration timeout エラーで失敗します。

この問題を回避するには、次のいずれかのオプションを使用します。

  • ホスト名ではなく IP を使用して、TCP 接続のターゲットを指定します。

  • ブート コマンド ラインから ipv6.disable=1 を削除して、カーネルで IPv6 を有効にします。 メソッドは、Linux ディストリビューションとブートローダー (grub など) によって異なります。 IPv6 を無効にする場合でも、net.ipv6.conf.all.disable_ipv6 = 1 構成 (たとえば、sysctl) で /etc/sysctl.conf を設定することによって無効にすることができます。 この設定では、システムのネットワーク アダプターが IPv6 アドレスを取得できませんが、sqlservr の機能を使用できます。

SQL Server 2022 では TLS 1.3 はサポートされていません

対象:SQL Server 2022(16.x)のみ。

tls 1.3 は Windows の SQL Server 2022 (16.x) でサポートされていますが、Linux では TLS 1.2 を使用する必要があります。

TLS 1.3 は、Ubuntu 22.04、Ubuntu 24.04、RHEL 9、および RHEL 10 の SQL Server 2025 (17.x) でサポートされています。 TLS 1.3 は既定で有効になっています。

ネットワーク ファイル システム (NFS)

運用環境で Network File System (NFS) のリモート共有を使用する場合は、次のサポート要件に注意してください。

  • NFS バージョン 4.2 以降のバージョンを使用します。 前のバージョンの NFS では、最新のファイル システムに共通する fallocate やスパース ファイルの作成などの必要な機能がサポートされていません。

  • NFSマウントでは /var/opt/mssql ディレクトリのみがサポートされています。 SQL Server システム バイナリなどの他のファイルはサポートされていません。

  • リモート共有をマウントするときに NFS クライアントが nolock オプションを使用していることを確認してください。

Microsoft Entra認証を使用した IPv6 接続

サーバーまたはコンテナーで IPv6 が有効になっている場合は、IPv6 アドレスに到達可能でルーティング可能であることを確認します。 IPv6 が完全に構成されていない場合、Microsoft Entra IDへの認証要求は、到達できない IPv6 エンドポイントが原因で失敗する可能性があります。

SQL Server 2022 CU 19 以降のバージョンで IPv6 DNS 解決動作を制御するには、network.ipv6dnsrecordslimitmssql-conf オプションを設定します。 詳細については、 network.ipv6dnsrecordslimit を参照してください。

ローカリゼーション

  • セットアップ時にロケールが英語 (en_us) でない場合は、bash セッション/ターミナルで UTF-8 エンコードを使用する必要があります。 ASCII エンコードを使用すると、次の出力のようなエラーが表示される場合があります。

    UnicodeEncodeError: 'ascii' コーデックでは、8 番目の位置にある文字 u'\xf1' をエンコードできません: 順序値が範囲外です (128)

    UTF-8エンコーディングが使えない場合は、環境変数 MSSQL_LCID でセットアップを実行して言語選択を指定してください。

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • mssql-conf setupを実行して英語以外のインストールを行うと、「Configuring SQL Server SQL Server...」というローカライズテキストの後に誤った拡張文字が表示されることがあります。". または、ラテン語以外のインストールの場合、文が完全に欠落する可能性があります。 欠落している文には、次のローカライズされた文字列が表示される必要があります。

    ライセンス PID は正常に処理されました。 新しいエディションは [<Name> edition] です。"

    この文字列は情報提供のみで、SQL Serverのインストールには影響しません。

このリリースでは、Microsoft Office ドキュメントのフィルターを含め、すべてのフィルターを使用できるわけではありません。 サポートされているフィルターの一覧については、「Install SQL Server Full-Text Search on Linux」を参照してください。

SQL Server Integration Services (SSIS)

SUSE Linux Enterprise Server (SLES) では、mssql-server-is パッケージはサポートされていません。 このパッケージはUbuntuおよびRed Hat Enterprise Linux(RHEL)でサポートされています。

Integration Services パッケージでは、Linux 上の ODBC 接続を使用できます。 この機能はSQL ServerおよびMySQL ODBCドライバーで動作し、ODBC仕様に従うUnicodeのODBCドライバーでも動作するはずです。 設計段階では、ODBCデータに接続するためのDSNまたは接続文字列のいずれかを提供します。Windows 認証も利用できます。 詳細については、Linux での ODBC サポートの告知ブログ記事を参照してください。

このリリースでは、Linux上でSSISパッケージを実行する際に以下の機能がサポートされていません。

  • Integration Services カタログ データベース
  • SQL Server エージェントによるスケジュールされたパッケージの実行
  • Windows認証
  • サードパーティ コンポーネント
  • 変更データ キャプチャ (CDC)
  • Integration Services スケール アウト
  • SSIS 用-Azure 機能パック
  • Hadoop と HDFS のサポート
  • Microsoft Connector for SAP BW(SAP BW用Microsoftコネクタ)

サポートが限定的または全くない組み込みSSISコンポーネントの一覧については、「Linux上のSQL Server Integration Services(SSIS)の機能サポートおよび考慮事項」をご覧ください。

Linux の SSIS の詳細については、次の記事を参照してください。

SQL Server Management Studio (SSMS)

SQL Server on Linuxに接続されているWindowsのSQL Server Management Studioには、次の制限事項が適用されます。

  • メンテナンス プランはサポートされていません。

  • SQL Server Management Studioの管理Data Warehouse (MDW) とデータ コレクターはサポートされていません。

  • Windows認証またはWindowsイベント ログ オプションを持つ UI コンポーネントSQL Server Management Studioは、Linux では機能しません。 これらの機能は、SQL Server ログインなどの他のオプションと共に引き続き使用できます。

  • 保持するログファイルの数を変更することはできません。

高可用性とディザスター リカバリー

対象:SQL Server 2022(16.x)のみ。

SQL Server 2022 (16.x) 16 CU 以前のバージョンを RHEL 9 上で SELinux を有効にした制限付きアプリケーションとして実行すると、Pacemaker クラスタリングが予期通りに動作しない可能性があります。 Pacemakerクラスタリング機能を使うには、SELinuxを有効にした無制限アプリケーションとしてSQL Server 2022(16.x)をインストールする必要があります。 この問題は、SQL Server 2022 (16.x) CU 17 で解決されています。

Machine Learning サービス

対象:SQL Server 2022(16.x)のみ。

SQL Server 2022(16.x)のRHEL 9およびUbuntu 22.04パッケージについては、Machine Learningサービスをインストールする前にこれらのcgroup-v1前提条件を考慮してください。

  1. 前提条件として、Red Hat のUsing cgroupfs to manually manage cgroups Red Hat Enterprise Linux 9に記載されているとおりに、cgroup-v1を有効にしてください。

  2. 次に、指示に従って、記載されているように SQL Machine Learning Services をインストールします。

  3. ネットワーク名前空間の分離を無効にします。

    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. 変更を有効にするために mssql-launchpadd サービスを再起動します。

    sudo systemctl restart mssql-launchpadd
    

SQL Server 2025 の既知の問題

次の問題は、SQL Server 2025 (17.x) に影響します。

ハイブリッド CPU アーキテクチャを使用するマシンでSQL Server on Linuxを開始できない

Issue: マシンが Intel 12th Gen 以降のハイブリッド アーキテクチャ CPU を使用していて、ホスト オペレーティング システムが Linux の場合、Linux 上のSQL Server インスタンスの起動に失敗することがあります。

次の出力のようなエラー メッセージが表示される場合があります。

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

Linux ホスト オペレーティング システムを使用する場合は、BIOS で効率コア (E コア) を無効にすることで、この問題を回避できます。 コンテナやWindowsのハイパーバイザー(WSLを含む)を Hyper-V で使っているなら、この問題は影響しません。

Linux オペレーティング システムではサポートされていないローカル ONNX モデル

CREATE EXTERNAL MODEL SQL Server で直接ホストされているローカル ONNX モデルは、SQL Server 2025 (17.x) の Linux では現在使用できません。