mssql-conf ツールを使用して SQL Server on Linux を構成する

適用対象: はいSQL Server (サポートされているすべてのバージョン) - Linux

mssql-conf は、Red Hat Enterprise Linux、SUSE Linux Enterprise Server、Ubuntu 用に SQL Server 2017 と共にインストールされる構成スクリプトです。 これは、構成値が格納されている mssql conf ファイルを変更します。 mssql-conf ユーティリティを使用すると、次のパラメーターを設定できます。

パラメーター 説明
エージェント SQL Server エージェントを有効にします。
Collation SQL Server on Linux に新しいコロケーションを設定します。
カスタマー フィードバック SQL Server が Microsoft にフィードバックを送信するかどうかを選択します。
[データベース メール プロファイル] SQL Server on Linux の既定のデータベース メール プロファイルを設定します。
既定のデータ ディレクトリ 新しい SQL Server データベースのデータ ファイル (.mdf) の既定のディレクトリを変更します。
既定のログ ディレクトリ 新しい SQL Server データベースのログ (.ldf) ファイルの既定のディレクトリを変更します。
既定のマスター データベース ディレクトリ マスター データベース ファイルとログ ファイルの既定のディレクトリを変更します。
既定のマスター データベース ファイル名 マスター データベース ファイルの名前を変更します。
既定のダンプ ディレクトリ 新しいメモリ ダンプおよびその他のトラブルシューティング ファイルの既定のディレクトリを変更します。
既定のエラー ログ ディレクトリ 新しい SQL Server エラー ログ、既定のプロファイラー トレース、システム正常性セッション XE、および Hekaton セッション XE ファイルの既定のディレクトリを変更します。
既定のバックアップ ディレクトリ 新しいバックアップ ファイルの既定のディレクトリを変更します。
ダンプの種類 収集するダンプ メモリのダンプ ファイルの種類を選択します。
高可用性 可用性グループを有効にします。
Local Audit ディレクトリ ディレクトリを設定して Local Audit ファイルを追加します。
ロケール SQL Server で使用するロケールを設定します。
メモリの制限 SQL Server のメモリ制限を設定します。
ネットワーク設定 SQL Server 用の追加のネットワーク設定。
Microsoft 分散トランザクション コーディネーター Linux で MSDTC の構成とトラブルシューティングを行います。
TCP ポート SQL Server が接続をリッスンするポートを変更します。
TLS トランスポート層セキュリティを構成します。
トレースフラグ サービスが使用するトレースフラグを設定します。

mssql-conf は、Red Hat Enterprise Linux、SUSE Linux Enterprise Server、Ubuntu 用に SQL Server 2019 (15.x) と共にインストールされる構成スクリプトです。 このユーティリティを使用すると、次のパラメーターを設定できます。

パラメーター 説明
エージェント SQL Server エージェントを有効にする
Collation SQL Server on Linux に新しいコロケーションを設定します。
カスタマー フィードバック SQL Server が Microsoft にフィードバックを送信するかどうかを選択します。
[データベース メール プロファイル] SQL Server on Linux の既定のデータベース メール プロファイルを設定します。
既定のデータ ディレクトリ 新しい SQL Server データベースのデータ ファイル (.mdf) の既定のディレクトリを変更します。
既定のログ ディレクトリ 新しい SQL Server データベースのログ (.ldf) ファイルの既定のディレクトリを変更します。
既定のマスター データベース ファイルのディレクトリ 既存の SQL インストール上のマスター データベース ファイルの既定のディレクトリを変更します。
既定のマスター データベース ファイル名 マスター データベース ファイルの名前を変更します。
既定のダンプ ディレクトリ 新しいメモリ ダンプおよびその他のトラブルシューティング ファイルの既定のディレクトリを変更します。
既定のエラー ログ ディレクトリ 新しい SQL Server エラー ログ、既定のプロファイラー トレース、システム正常性セッション XE、および Hekaton セッション XE ファイルの既定のディレクトリを変更します。
既定のバックアップ ディレクトリ 新しいバックアップ ファイルの既定のディレクトリを変更します。
ダンプの種類 収集するダンプ メモリのダンプ ファイルの種類を選択します。
高可用性 可用性グループを有効にします。
Local Audit ディレクトリ ディレクトリを設定して Local Audit ファイルを追加します。
ロケール SQL Server で使用するロケールを設定します。
メモリの制限 SQL Server のメモリ制限を設定します。
Microsoft 分散トランザクション コーディネーター Linux で MSDTC の構成とトラブルシューティングを行います。
MLServices の EULA mlservices パッケージ用の R および Python の EULA に同意します。 これは SQL Server 2019 のみに適用されます。
ネットワーク設定 SQL Server 用の追加のネットワーク設定。
outboundnetworkaccess mlservices R、Python、および Java 拡張機能の送信ネットワーク アクセスを有効にします。
TCP ポート SQL Server が接続をリッスンするポートを変更します。
TLS トランスポート層セキュリティを構成します。
トレースフラグ サービスが使用するトレースフラグを設定します。

