mssql-conf ツールを使用して SQL Server on Linux を構成する
適用対象: SQL Server - Linux
mssql-conf は、Red Hat Enterprise Linux、SUSE Linux Enterprise Server、Ubuntu 用の SQL Server 2017 (14.x) でインストールされる構成スクリプトです。 これは、構成値が格納されている mssql conf ファイルを変更します。 mssql-conf ユーティリティを使用すると、次のパラメーターを設定できます。
パラメーター | 説明 |
---|---|
エージェント | SQL Server エージェントを有効にします。 |
Windows での認証 | Windows Server Active Directory 認証のための設定。 |
Collation | SQL Server on Linux に新しいコロケーションを設定します。 |
カスタマー フィードバック | SQL Server が Microsoft にフィードバックを送信するかどうかを選択します。 |
[データベース メール プロファイル] | SQL Server on Linux の既定のデータベース メール プロファイルを設定します。 |
既定のデータ ディレクトリ | 新しい SQL Server データベースのデータ ファイル (.mdf) の既定のディレクトリを変更します。 |
既定のログ ディレクトリ | 新しい SQL Server データベースのログ (.ldf) ファイルの既定のディレクトリを変更します。 |
既定のマスター データベース ディレクトリ | master データベース ファイルとログ ファイルの既定のディレクトリを変更します。 |
既定のマスター データベース ファイル名 | master データベース ファイルの名前を変更します。 |
既定のダンプ ディレクトリ | 新しいメモリ ダンプおよびその他のトラブルシューティング ファイルの既定のディレクトリを変更します。 |
既定のエラー ログ ディレクトリ | 新しい SQL Server エラー ログ、既定のプロファイラー トレース、システム正常性セッション XE、Hekaton セッション XE ファイルのための既定のディレクトリを変更します。 |
既定のバックアップ ディレクトリ | 新しいバックアップ ファイルの既定のディレクトリを変更します。 |
ダンプの種類 | 収集するダンプ メモリのダンプ ファイルの種類を選択します。 |
のエディション | SQL Server のエディションを設定します。 |
高可用性 | 可用性グループを有効にします。 |
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 エージェントを有効にする |
Windows での認証 | Windows Server Active Directory 認証のための設定。 |
Collation | SQL Server on Linux に新しいコロケーションを設定します。 |
カスタマー フィードバック | SQL Server が Microsoft にフィードバックを送信するかどうかを選択します。 |
[データベース メール プロファイル] | SQL Server on Linux の既定のデータベース メール プロファイルを設定します。 |
既定のデータ ディレクトリ | 新しい SQL Server データベースのデータ ファイル (.mdf) の既定のディレクトリを変更します。 |
既定のログ ディレクトリ | 新しい SQL Server データベースのログ (.ldf) ファイルの既定のディレクトリを変更します。 |
既定のマスター データベース ファイルのディレクトリ | 既存の SQL インストール上の master データベース ファイルの既定のディレクトリを変更します。 |
既定のマスター データベース ファイル名 | master データベース ファイルの名前を変更します。 |
既定のダンプ ディレクトリ | 新しいメモリ ダンプおよびその他のトラブルシューティング ファイルの既定のディレクトリを変更します。 |
既定のエラー ログ ディレクトリ | 新しい SQL Server エラー ログ、既定のプロファイラー トレース、システム正常性セッション XE、Hekaton セッション XE ファイルのための既定のディレクトリを変更します。 |
既定のバックアップ ディレクトリ | 新しいバックアップ ファイルの既定のディレクトリを変更します。 |
ダンプの種類 | 収集するダンプ メモリのダンプ ファイルの種類を選択します。 |
のエディション | SQL Server のエディションを設定します。 |
高可用性 | 可用性グループを有効にします。 |
Local Audit ディレクトリ | ディレクトリを設定して Local Audit ファイルを追加します。 |
ロケール | SQL Server で使用するロケールを設定します。 |
メモリの制限 | SQL Server のメモリ制限を設定します。 |
Microsoft 分散トランザクション コーディネーター | Linux で MSDTC の構成とトラブルシューティングを行います。 |
Machine Learning service の EULA | mlservices パッケージ用の R および Python の EULA を受け入れます。 SQL Server 2019 (15.x) のみに適用されます。 |
ネットワーク設定 | SQL Server 用の追加のネットワーク設定。 |
outboundnetworkaccess | Machine Learning Services の R、Python、および Java 拡張機能の送信ネットワーク アクセスを有効にします。 |
TCP ポート | SQL Server が接続をリッスンするポートを変更します。 |
TLS | トランスポート層セキュリティを構成します。 |
トレース フラグ | サービスが使用するトレース フラグを設定します。 |
mssql-conf は、Red Hat Enterprise Linux、Ubuntu 用に SQL Server 2022 (16.x) と共にインストールされる構成スクリプトです。 このユーティリティを使用すると、次のパラメーターを設定できます。
パラメーター | 説明 |
---|---|
エージェント | SQL Server エージェントを有効にする |
Microsoft Entra ID を使用して認証する | Microsoft Entra ID (旧称 Azure Active Directory) を使用して認証するための設定。 |
Windows での認証 | Windows Server Active Directory 認証のための設定。 |
Collation | SQL Server on Linux に新しいコロケーションを設定します。 |
カスタマー フィードバック | SQL Server が Microsoft にフィードバックを送信するかどうかを選択します。 |
[データベース メール プロファイル] | SQL Server on Linux の既定のデータベース メール プロファイルを設定します。 |
既定のデータ ディレクトリ | 新しい SQL Server データベースのデータ ファイル (.mdf) の既定のディレクトリを変更します。 |
既定のログ ディレクトリ | 新しい SQL Server データベースのログ (.ldf) ファイルの既定のディレクトリを変更します。 |
既定のマスター データベース ファイルのディレクトリ | 既存の SQL インストール上の master データベース ファイルの既定のディレクトリを変更します。 |
既定のマスター データベース ファイル名 | master データベース ファイルの名前を変更します。 |
既定のダンプ ディレクトリ | 新しいメモリ ダンプおよびその他のトラブルシューティング ファイルの既定のディレクトリを変更します。 |
既定のエラー ログ ディレクトリ | 新しい SQL Server エラー ログ、既定のプロファイラー トレース、システム正常性セッション XE、Hekaton セッション XE ファイルのための既定のディレクトリを変更します。 |
既定のバックアップ ディレクトリ | 新しいバックアップ ファイルの既定のディレクトリを変更します。 |
ダンプの種類 | 収集するダンプ メモリのダンプ ファイルの種類を選択します。 |
のエディション | SQL Server のエディションを設定します。 |
高可用性 | 可用性グループを有効にします。 |
Local Audit ディレクトリ | ディレクトリを設定して Local Audit ファイルを追加します。 |
ロケール | SQL Server で使用するロケールを設定します。 |
メモリの制限 | SQL Server のメモリ制限を設定します。 |
Microsoft 分散トランザクション コーディネーター | Linux で MSDTC の構成とトラブルシューティングを行います。 |
Machine Learning service の EULA | mlservices パッケージ用の R および Python の EULA を受け入れます。 SQL Server 2019 (15.x) のみに適用されます。 |
ネットワーク設定 | SQL Server 用の追加のネットワーク設定。 |
送信ネットワーク アクセス | Machine Learning Services の R、Python、および Java 拡張機能の送信ネットワーク アクセスを有効にします。 |
SQL Server コネクタ | SQL Server コネクタのログ レベルを設定します。 |
TCP ポート | SQL Server が接続をリッスンするポートを変更します。 |
TLS | トランスポート層セキュリティを構成します。 |
トレース フラグ | サービスが使用するトレース フラグを設定します。 |
ヒント
これらの設定の一部は、環境変数を使って構成することもできます。 詳細については、「Linux 上で環境変数を使って SQL Server の設定を構成する」を参照してください。
使用上のヒント
Always On 可用性グループと共有ディスク クラスターの場合は、常に、各ノードで同じ構成の変更を行います。
共有ディスク クラスターのシナリオでは、変更を適用するために
mssql-server
サービスを再起動しないでください。 SQL Server がアプリケーションとして実行されています。 代わりに、リソースをオフラインにしてからオンラインに戻します。これらの例では、完全なパス (
/opt/mssql/bin/mssql-conf
) を指定して mssql-conf を実行しています。 代わりにそのパスに移動する場合は、現在のディレクトリ (./mssql-conf
) のコンテキストで mssql-conf を実行します。コンテナー内の
mssql.conf
ファイルを変更する場合は、目的の設定でコンテナーを実行しているホスト上にmssql.conf
ファイルを作成し、コンテナーを再デプロイします。 たとえば、mssql.conf
ファイルに次を追加すると、SQL Server エージェントが有効になります。[sqlagent] enabled = true
次のコマンドを使用してコンテナーをデプロイできます。
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \ -p 5433:1433 --name sql1 \ -v /container/sql1:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2019-latest
詳細については、「SQL Server コンテナーによって使用される構成ファイルを作成する」を参照してください。
SQL Server エージェントを有効にする
sqlagent.enabled
の設定では、SQL Server エージェントを有効にします。 既定では、SQL Server エージェントは無効になっています。 sqlagent.enabled
が mssql.conf 設定ファイルに存在しない場合、SQL Server では内部的に、SQL Server エージェントが無効になっていると見なします。
この設定を変更するには、次の手順を実行します。
SQL Server エージェントを有効にします。
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
SQL Server サービスを再起動します。
sudo systemctl restart mssql-server
SQL Server on Linux の既定のデータベース メール プロファイルを設定する
sqlagent.databasemailprofile
を使用すると、メール アラートの既定の DB メール プロファイルを設定できます。
sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile <profile_name>
SQL Agent のエラー ログ
sqlagent.errorlogfile
と sqlagent.errorlogginglevel
の設定を使用すると、それぞれ、SQL Agent のログ ファイル パスとログ レベルを設定できます。
sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogfile <path>
SQL Agent のログ レベルは、次の値と等しいビットマスク値です。
1
= エラー2
= 警告4
= 情報
すべてのレベルをキャプチャする場合は、値として 7
を使用します。
sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogginglevel <level>
Microsoft Entra 認証を構成する
SQL Server 2022 (16.x) 以降では、SQL Server 用の Microsoft Entra ID を構成できます。 Microsoft Entra ID を構成するには、SQL Server のインストール後に、SQL Server 用の Azure 拡張機能をインストールする必要があります。 Microsoft Entra ID を構成する方法については、「チュートリアル: SQL Server 用に Microsoft Entra 認証を設定する」を参照してください。
既定の Microsoft Entra ID 証明書パスを変更
既定では、Microsoft Entra 証明書ファイルは /var/opt/mssql/aadsecrets/
に格納されます。 証明書ストアまたは暗号化されたドライブを使う場合は、このパスを変更できます。 パスを変更するには、次のコマンドを使います。
sudo /opt/mssql/bin/mssql-conf set network.aadcertificatefilepath /path/to/new/location.pfx
前の例の /path/to/new/location.pfx
は、証明書名を "含む" 任意のパスです。
SQL Server 用 Azure 拡張機能によってダウンロードされた Microsoft Entra 認証のための証明書は、この場所に格納されます。 これは /var/opt/mssql/secrets
には変更できません。
Note
既定の Microsoft Entra ID 証明書のパスは、SQL Server のインストール後にいつでも変更できますが、Microsoft Entra ID を有効にする前に変更する必要があります。
Microsoft Entra ID の構成オプション
次のオプションは、Linux 上で動作する SQL Server のインスタンスに対する Microsoft Entra 認証で使用されます。
警告
Microsoft Entra ID のパラメーターは SQL Server 用 Azure 拡張機能によって構成され、手動で再構成する必要はありません。 情報提供のために、それらを次に示します。
オプション | 説明 |
---|---|
network.aadauthenticationendpoint |
Microsoft Entra 認証のエンドポイント |
network.aadcertificatefilepath |
Microsoft Entra ID に対する認証の証明書ファイルへのパス |
network.aadclientcertblacklist |
Microsoft Entra ID クライアント証明書ブロックリスト |
network.aadclientid |
Microsoft Entra クライアント GUID |
network.aadfederationmetadataendpoint |
Microsoft Entra フェデレーション メタデータのエンドポイント |
network.aadgraphapiendpoint |
Azure AD Graph API のエンドポイント |
network.aadgraphendpoint |
Azure AD Graph エンドポイント |
network.aadissuerurl |
Microsoft Entra 発行元 URL |
network.aadmsgraphendpoint |
Microsoft Entra MS Graph エンドポイント |
network.aadonbehalfofauthority |
オーソリティに代わる Microsoft Entra ID |
network.aadprimarytenant |
Microsoft Entra プライマリ テナント GUID |
network.aadsendx5c |
Microsoft Entra ID Send X5C |
network.aadserveradminname |
sysadmin にする Microsoft Entra アカウントの名前 |
network.aadserveradminsid |
sysadmin にする Microsoft Entra アカウントの SID |
network.aadserveradmintype |
sysadmin にする Microsoft Entra アカウントのタイプ |
network.aadserviceprincipalname |
Microsoft Entra サービス プリンシパル名 |
network.aadserviceprincipalnamenoslash |
Microsoft Entra サービス プリンシパル名 (スラッシュなし) |
network.aadstsurl |
Microsoft Entra STS URL |
Windows Active Directory 認証を構成する
setup-ad-keytab
オプションを使用して keytab を作成できますが、このオプションを使用するには、ユーザーとサービス プリンシパル名 (SPN) が作成されている必要があります。 Active Directory ユーティリティ、adutil を使用して、ユーザー、SPN、および keytab を作成できます。
setup-ad-keytab
の使用に関するオプションについては、次のコマンドを実行します。
sudo /opt/mssql/bin/mssql-conf setup-ad-keytab --help
validate-ad-config
オプションは、Active Directory 認証の構成を検証します。
SQL Server の照合順序を変更する
set-collation
オプションは、照合順序の値を、サポートされている任意の照合順序に変更します。 この変更を行うには、SQL Server サービスを停止する必要があります。
最初に、サーバー上のすべてのユーザー データベースをバックアップします。
次に、sp_detach_db ストアド プロシージャを使用してユーザー データベースをデタッチします。
set-collation
オプションを実行し、画面の指示に従います。sudo /opt/mssql/bin/mssql-conf set-collation
mssql-conf ユーティリティにより、指定された照合順序の値への変更とサービスの再開が試みられます。 エラーが発生した場合は、照合順序が前の値にロールバックされます。
ユーザー データベースのバックアップを復元します。
サポートされている照合順序の一覧については、sys.fn_helpcollations 関数: SELECT Name from sys.fn_helpcollations()
を実行してください。
カスタマー フィードバックを構成する
telemetry.customerfeedback
設定により、SQL Server が Microsoft にフィードバックを送信するかどうかが変更されます。 既定では、この値はすべてのエディションで true
に設定されます。 値を変更するには、次のコマンドを実行します。
重要
SQL Server、Express、Developer の無償のエディションに関するカスタマー フィードバックをオフにすることはできません。
telemetry.customerfeedback
のset
コマンドを使って、mssql-conf スクリプトを root として実行します。 次の例では、false
を指定することによってカスタマー フィードバックをオフにします。sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
SQL Server サービスを再起動します。
sudo systemctl restart mssql-server
詳細については、「SQL Server on Linux の使用状況と診断データの収集を構成する」および「SQL Server のプライバシーの補足情報」を参照してください。
既定のデータまたはログのディレクトリの場所を変更する
filelocation.defaultdatadir
と filelocation.defaultlogdir
の設定により、新しいデータベース ファイルとログ ファイルが作成される場所が変更されます。 既定では、この場所は /var/opt/mssql/data
です。 これらの設定を変更するには、次の手順を実行します。
新しいデータベースのデータ ファイルとログ ファイルのターゲット ディレクトリを作成します。 次の例では、新しい
/tmp/data
ディレクトリを作成します。sudo mkdir /tmp/data
ディレクトリの所有者とグループを
mssql
ユーザーに変更します。sudo chown mssql /tmp/data sudo chgrp mssql /tmp/data
mssql-conf を使用して、
set
コマンドで既定のデータ ディレクトリを変更します。sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /tmp/data
SQL Server サービスを再起動します。
sudo systemctl restart mssql-server
これで、新しく作成されたデータベースのすべてのデータベース ファイルが、この新しい場所に格納されました。 新しいデータベースのログ (.ldf) ファイルの場所を変更する場合は、次の
set
コマンドを使用できます。sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /tmp/log
このコマンドは、/tmp/log ディレクトリが存在し、ユーザーとグループ
mssql
の下にあることも前提としています。
既定の master
データベース ファイルのディレクトリの場所を変更する
filelocation.masterdatafile
と filelocation.masterlogfile
の設定により、SQL Server データベース エンジンが master
データベース ファイルを検索する場所が変更されます。 既定では、この場所は /var/opt/mssql/data
です。
これらの設定を変更するには、次の手順を実行します。
新しいエラー ログ ファイルのターゲット ディレクトリを作成します。 次の例では、新しい
/tmp/masterdatabasedir
ディレクトリを作成します。sudo mkdir /tmp/masterdatabasedir
ディレクトリの所有者とグループを
mssql
ユーザーに変更します。sudo chown mssql /tmp/masterdatabasedir sudo chgrp mssql /tmp/masterdatabasedir
mssql-conf を使用して、
set
コマンドでmaster
データ ファイルとログ ファイルの既定のマスター データベース ディレクトリを変更します。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
Note
マスター データ ファイルとログ ファイルを移動するだけでなく、他のすべてのシステム データベースの既定の場所も移動します。
SQL Server サービスを停止します。
sudo systemctl stop mssql-server
master.mdf
およびmastlog.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
SQL Server サービスを開始します。
sudo systemctl start mssql-server
Note
SQL Server で指定されたディレクトリに
master.mdf
ファイルとmastlog.ldf
ファイルが見つからない場合は、指定されたディレクトリにシステム データベースのテンプレート化されたコピーが自動的に作成され、SQL Server が正常に起動します。 ただし、ユーザー データベース、サーバー ログイン、サーバー証明書、暗号化キー、SQL エージェント ジョブ、古い SA ログイン パスワードなどのメタデータは、新しいmaster
データベースでは更新されません。 引き続き既存のメタデータを使うには、SQL Server を停止して、古いmaster.mdf
とmastlog.ldf
を指定した新しい場所に移動し、SQL Server を起動する必要があります。
master
データベース ファイルの名前を変更する
filelocation.masterdatafile
と filelocation.masterlogfile
の設定により、SQL Server データベース エンジンが master
データベース ファイルを検索する場所が変更されます。 これを使用して、master
データベース ファイルとログ ファイルの名前を変更することもできます。
これらの設定を変更するには、次の手順を実行します。
SQL Server サービスを停止します。
sudo systemctl stop mssql-server
mssql-conf を使って、
set
コマンドでmaster
データ ファイルとログ ファイルのmaster
データベースに想定される名前を変更します。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
重要
master
データベース ファイルとログ ファイルの名前は、SQL Server が正常に起動された後でのみ変更できます。 SQL Server では、最初の実行まではファイルの名前がmaster.mdf
とmastlog.ldf
であると想定されます。master
データベースのデータ ファイルとログ ファイルの名前を変更します。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
SQL Server サービスを開始します。
sudo systemctl start mssql-server
既定のダンプ ディレクトリの場所を変更する
filelocation.defaultdumpdir
の設定により、クラッシュが発生するたびにメモリと SQL ダンプが生成される既定の場所が変更されます。 既定では、これらのファイルは /var/opt/mssql/log
内に生成されます。
この新しい場所を設定するには、次のコマンドを使用します。
新しいダンプ ファイルのターゲット ディレクトリを作成します。 次の例では、新しい
/tmp/dump
ディレクトリを作成します。sudo mkdir /tmp/dump
ディレクトリの所有者とグループを
mssql
ユーザーに変更します。sudo chown mssql /tmp/dump sudo chgrp mssql /tmp/dump
mssql-conf を使用して、
set
コマンドで既定のデータ ディレクトリを変更します。sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /tmp/dump
SQL Server サービスを再起動します。
sudo systemctl restart mssql-server
既定のエラー ログ ファイルのディレクトリの場所を変更する
filelocation.errorlogfile
の設定により、新しいエラー ログ、既定のプロファイラー トレース、システム正常性セッション XE ファイル、および Hekaton セッション XE ファイルが作成される場所が変更されます。 既定では、この場所は /var/opt/mssql/log
です。 SQL Server のエラー ログ ファイルが設定されているディレクトリが、他のログの既定のログ ディレクトリになります。
これらの設定を変更するには、次の操作を行います。
新しいエラー ログ ファイルのターゲット ディレクトリを作成します。 次の例では、新しい
/tmp/logs
ディレクトリを作成します。sudo mkdir /tmp/logs
ディレクトリの所有者とグループを
mssql
ユーザーに変更します。sudo chown mssql /tmp/logs sudo chgrp mssql /tmp/logs
mssql-conf を使って、
set
コマンドでの既定のエラー ログ ファイル名を変更します。sudo /opt/mssql/bin/mssql-conf set filelocation.errorlogfile /tmp/logs/errorlog
SQL Server サービスを再起動します。
sudo systemctl restart mssql-server
errorlog.numerrorlogs
の設定を使用すると、ログを循環するまでに保持されるエラー ログの数を指定できます。
既定のバックアップ ディレクトリの場所を変更する
filelocation.defaultbackupdir
の設定により、バックアップ ファイルが生成される既定の場所が変更されます。 既定では、これらのファイルは /var/opt/mssql/data
内に生成されます。
この新しい場所を設定するには、次のコマンドを使用します。
新しいバックアップ ファイルのターゲット ディレクトリを作成します。 次の例では、新しい
/tmp/backup
ディレクトリを作成します。sudo mkdir /tmp/backup
ディレクトリの所有者とグループを
mssql
ユーザーに変更します。sudo chown mssql /tmp/backup sudo chgrp mssql /tmp/backup
mssql-conf を使って、
set
コマンドでの既定のバックアップ ディレクトリを変更します。sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /tmp/backup
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.disablecoredump
が true
に設定されている) 場合でも、ユーザーは手動でメモリ ダンプを生成できます。
SQL Server によって収集されるメモリ ダンプの種類を制御するための 2 つのオプション (coredump.coredumptype
と coredump.captureminiandfull
) があります。 これらは、コア ダンプ キャプチャの 2 つのフェーズに関連しています。
最初のフェーズのキャプチャは、例外の発生時に生成されるダンプ ファイルの種類を決定する coredump.coredumptype
設定によって制御されます。 2 番目のフェーズは、coredump.captureminiandfull
の設定時に有効になります。 coredump.captureminiandfull
が true に設定されている場合は、coredump.coredumptype
によって指定されたダンプ ファイルが生成され、2 番目のミニ ダンプも生成されます。 coredump.captureminiandfull
を false に設定すると、2 回目のキャプチャの試行が無効になります。
coredump.captureminiandfull
の設定を使用して、ミニ ダンプと完全ダンプを両方ともキャプチャするかどうかを決定します。sudo /opt/mssql/bin/mssql-conf set coredump.captureminiandfull <true or false>
既定値:
false
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
の設定によって制御されません。
Edition
SQL Server のエディションは、set-edition
オプションを使用して変更できます。 SQL Server のエディションを変更するには、最初に SQL Server サービスを停止する必要があります。 使用可能な SQL Server on Linux エディションの詳細については、「SQL Server エディション」を参照してください。
高可用性
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 ログが作成されるディレクトリを設定できます。
新しい Local Audit ログのターゲット ディレクトリを作成します。 次の例では、新しい
/tmp/audit
ディレクトリを作成します。sudo mkdir /tmp/audit
ディレクトリの所有者とグループを
mssql
ユーザーに変更します。sudo chown mssql /tmp/audit sudo chgrp mssql /tmp/audit
telemetry.userrequestedlocalauditdirectory
のset
コマンドを使って、mssql-conf スクリプトを root として実行します。sudo /opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /tmp/audit
SQL Server サービスを再起動します。
sudo systemctl restart mssql-server
詳細については、「SQL Server on Linux の使用状況と診断データの収集を構成する」を参照してください。
SQL Server のロケールを変更する
language.lcid
の設定により、SQL Server のロケールが、サポートされている言語識別子 (LCID) に変更されます。
次の例では、ロケールをフランス語 (1036) に変更します。
sudo /opt/mssql/bin/mssql-conf set language.lcid 1036
SQL Server サービスを再起動して、変更を適用します。
sudo systemctl restart mssql-server
メモリ制限を設定する
memory.memorylimitmb
の設定により、SQL Server で使用できる物理メモリの量 (MB 単位) を制御します。 メモリ不足 (OOM) の状態を防ぐため、既定値は物理メモリの 80% です。
重要
memory.memorylimitmb
の設定により、SQL Server プロセスで使用できる "物理メモリ" の量が制限されます。 最大サーバー メモリ (MB) の設定を使うと、SQL Server の "バッファー プール" で使用できるメモリの量を調整できますが、SQL Server に使用できる物理メモリの量を超えることはできません。 最大サーバー メモリ (MB) サーバー構成オプションについて詳しくは、「サーバー メモリの構成オプション」をご覧ください。
memory.memorylimitmb
のset
コマンドを使って、mssql-conf スクリプトを root として実行します。 次の例では、SQL Server で使用可能なメモリを 3.25 GB (3,328 MB) に変更します。sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 3328
SQL Server サービスを再起動して、変更を適用します。
sudo systemctl restart mssql-server
追加メモリの設定
メモリの設定では、次のオプションを使用できます。
オプション | 説明 |
---|---|
memory.disablememorypressure |
SQL Server によるメモリ負荷の無効化。 値は、true または false (既定値) にすることができます。 メモリ負荷を無効にすると、SQL Server が物理メモリの使用量を memory.memorylimitmb に制限するために使用するシグナルが阻害され、最終的にその制限を超える使用量が発生します。 |
memory.memory_optimized |
SQL Server のメモリ最適化機能 (永続メモリ ファイル エンライトメント、メモリ保護) を有効または無効にします。 使用できる値は、true または false です。 |
memory.enablecontainersharedmemory |
SQL Server コンテナーのみに適用されます。 この設定を使用して、SQL Server コンテナー内の共有メモリを有効にします。 詳細については、「コンテナーでの VDI バックアップと復元を有効にする」を参照してください。 値は、true または false (既定値) にすることができます。 |
MSDTC の構成
Microsoft 分散トランザクション コーディネーター (MSDTC) を構成するには、network.rpcport
と distributedtransaction.servertcpport
の設定を使います。 これらの設定を変更するには、次のコマンドを実行します。
network.rpcport
のset
コマンドを使って、mssql-conf スクリプトを root として実行します。sudo /opt/mssql/bin/mssql-conf set network.rpcport <rcp_port>
その後、
distributedtransaction.servertcpport
を設定します。sudo /opt/mssql/bin/mssql-conf set distributedtransaction.servertcpport <servertcpport_port>
これらの値を設定するだけでなく、ルーティングを構成し、ポート 135 のファイアウォールを更新する必要があります。 これを行う方法の詳細については、「Linux で Microsoft 分散トランザクション コーディネーター (MSDTC) を構成する方法」をご覧ください。
mssql-conf には、MSDTC の監視とトラブルシューティングに使用できるその他のいくつかの設定があります。 次の表では、これらの設定について簡単に説明しています。 使用方法の詳細については、Windows 10 コンピュータでMS DTC の診断トレースを有効にするに関する Windows サポートの記事を参照してください。
オプション | 説明 |
---|---|
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 セキュリティを有効または無効にします |
Machine Learning service の 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
Azure Key Vault 向け SQL Server コネクタのログ レベルを変更する
SQL Server 2022 (16.x) CU 14 以降のバージョンでは、SQL Server on Linux が Azure Key Vault を使用した TDE 拡張キー管理をサポートしています。 ログ レベルを次のいずれかの値に設定できます。
Level | 説明 |
---|---|
0 (既定値) |
情報 |
1 |
エラー |
2 |
ログがない |
SQL Server コネクタのログ レベルを変更するには、次の例を使用します。
sudo /opt/mssql/bin/mssql-conf set sqlconnector.logginglevel 1
詳細については、「SQL 暗号化機能で SQL Server コネクタを使用する」を参照してください。
TCP ポートを変更する
network.tcpport
設定は、SQL Server が接続をリッスンする TCP ポートを変更します。 既定では、このポート番号は 1433 に設定されています。 ポートを変更するには、次のコマンドを実行します。
network.tcpport
のset
コマンドを使って、mssql-conf スクリプトを root として実行します。sudo /opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>
SQL Server サービスを再起動します。
sudo systemctl restart mssql-server
この時点で 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 での Active Directory 認証の使用に関する包括的な情報について参照してください。
次のオプションは、mssql-conf を使って構成可能な追加のネットワーク設定です。
オプション | 説明 |
---|---|
network.disablesssd |
SSSD への Active Directory アカウント情報のクエリを無効にし、既定で LDAP 呼び出しを行います。 使用できる値は、true または false です。 |
network.enablekdcfromkrb5conf |
krb5.conf からの KDC 情報の検索を有効にします。 使用できる値は、true または false です。 |
network.forcesecureldap |
強制的に LDAPS を使用してドメイン コントローラーに接続します。 使用できる値は、true または false です。 |
network.ipaddress |
着信接続用の IP アドレス。 |
network.kerberoscredupdatefrequency |
更新する必要がある kerberos 資格情報のチェック間隔の秒数。 値は整数です。 |
network.privilegedadaccount |
Active Directory 認証に使用する特権 Active Directory ユーザー。 値は <username> です。 詳細については、SQL Server on Linux で Active Directory 認証を使用する |
uncmapping |
UNC パスをローカル パスにマップします。 たとえば、「 sudo /opt/mssql/bin/mssql-conf set uncmapping //servername/sharename /tmp/folder 」のように入力します。 |
ldaphostcanon |
バインド ステップ中に OpenLDAP でホスト名を正規化するかどうかを設定します。 使用できる値は、true または false です。 |
トレース フラグを有効または無効にする
この traceflag
オプションは、SQL Server サービスを起動するためのトレースフラグを有効または無効にします。 トレース フラグを有効または無効にするには、次のコマンドを使用します。
次のコマンドを使用してトレース フラグを有効にします。 たとえばトレース フラグが 1234 の場合:
sudo /opt/mssql/bin/mssql-conf traceflag 1234 on
複数のトレース フラグは個別に指定することで有効にすることができます。
sudo /opt/mssql/bin/mssql-conf traceflag 2345 3456 on
同様の方法で、1 つ以上の有効なトレース フラグは、それらを指定して
off
パラメーターを追加することによって無効にすることができます。sudo /opt/mssql/bin/mssql-conf traceflag 1234 2345 3456 off
SQL Server サービスを再起動して、変更を適用します。
sudo systemctl restart mssql-server
設定を削除する
mssql-conf set
で行われた設定を設定解除するには、unset
オプションと設定の名前を指定して mssql-conf を呼び出します。 これにより設定がクリアされ、実質的に既定値に戻ります。
次の例では、
network.tcpport
オプションをクリアします。sudo /opt/mssql/bin/mssql-conf unset network.tcpport
SQL Server サービスを再起動します。
sudo systemctl restart mssql-server
現在の設定を表示する
構成されている設定を表示するには、次のコマンドを実行して mssql.conf
ファイルの内容を出力します。
sudo cat /var/opt/mssql/mssql.conf
このファイルで示されていないすべての設定については、既定値が使用されます。 次のセクションで、mssql.conf
ファイルのサンプルを示します。
さまざまなオプションを表示する
mssql-conf ユーティリティを使用して構成できるさまざまなオプションを表示するには、次の help
コマンドを実行します。
sudo /opt/mssql/bin/mssql-conf --help
この結果から、さまざまな構成オプションと、各設定の簡単な説明が得られます。
mssql.conf format
次の /var/opt/mssql/mssql.conf
ファイルで各設定の例を示します。 この形式を使用すると、必要に応じて mssql.conf
ファイルに手動で変更を加えることができます。 ファイルを手動で変更する場合は、変更を適用する前に SQL Server を再起動する必要があります。 Docker で mssql.conf
ファイルを使用するには、Docker がデータを保持している必要があります。 まず、完全な mssql.conf
ファイルをホスト ディレクトリに追加してから、コンテナーを実行します。 この例は、「SQL Server on Linux の使用状況と診断データの収集を構成する」にあります。
[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
関連するコンテンツ
- Linux 上で環境変数を使って SQL Server の設定を構成する
- SQL Server on Linux を管理するための適切なツールの選択
- SQL Server Linux コンテナーの構成およびカスタマイズ
SQL ドキュメントへの投稿
SQL コンテンツを自分で編集できることはご存じですか。 これにより、ドキュメントが改善されるだけでなく、ページの共同作成者としてもクレジットされます。
詳細については、「SQL Server のドキュメントに投稿する方法」を参照してください。