ヒント

これらの設定の一部は、環境変数を使って構成することもできます。 詳細については、環境変数を使った SQL Server 設定の構成に関するページを参照してください。

使用上のヒント

  • Always On 可用性グループと共有ディスク クラスターの場合は、常に、各ノードで同じ構成の変更を行います。

  • 共有ディスク クラスターのシナリオでは、変更を適用するために mssql サーバー サービスを再起動しないでください。 SQL Server がアプリケーションとして実行されています。 代わりに、リソースをオフラインにしてからオンラインに戻します。

  • 以下の例では、完全なパス ( /opt/mssql/bin/mssql-conf) を指定して mssql-conf を実行します。 代わりにそのパスに移動する場合は、現在のディレクトリのコンテキスト ( ./mssql-conf) で mssql-conf を実行します。

SQL Server エージェントを有効にする

sqlagent.enabled の設定では、SQL Server エージェントを有効にします。 既定では、SQL Server エージェントは無効になっています。 sqlagent.enabled が mssql.conf 設定ファイルに存在しない場合、SQL Server では内部的に、SQL Server エージェントが無効になっていると見なします。

この設定を変更するには、次の手順を実行します。

  1. SQL Server エージェントを有効にします。

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true 
    
  2. SQL Server サービスを再起動します。

    sudo systemctl restart mssql-server
    

SQL Server on Linux の既定のデータベース メール プロファイルを設定する

sqlpagent.databasemailprofile を使用すると、メール アラートの既定の DB メール プロファイルを設定できます。

sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile <profile_name>

SQL Agent のエラー ログ

sqlpagent.errorlogfilesqlpagent.errorlogginglevel の設定を使用すると、それぞれ、SQL Agent のログ ファイル パスとログ レベルを設定できます。

sudo /opt/mssql/bin/mssql-conf set sqlagent.errorfile <path>

SQL Agent のログ レベルは、次の値と等しいビットマスク値です。

  • 1 = エラー
  • 2 = 警告
  • 4 = 情報

すべてのレベルをキャプチャする場合は、値として 7 を使用します。

sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogginglevel <level>

SQL Server の照合順序を変更する

set-collation オプションは、照合順序の値を、サポートされている任意の照合順序に変更します。

  1. 最初に、サーバー上のすべてのユーザー データベースをバックアップします。

  2. 次に、sp_detach_db ストアド プロシージャを使用してユーザー データベースをデタッチします。

  3. set-collation オプションを実行し、画面の指示に従います。

    sudo /opt/mssql/bin/mssql-conf set-collation
    
  4. mssql-conf ユーティリティにより、指定された照合順序の値への変更とサービスの再開が試みられます。 エラーが発生した場合は、照合順序が前の値にロールバックされます。

  5. ユーザー データベースのバックアップを復元します。

サポートされている照合順序の一覧については、sys.fn_helpcollations 関数: SELECT Name from sys.fn_helpcollations() を実行してください。

カスタマー フィードバックを構成する

telemetry.customerfeedback 設定により、SQL Server が Microsoft にフィードバックを送信するかどうかが変更されます。 既定では、この値はすべてのエディションで true に設定されます。 値を変更するには、次のコマンドを実行します。

重要

SQL Server、Express、Developer の無償のエディションに関するカスタマー フィードバックをオフにすることはできません。

  1. telemetry.customerfeedbackset コマンドを使用して、mssql-conf スクリプトを root として実行します。 次の例では、false を指定することによってカスタマー フィードバックをオフにします。

    sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
    
  2. SQL Server サービスを再起動します。

    sudo systemctl restart mssql-server
    

詳細については、SQL Server on Linux に関するカスタマー フィードバックおよび SQL Server のプライバシーに関する声明に関するページを参照してください。

既定のデータまたはログのディレクトリの場所を変更する

filelocation.defaultdatadirfilelocation.defaultlogdir の設定により、新しいデータベース ファイルとログ ファイルが作成される場所が変更されます。 既定では、この場所は /var/opt/mssql/data です。 これらの設定を変更するには、次の手順を実行します。

  1. 新しいデータベースのデータ ファイルとログ ファイルのターゲット ディレクトリを作成します。 次の例では、新しい /tmp/data ディレクトリを作成します。

    sudo mkdir /tmp/data
    
  2. ディレクトリの所有者とグループを mssql ユーザーに変更します。

    sudo chown mssql /tmp/data
    sudo chgrp mssql /tmp/data
    
  3. mssql-conf を使用して、set コマンドで既定のデータ ディレクトリを変更します。

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /tmp/data
    
  4. SQL Server サービスを再起動します。

    sudo systemctl restart mssql-server
    
  5. これで、新しく作成されたデータベースのすべてのデータベース ファイルが、この新しい場所に格納されます。 新しいデータベースのログ (.ldf) ファイルの場所を変更する場合は、次の "set" コマンドを使用できます。

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /tmp/log
    
  6. このコマンドは、/tmp/log ディレクトリが存在し、ユーザーとグループ mssql の下にあることも前提としています。

既定のマスター データベース ファイルのディレクトリの場所を変更する

filelocation.masterdatafilefilelocation.masterlogfile の設定により、SQL Server エンジンがマスター データベース ファイルを検索する場所が変更されます。 既定では、この場所は /var/opt/mssql/data です。

これらの設定を変更するには、次の手順を実行します。

  1. 新しいエラー ログ ファイルのターゲット ディレクトリを作成します。 次の例では、新しい /tmp/masterdatabasedir ディレクトリを作成します。

    sudo mkdir /tmp/masterdatabasedir
    
  2. ディレクトリの所有者とグループを mssql ユーザーに変更します。

    sudo chown mssql /tmp/masterdatabasedir
    sudo chgrp mssql /tmp/masterdatabasedir
    
  3. mssql-conf を使用して、set コマンドでマスター データ ファイルとログ ファイルの既定のマスター データベース ディレクトリを変更します。

    sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /tmp/masterdatabasedir/master.mdf
    sudo /opt/mssql/bin/mssql-conf set filelocation.masterlogfile /tmp/masterdatabasedir/mastlog.ldf
    

    注意

    マスター データ ファイルとログ ファイルを移動するだけでなく、他のすべてのシステム データベースの既定の場所も移動します。

  4. SQL Server サービスを停止します。

    sudo systemctl stop mssql-server
    
  5. master.mdf と masterlog.ldf を移動します。

    sudo mv /var/opt/mssql/data/master.mdf /tmp/masterdatabasedir/master.mdf 
    sudo mv /var/opt/mssql/data/mastlog.ldf /tmp/masterdatabasedir/mastlog.ldf
    
  6. SQL Server サービスを開始します。

    sudo systemctl start mssql-server
    

    注意

    SQL Server で指定されたディレクトリに master.mdf ファイルと mastlog.ldf ファイルが見つからない場合は、指定されたディレクトリにシステム データベースのテンプレート化されたコピーが自動的に作成され、SQL Server が正常に起動します。 ただし、ユーザー データベース、サーバー ログイン、サーバー証明書、暗号化キー、SQL エージェント ジョブ、古い SA ログイン パスワードなどのメタデータは、新しいマスター データベースでは更新されません。 引き続き既存のメタデータを使用するには、SQL Server を停止して、古い master.mdf と mastlog.ldf を指定した新しい場所に移動し、SQL Server を起動する必要があります。

マスター データベース ファイルの名前を変更する

filelocation.masterdatafilefilelocation.masterlogfile の設定により、SQL Server エンジンがマスター データベース ファイルを検索する場所が変更されます。 これを使用して、マスター データベース ファイルとログ ファイルの名前を変更することもできます。

これらの設定を変更するには、次の手順を実行します。

  1. SQL Server サービスを停止します。

    sudo systemctl stop mssql-server
    
  2. mssql-conf を使用して、set コマンドでマスター データ ファイルとログ ファイルのマスター データベースの想定される名前を変更します。

    sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /var/opt/mssql/data/masternew.mdf
    sudo /opt/mssql/bin/mssql-conf set filelocation.mastlogfile /var/opt/mssql/data/mastlognew.ldf
    

    重要

    マスター データベース ファイルとログ ファイルの名前は、SQL Server が正常に起動された後でのみ変更できます。 SQL Server では、最初の実行まではファイルの名前が master.mdf と mastlog.ldf であると想定されます。

  3. マスター データベース ファイルとログ ファイルの名前を変更する

    sudo mv /var/opt/mssql/data/master.mdf /var/opt/mssql/data/masternew.mdf
    sudo mv /var/opt/mssql/data/mastlog.ldf /var/opt/mssql/data/mastlognew.ldf
    
  4. SQL Server サービスを開始します。

    sudo systemctl start mssql-server
    

既定のダンプ ディレクトリの場所を変更する

filelocation.defaultdumpdir の設定により、クラッシュが発生するたびにメモリと SQL ダンプが生成される既定の場所が変更されます。 既定では、これらのファイルは /var/opt/mssql/log 内に生成されます。

この新しい場所を設定するには、次のコマンドを使用します。

  1. 新しいダンプ ファイルのターゲット ディレクトリを作成します。 次の例では、新しい /tmp/dump ディレクトリを作成します。

    sudo mkdir /tmp/dump
    
  2. ディレクトリの所有者とグループを mssql ユーザーに変更します。

    sudo chown mssql /tmp/dump
    sudo chgrp mssql /tmp/dump
    
  3. mssql-conf を使用して、set コマンドで既定のデータ ディレクトリを変更します。

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /tmp/dump
    
  4. SQL Server サービスを再起動します。

    sudo systemctl restart mssql-server
    

既定のエラー ログ ファイルのディレクトリの場所を変更する

filelocation.errorlogfile の設定により、新しいエラー ログ、既定のプロファイラー トレース、システム正常性セッション XE ファイルと、および Hekaton セッション XE ファイルが作成される場所が変更されます。 既定では、この場所は /var/opt/mssql/log です。 SQL エラー ログ ファイルが設定されているディレクトリが、他のログの既定のログ ディレクトリになります。

これらの設定を変更するには、次の操作を行います。

  1. 新しいエラー ログ ファイルのターゲット ディレクトリを作成します。 次の例では、新しい /tmp/logs ディレクトリを作成します。

    sudo mkdir /tmp/logs
    
  2. ディレクトリの所有者とグループを mssql ユーザーに変更します。

    sudo chown mssql /tmp/logs
    sudo chgrp mssql /tmp/logs
    
  3. mssql-conf を使用して、set コマンドで既定のエラー ログ ファイル名を変更します。

    sudo /opt/mssql/bin/mssql-conf set filelocation.errorlogfile /tmp/logs/errorlog
    
  4. SQL Server サービスを再起動します。

    sudo systemctl restart mssql-server
    

errorlog.numerrorlogs の設定を使用すると、ログを循環する前に保持されるエラー ログの数を指定できます。

既定のバックアップ ディレクトリの場所を変更する

filelocation.defaultbackupdir の設定により、バックアップ ファイルが生成される既定の場所が変更されます。 既定では、これらのファイルは /var/opt/mssql/data に生成されます。

この新しい場所を設定するには、次のコマンドを使用します。

  1. 新しいバックアップ ファイルのターゲット ディレクトリを作成します。 次の例では、新しい /tmp/backup ディレクトリを作成します。

    sudo mkdir /tmp/backup
    
  2. ディレクトリの所有者とグループを mssql ユーザーに変更します。

    sudo chown mssql /tmp/backup
    sudo chgrp mssql /tmp/backup
    
  3. mssql-conf を使用して、"set" コマンドで既定のバックアップ ディレクトリを変更します。

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /tmp/backup
    
  4. SQL Server サービスを再起動します。

    sudo systemctl restart mssql-server
    

コア ダンプ設定を指定する

SQL Server のいずれかのプロセスで例外やクラッシュが発生した場合、SQL Server によってメモリ ダンプが作成されます。 メモリ ダンプのキャプチャには時間がかかったり、大きな領域が必要になったりする場合があります。 リソースを節約し、メモリ ダンプの繰り返しを回避するために、自動的なダンプのキャプチャを無効にする設定 coredump.disablecoredump があります。

sudo /opt/mssql/bin/mssql-conf set coredump.disablecoredump <true or false>

自動コア ダンプが無効になっている (coredump.disablecoredumptrue に設定されている) 場合でも、ユーザーは手動でメモリ ダンプを生成できます。

SQL Server によって収集されるメモリ ダンプの種類を制御するための 2 つのオプション (coredump.coredumptypecoredump.captureminiandfull) があります。 これらは、コア ダンプ キャプチャの 2 つのフェーズに関連しています。

最初のフェーズのキャプチャは、例外の発生時に生成されるダンプ ファイルの種類を決定する coredump.coredumptype 設定によって制御されます。 2 番目のフェーズは、coredump.captureminiandfull の設定時に有効になります。 coredump.captureminiandfull が true に設定されている場合は、coredump.coredumptype によって指定されたダンプ ファイルが生成され、2 番目のミニ ダンプも生成されます。 coredump.captureminiandfull を false に設定すると、2 回目のキャプチャの試行が無効になります。

  1. coredump.captureminiandfull の設定を使用して、ミニ ダンプと完全ダンプを両方ともキャプチャするかどうかを決定します。

    sudo /opt/mssql/bin/mssql-conf set coredump.captureminiandfull <true or false>
    

    既定値: false

  2. coredump.coredumptype の設定を使用して、ダンプ ファイルの種類を指定します。

    sudo /opt/mssql/bin/mssql-conf set coredump.coredumptype <dump_type>
    

    既定値: miniplus

    指定できる coredump.coredumptype の値の一覧を次の表に示します。

    Type 説明
    mini mini は、最も小さいダンプ ファイルの種類です。 これは、Linux システム情報を使用して、プロセス内のスレッドとモジュールを特定します。 ダンプには、ホスト環境のスレッド スタックとモジュールのみが含まれます。 間接的なメモリ参照またはグローバルは含まれません。
    miniplus miniplus は mini に似ていますが、追加のメモリが含まれています。 これは、SQLPAL とホスト環境の内部構造を認識して、次のメモリ領域をダンプに追加します。
    - さまざまなグローバル
    - 64 TB を超えるすべてのメモリ
    - /proc/$pid/maps で見つかったすべての名前付きリージョン
    - スレッドとスタックからの間接メモリ
    - スレッド情報
    - 関連付けられている Teb と Peb
    - モジュール情報
    - VMM および VAD ツリー
    filtered filtered では、明示的に除外しない限りプロセス内のすべてのメモリが含まれる、減算ベースの設計を使用します。 この設計では、特定のリージョンをダンプから除外して、SQLPAL とホスト環境の内部構造を認識します。
    full full は、 /proc/$pid/maps にあるすべてのリージョンを含む完全なプロセス ダンプです。 これは coredump.captureminiandfull の設定によって制御されません。

高可用性

hadr.hadrenabled オプションは、SQL Server インスタンスで可用性グループを有効にします。 次のコマンドは、hadr.hadrenabled を 1 に設定することで可用性グループを有効にします。 設定を有効にするには、SQL Server を再起動する必要があります。

sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled  1
sudo systemctl restart mssql-server

可用性グループでの使用方法については、次の 2 つのトピックを参照してください。

ローカル監査ディレクトリを設定する

telemetry.userrequestedlocalauditdirectory の設定により、Local Audit が有効になり、Local Audit ログが作成されるディレクトリを設定できます。

  1. 新しい Local Audit ログのターゲット ディレクトリを作成します。 次の例では、新しい /tmp/audit ディレクトリを作成します。

    sudo mkdir /tmp/audit
    
  2. ディレクトリの所有者とグループを mssql ユーザーに変更します。

    sudo chown mssql /tmp/audit
    sudo chgrp mssql /tmp/audit
    
  3. telemetry.userrequestedlocalauditdirectoryset コマンドを使用して、mssql-conf スクリプトを root として実行します。

    sudo /opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /tmp/audit
    
  4. SQL Server サービスを再起動します。

    sudo systemctl restart mssql-server
    

詳細については、SQL Server on Linux に関するカスタマー フィードバックに関するページを参照してください。

SQL Server のロケールを変更する

language.lcid の設定により、SQL Server のロケールが、サポートされている言語識別子 (LCID) に変更されます。

  1. 次の例では、ロケールをフランス語 (1036) に変更します。

    sudo /opt/mssql/bin/mssql-conf set language.lcid 1036
    
  2. SQL Server サービスを再起動して、変更を適用します。

    sudo systemctl restart mssql-server
    

メモリ制限を設定する

memory.memorylimitmb の設定により、SQL Server で使用できる物理メモリの量 (MB 単位) を制御します。 既定値は、物理メモリの 80% です。

  1. memory.memorylimitmbset コマンドを使用して、mssql-conf スクリプトを root として実行します。 次の例では、SQL Server で使用可能なメモリを 3.25 GB (3328 MB) に変更します。

    sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 3328
    
  2. SQL Server サービスを再起動して、変更を適用します。

    sudo systemctl restart mssql-server
    

追加メモリの設定

メモリの設定では、次のオプションを使用できます。

オプション 説明
memory.disablememorypressure SQL Server によるメモリ負荷の無効化。 使用できる値は、true または false です。
memory.memory_optimized SQL Server のメモリ最適化機能 (永続メモリ ファイル エンライトメント、メモリ保護) を有効または無効にします。 使用できる値は、true または false です。

MSDTC を構成する

Microsoft 分散トランザクション コーディネーター (MSDTC) を構成するには、network.rpcport および distributedtransaction.servertcpport の設定を使用します。 これらの設定を変更するには、次のコマンドを実行します。

  1. "network.rpcport" の set コマンドを使用して、mssql-conf スクリプトを root として実行します。

    sudo /opt/mssql/bin/mssql-conf set network.rpcport <rcp_port>
    
  2. 次に、"distributedtransaction.servertcpport" の設定を設定します。

    sudo /opt/mssql/bin/mssql-conf set distributedtransaction.servertcpport <servertcpport_port>
    

これらの値を設定するだけでなく、ルーティングを構成し、ポート 135 のファイアウォールを更新する必要があります。 これを行う方法の詳細については、Linux で MSDTC を構成する方法に関するページを参照してください。

mssql-conf には、MSDTC の監視とトラブルシューティングに使用できるその他のいくつかの設定があります。 次の表では、これらの設定について簡単に説明しています。 使用方法の詳細については、MS DTC の診断トレースを有効にする方法に関する Windows サポートの記事を参照してください。

mssql-conf setting 説明
distributedtransaction.allowonlysecurerpccalls 分散トランザクションに対して、セキュリティで保護された RPC のみを構成します
distributedtransaction.fallbacktounsecurerpcifnecessary 分散トランザクションに対して、セキュリティ専用の RPC 呼び出しを構成します
distributedtransaction.maxlogsize DTC トランザクション ログ ファイル サイズ (MB)。 既定値は 64 MB です
distributedtransaction.memorybuffersize トレースが格納される循環バッファーのサイズ。 このサイズは MB 単位で、既定値は 10 MB です
distributedtransaction.servertcpport MSDTC rpc サーバーのポート
distributedtransaction.trace_cm 接続マネージャーでのトレース
distributedtransaction.trace_contact 連絡先プールと連絡先をトレースします
distributedtransaction.trace_gateway ゲートウェイのソースをトレースします
distributedtransaction.trace_log ログのトレース
distributedtransaction.trace_misc 他のカテゴリに分類できないトレース
distributedtransaction.trace_proxy MSDTC プロキシで生成されるトレース
distributedtransaction.trace_svc サービスと .exe ファイルのスタートアップをトレースします
distributedtransaction.trace_trace トレース インフラストラクチャ自体
distributedtransaction.trace_util 複数の場所から呼び出されるユーティリティ ルーチンをトレースします
distributedtransaction.trace_xa XA トランザクション マネージャー (XATM) のトレースのソース
distributedtransaction.tracefilepath トレース ファイルを格納するフォルダー
distributedtransaction.turnoffrpcsecurity 分散トランザクションの RPC セキュリティを有効または無効にします

MLServices の EULA に同意する

Machine Learning R または Python パッケージをデータベース エンジンに追加するには、R および Python のオープンソース ディストリビューションのライセンス条項に同意する必要があります。 次の表に、mlservices の EULA に関連するすべての使用可能なコマンドまたはオプションを列挙します。 インストールされている内容によっては、R と Python で同じ EULA パラメーターが使用されます。

# For all packages: database engine and mlservices
# Setup prompts for mlservices EULAs, which you need to accept
sudo /opt/mssql/bin/mssql-conf setup

# Add R or Python to an existing installation
sudo /opt/mssql/bin/mssql-conf setup accept-eula-ml

# Alternative valid syntax
# Adds the EULA section to the INI and sets acceptulam to yes
sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y

# Rescind EULA acceptance and removes the setting
sudo /opt/mssql/bin/mssql-conf unset EULA accepteulaml

mssql.conf ファイルに EULA の同意を直接追加することもできます。

[EULA]
accepteula = Y
accepteulaml = Y

送信ネットワーク アクセスを有効にする

SQL Server Machine Learning Services 機能の R、Python、および Java 拡張機能の送信ネットワーク アクセスは、既定では無効になっています。 送信要求を有効にするには、mssql-conf を使用して "outboundnetworkaccess" ブール型プロパティを設定します。

プロパティの設定後、SQL Server Launchpad サービスを再起動して、INI ファイルから更新後の値を読み込みます。 拡張機能に関連する設定が変更されるたびに、再起動を促すメッセージが表示されます。

# Adds the extensibility section and property.
# Sets "outboundnetworkaccess" to true.
# This setting is required if you want to access data or operations off the server.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1

# Turns off network access but preserves the setting
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 0

# Removes the setting and rescinds network access
sudo /opt/mssql/bin/mssql-conf unset extensibility.outboundnetworkaccess

mssql.conf ファイルに "outboundnetworkaccess" を直接追加することもできます。

[extensibility]
outboundnetworkaccess = 1

TCP ポートを変更する

network.tcpport 設定は、SQL Server が接続をリッスンする TCP ポートを変更します。 既定では、このポート番号は 1433 に設定されています。 ポートを変更するには、次のコマンドを実行します。

  1. "network.tcpport" の "set" コマンドを使用して、mssql-conf スクリプトを root として実行します。

    sudo /opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>
    
  2. SQL Server サービスを再起動します。

    sudo systemctl restart mssql-server
    
  3. この時点で SQL Server に接続する場合は、ホスト名または IP アドレスの後にコンマ (,) を付けてカスタム ポートを指定する必要があります。 たとえば、SQLCMD を使用して接続するには、次のコマンドを使用します。

    sqlcmd -S localhost,<new_tcp_port> -U test -P test
    

TLS 設定を指定する

次のオプションでは、Linux で実行されている SQL Server のインスタンスに対して TLS を構成します。

オプション 説明
network.forceencryption 1 の場合、SQL Server はすべての接続を強制的に暗号化します。 既定では、このオプションは 0 になっています。
network.tlscert SQL Server が TLS に使用する証明書ファイルへの絶対パス。 例: /etc/ssl/certs/mssql.pem 証明書ファイルには、mssql アカウントがアクセスできる必要があります。 Microsoft では、chown mssql:mssql <file>; chmod 400 <file> を使用してファイルへのアクセスを制限することをお勧めします。
network.tlskey SQL Server が TLS に使用する秘密キーへの絶対パス。 例:/etc/ssl/private/mssql.key 証明書ファイルには、mssql アカウントがアクセスできる必要があります。 Microsoft では、chown mssql:mssql <file>; chmod 400 <file> を使用してファイルへのアクセスを制限することをお勧めします。
network.tlsprotocols SQL Server によって許可される TLS プロトコルのコンマ区切りのリスト。 SQL Server は、許可されている最も強いプロトコルのネゴシエートを常に試行します。 クライアントが許可されているプロトコルをサポートしていない場合、SQL Server は接続試行を拒否します。 互換性のために、サポートされているすべてのプロトコルが既定で許可されています (1.2、1.1、1.0)。 クライアントが TLS 1.2 をサポートしている場合、Microsoft では TLS 1.2 のみを許可することをお勧めします。
network.tlsciphers SQL Server が TLS に対して許可する暗号を指定します。 この文字列は、OpenSSL の暗号リスト形式に従った形式にする必要があります。 一般に、このオプションを変更する必要はありません。
既定では、次の暗号が許可されます。
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
network.kerberoskeytabfile Kerberos keytab ファイルへのパス

TLS 設定の使用例については、SQL Server on Linux への接続の暗号化に関するページを参照してください。

ネットワークの設定

チュートリアル:SSQL Server on Linux で Active Directory 認証を使用する」で、SQL Server on Linux での AD 認証の使用に関する包括的な情報について参照してください。

次のオプションは、mssql-conf を使用して構成可能な追加のネットワーク設定です。

オプション 説明
network.disablesssd SSSD への AD アカウント情報のクエリを無効にし、既定で LDAP 呼び出しを行います。 使用できる値は、true または false です。
network.enablekdcfromkrb5conf krb5.conf からの KDC 情報の検索を有効にします。 使用できる値は、true または false です。
network.forcesecureldap 強制的に LDAPS を使用してドメイン コントローラーに接続します。 使用できる値は、true または false です。
network.ipaddress 着信接続用の IP アドレス。
network.kerberoscredupdatefrequency 更新する必要がある kerberos 資格情報のチェック間隔の秒数。 値は整数です。
network.privilegedadaccount AD 認証に使用する特権 AD ユーザー。 値は <username> です。 詳細については、SQL Server on Linux で Active Directory 認証を使用する
uncmapping UNC パスをローカル パスにマップします。 たとえば、「 sudo /opt/mssql/bin/mssql-conf set uncmapping //servername/sharename /tmp/folder 」のように入力します。

トレースフラグを有効/無効にする

この traceflag オプションは、SQL Server サービスを起動するためのトレースフラグを有効または無効にします。 トレース フラグを有効または無効にするには、次のコマンドを使用します。

  1. 次のコマンドを使用してトレースフラグを有効にします。 たとえば、トレースフラグ 1234 の場合は次のようになります。

    sudo /opt/mssql/bin/mssql-conf traceflag 1234 on
    
  2. 複数のトレースフラグは個別に指定することで有効にすることができます。

    sudo /opt/mssql/bin/mssql-conf traceflag 2345 3456 on
    
  3. 同様の方法で、1 つ以上の有効なトレースフラグは、それらを指定して off パラメーターを追加することによって無効にすることができます。

    sudo /opt/mssql/bin/mssql-conf traceflag 1234 2345 3456 off
    
  4. SQL Server サービスを再起動して、変更を適用します。

    sudo systemctl restart mssql-server
    

設定を削除する

mssql-conf set で行われた設定を設定解除するには、unset オプションと設定の名前を指定して mssql-conf を呼び出します。 これにより設定がクリアされ、実質的に既定値に戻ります。

  1. 次の例では、network.tcpport オプションをクリアします。

    sudo /opt/mssql/bin/mssql-conf unset network.tcpport
    
  2. SQL Server サービスを再起動します。

    sudo systemctl restart mssql-server
    

現在の設定を表示する

構成されている設定を表示するには、次のコマンドを実行して mssql.conf ファイルの内容を出力します。

sudo cat /var/opt/mssql/mssql.conf

このファイルで示されていないすべての設定については、既定値が使用されます。 次のセクションで、mssql.conf ファイルのサンプルを示します。

mssql.conf format

次の /var/opt/mssql/mssql.conf ファイルは、各設定の例を示しています。 この形式を使用すると、必要に応じて mssql.conf ファイルに手動で変更を加えることができます。 ファイルを手動で変更する場合は、変更を適用する前に SQL Server を再起動する必要があります。 Docker で mssql ファイルを使用するには、Docker が データを保持している必要があります。 まず、完全な mssql.conf ファイルをホスト ディレクトリに追加してから、コンテナーを実行します。 この例はカスタマー フィードバックに含まれています。

[EULA]
accepteula = Y

[coredump]
captureminiandfull = true
coredumptype = full

[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/

[hadr]
hadrenabled = 0

[language]
lcid = 1033

[memory]
memorylimitmb = 4096

[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0

[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7

[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit

[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456
[EULA]
accepteula = Y
accepteulaml = Y

[coredump]
captureminiandfull = true
coredumptype = full

[distributedtransaction]
servertcpport = 51999

[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/

[hadr]
hadrenabled = 0

[language]
lcid = 1033

[memory]
memorylimitmb = 4096

[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
rpcport = 13500
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0

[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7

[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit

[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456

次のステップ

代わりに環境変数を使用してこれらの構成の変更を行う場合は、環境変数を使用した SQL Server 設定の構成に関するページを参照してください。

その他の管理ツールとシナリオについては、SQL Server on Linux の管理に関するページを参照してください。