Azure Database for PostgreSQL - フレキシブル サーバーでのサーバー パラメーターの構成
- [アーティクル]
-
-
適用対象: Azure Database for PostgreSQL - フレキシブル サーバー
Azure Database for PostgreSQL フレキシブル サーバー インスタンスの構成パラメーターを一覧表示、表示、更新できます。
クラスターのカスタマイズ
さまざまなメソッドとレベルを使用して、特定のニーズに応じてパラメータをカスタマイズできます。
グローバル レベル
サーバー パラメーターの現在の構成値を表示したり、インスタンス レベルまたはサーバー レベルでグローバルに変更したりするには、Azure portal の [サーバー パラメーター] ページを使用できます。 また、CLI、REST API、Azure Resource Manager テンプレート、またはサード パーティの IaC ツールを使用して、サーバー パラメーターをグローバルに操作することもできます。
Note
Azure Database for PostgreSQL はマネージド データベース サービスであるため、ユーザーは、postgresql.conf などの構成ファイルを表示または変更するためにホストやオペレーティング システムにアクセスできません。 ファイルの内容は、パラメーターに加えた変更に基づいて自動的に更新されます。
この記事では、サーバー パラメーターをグローバルに操作して次の処理を実行する方法のセクションを参照できます。
詳細なレベル
より詳細なレベルでパラメーターを調整できます。 これらの調整はグローバルに設定された値をオーバーライドできます。 そのスコープと期間は、行われるレベルによって異なります。
データベース レベル: データベース固有の構成に ALTER DATABASE
コマンドを使用します。
ロールまたはユーザー レベル: ユーザー中心の設定には、ALTER USER
コマンドを使用します。
関数、プロシージャ レベル: 関数またはプロシージャを定義するときに、関数の呼び出し時に設定される構成パラメーターを指定または変更できます。
テーブル レベル: たとえば、このレベルで自動バキュームに関連するパラメータを変更できます。
セッション レベル: 個々のデータベース セッションの期間中、特定のパラメーターを調整できます。 PostgreSQL では、次の SQL コマンドを使用してこの調整を促進します。
SET
コマンドを使用して、セッション固有の調整を行います。 これらの変更は、現在のセッション中に既定の設定として機能します。 これらの変更にアクセスするには、特定の SET
特権が必要な場合があり、前述の変更可能および読み取り専用のパラメーターに関する制限は適用されません。 対応する SQL 関数は set_config(setting_name, new_value, is_local)
です。
SHOW
コマンドを使用して、既存のパラメーター設定を調べます。 同等の SQL 関数は current_setting(setting_name text)
です。
すべてのサーバー パラメーターを一覧表示する
Azure portal を使用して以下を実行します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
リソース メニューの [設定] セクションで、[サーバー パラメーター] を選択します。 このページには、パラメーター、その構成値、省略可能な単位、読み取り専用、動的、静的のいずれか、それらの説明の一覧が表示されます。
[i] (情報) アイコンを選択するか、マウス ポインターを合わせると、各パラメーターに設定できる値が表示されます。 パラメーターのデータ型 (string、enumeration、integer、boolean、numeric、set) に応じて、使用できる値は異なります。 また、それぞれ、正規表現、値の一覧、整数の範囲、オン/オフ、小数の範囲、値の一覧にすることができます。
インスタンスでサポートされるサーバー パラメーターの一覧は数百の項目で構成され、20 項目ごとのページに表示されます。 ページの下部には、現在の位置を示すコントロールがあります。 ページのセット全体を操作する際に使用できるページング コントロールもあります。
必要に応じて、[検索して項目をフィルター処理してください] テキスト ボックスを使用して、名前または説明に検索語を含むパラメーターのみに一覧を絞り込みます。
[パラメーターの種類] 列には、各パラメーターの次の値のいずれかが表示されます。
パラメーターのタイプ |
説明 |
Static |
変更を有効にするには、サーバーを再起動する必要があります。 |
動的 |
サーバー インスタンスを再起動しなくても変更できます。 ただし、変更は、変更後に確立された新しい接続にのみ適用されます。 |
読み取り専用 |
サービスの信頼性、セキュリティ、またはその他の運用面を維持する上で重要な役割を果たしているため、ユーザーは構成できません。 |
az postgres flexible-server parameter list コマンドを使用して、サーバー内のすべてのサーバー パラメーターを一覧表示できます。
az postgres flexible-server parameter list --resource-group <resource_group> --server-name <server>
各パラメーターには次の属性があります。
Attribute name |
説明 |
有効値 |
allowedValues |
パラメーターに使用できる値について説明します。 |
dataType の値に応じて、正規表現 (string)、値の一覧 (enumeration)、整数の範囲 (integer)、オン/オフ (boolean)、小数の範囲 (numeric)、値の一覧 (set) を指定できます。 |
データ型 |
パラメーターに使用されるデータの型。 |
boolean 、enumeration 、integer 、numeric 、set 、string のいずれかを指定できます。 |
defaultValue |
新しいサーバーのデプロイ時にパラメーターに割り当てられる値。 |
データ型とパラメーターの使用できる値によって異なります。 |
説明 |
パラメーターが制御する内容の簡単な説明。 |
パラメーターごとに異なるテキストの説明。 |
documentationLink |
パラメーターのドキュメントを指すページの URL アドレス。 |
何らかの形式の URL。 |
id |
フレキシブル サーバーのこの特定のインスタンスのサーバー パラメーターを一意に参照するリソース識別子。 |
パターン /subscriptions/<subscription_identifier>/resourceGroups/<resource_group_name>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<server_name>/configurations/<parameter_name> に従う文字列。 |
isConfigPendingRestart |
value 属性に現在設定されている値を有効にするには、サーバーの再起動が必要かどうかを示します。 |
true : 値が変更されたパラメーターの場合、パラメーターは動的ではない (つまり、静的である) ため、変更を有効にするにはサーバーを再起動する必要があります。 false : value 属性に現在設定されている値が有効であり、サーバーの再起動を待たずに有効になるパラメーターの場合。 |
isDynamicConfig |
パラメーターに割り当てられた値の変更がある場合、変更を有効にするにはサーバーの再起動が不要か、必要かを示します。 |
true : 値が変更されたときに、その変更がすぐに有効になるパラメーターの場合。 false : 値が変更されたときに、変更を有効にするにはサーバーの再起動が必要なパラメーターの場合。 |
isReadOnly |
パラメーターに割り当てられた既定値をユーザーがオーバーライドできるかどうかを示します。 |
true : 読み取り専用として指定され、ユーザーは変更できないパラメーターの場合。 false : 読み取り/書き込みとして指定され、ユーザーが既定値とは異なる値に設定できるパラメーターの場合。 |
name |
パラメーターの名前。 |
サーバー パラメーターの任意の有効な名前。 |
resourceGroup |
サーバーがデプロイされるリソース グループの名前。 |
Azure のリソース グループの任意の有効な名前。 |
ソース |
現在パラメーターに設定されている値のソース。 |
system-default または user-override 。これは、値がシステムの既定値に設定されているか、ユーザーがそれをオーバーライドするかによって決まります。 |
ユニット |
パラメーターを表現する単位を記述する省略可能なテキスト。 |
何かに設定する場合は、8KB 、bytes 、days 、KB 、megabytes 、microseconds 、milliseconds 、minutes 、percentage 、seconds のいずれかを使用できます。 |
value |
現在パラメーターに割り当てられている値。 |
データ型とパラメーターの使用できる値によって異なります。 |
既定値が変更されたサーバー パラメーターを一覧表示する
Azure portal を使用して以下を実行します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
リソース メニューの [設定] セクションで、[サーバー パラメーター] を選択し、[変更済み] タブを選択します。このページには、現在設定されている値が既定値とは異なるパラメーターの一覧が表示されます。
az postgres flexible-server parameter list コマンドを使用して、値が既定値から変更されたすべてのサーバー パラメーターを一覧表示できます。
az postgres flexible-server parameter list --resource-group <resource_group> --server-name <server> --query "[?value!=defaultValue && isReadOnly==\`false\` && name!='temp_tablespaces' && name!='vacuum_cost_page_miss'] | [].name"
Note
以前の CLI コマンドでは、Azure portal の [サーバー パラメーター] ページとまったく同じ条件に従い、読み取り専用として指定されている変更されているサーバー パラメーターである temp_tablespaces
と vacuum_cost_page_miss
が考慮されません。
読み取り/書き込みの静的サーバー パラメーターを一覧表示する
Azure portal を使用して以下を実行します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
リソース メニューの [設定] セクションで、[サーバー パラメーター] を選択し、[静的] タブを選択します。このページには、値が変更された場合、新しい値を有効にするためにサーバーを再起動する必要がある読み取り/書き込みパラメーターの一覧が表示されます。
az postgres flexible-server parameter list コマンドを使用すると、値の変更後に、変更を有効にするために再起動する必要があるすべてのサーバー パラメーターを一覧表示できます。
az postgres flexible-server parameter list --resource-group <resource_group> --server-name <server> --query "[?isDynamicConfig==\`false\` && isReadOnly==\`false\`] | [].name"
読み取り/書き込みの動的サーバー パラメーターを一覧表示する
Azure portal を使用して以下を実行します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
リソース メニューの [設定] セクションで、[サーバー パラメーター] を選択し、[動的] タブを選択します。このページには、値が変更された場合、新しい値を有効にするためにサーバーを再起動する必要がある読み取り/書き込みパラメーターの一覧が表示されます。
az postgres flexible-server parameter list コマンドを使用すると、値の変更後に、変更を有効にするために再起動する必要がないすべてのサーバー パラメーターを一覧表示できます。
az postgres flexible-server parameter list --resource-group <resource_group> --server-name <server> --query "[?isDynamicConfig==\`true\` && isReadOnly==\`false\`] | [].name"
読み取り専用のサーバー パラメーターを一覧表示する
Azure portal を使用して以下を実行します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
リソース メニューの [設定] セクションで、[サーバー パラメーター] を選択し、[読み取り専用] タブを選択します。このページには、読み取り専用パラメーターの一覧が表示されます。
az postgres flexible-server parameter list コマンドを使用すると、読み取り専用として指定され、ユーザーが値を変更できないすべてのサーバー パラメーターを一覧表示できます。
az postgres flexible-server parameter list --resource-group <resource_group> --server-name <server> --query "[?isReadOnly==\`true\`] | [].name"
1 つ以上のサーバー パラメーターの値を設定する
Azure portal を使用して以下を実行します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
リソース メニューの [設定] セクションで、[サーバー パラメーター] を選択します。
現在の値を変更する読み取り/書き込みパラメーターを見つけて、新しい目的の値に設定します。まだ保存されていないサーバー パラメーターの変更の数を示す情報メッセージが表示されるので、[保存] を選択します。
変更されたいずれかのパラメーターの列 [パラメーターの種類] が [静的] である場合、変更を有効にするにはサーバーを再起動する必要があります。 その場合、ダイアログがポップアップ表示され、次の操作を行うかどうかを選択できます。
- 保存と再起動: 値が変更されたすべてのパラメーターに対するすべての変更を保持し、サーバーを再起動した直後に静的パラメーターへの変更を有効にする場合。
- 保存限定: 設定値が変更されたすべてのパラメーターに対するすべての変更を保持するが、サーバーの再起動は後回しにする場合。 サーバーの再起動アクションを完了しない限り、静的なサーバー パラメーターに加えた変更は有効になりません。
- キャンセル: まだ変更を実装しない場合。
サーバー パラメーターの値は、az postgres flexible-server parameter set コマンドを使用して設定できます。
az postgres flexible-server parameter set --resource-group <resource_group> --server-name <server> --source user-override --name <parameter> --value <value>
また、変更されたパラメーターのうち、変更を有効にするには再起動が必要なものがある場合は、次のスクリプトを使用して条件付きでサーバーを再起動できます。
parameters_requiring_restart=$(az postgres flexible-server parameter list --resource-group <resource_group> --server-name <server> --query "[?isConfigPendingRestart==\`true\`] | length(@)")
if [ "$parameters_requiring_restart" -gt 0 ]; then
az postgres flexible-server restart --resource-group <resource_group> --name <server>
fi
1 つのサーバー パラメーターを既定値に戻す
Azure portal を使用して以下を実行します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
リソース メニューの [設定] セクションで、[サーバー パラメーター] を選択します。
現在の値を既定値に戻す読み取り/書き込みパラメーターを見つけて、画面の右端にある省略記号を選択し、[既定値にリセット] を選択します。
重要
読み取り専用として指定されたパラメーターの場合、省略記号を選択しても、[既定値にリセット] メニュー オプションは表示されません。
既定値にリセットしようとしているパラメーターの列 [パラメーターの種類] が [静的] である場合、変更を有効にするにはサーバーを再起動する必要があります。 その場合、ダイアログがポップアップ表示され、次の操作を行うかどうかを選択できます。
- 保存と再起動: 値が変更されたすべてのパラメーターに対するすべての変更を保持し、サーバーを再起動した直後に静的パラメーターへの変更を有効にする場合。
- 保存限定: 設定値が変更されたすべてのパラメーターに対するすべての変更を保持するが、サーバーの再起動は後回しにする場合。 サーバーの再起動アクションを完了しない限り、静的なサーバー パラメーターに加えた変更は有効になりません。
- キャンセル: まだ変更を実装しない場合。
az postgres flexible-server parameter set コマンドを使用して、サーバー パラメーターの値を既定値に戻すことができます。
az postgres flexible-server parameter set --resource-group <resource_group> --server-name <server> --source user-override --name <parameter> --value $(az postgres flexible-server parameter show --resource-group <resource_group> --server-name <server> --name <parameter> --output tsv)
また、変更されたパラメーターの変更を有効にするには再起動が必要な場合は、次のスクリプトを使用して条件付きでサーバーを再起動できます。
parameters_requiring_restart=$(az postgres flexible-server parameter list --resource-group <resource_group> --server-name <server> --query "[?isConfigPendingRestart==\`true\`] | length(@)")
if [ "$parameters_requiring_restart" -gt 0 ]; then
az postgres flexible-server restart --resource-group <resource_group> --name <server>
fi
すべてのサーバー パラメーターを既定値に戻す
Azure portal を使用して以下を実行します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
リソース メニューの [設定] セクションで、[サーバー パラメーター] を選択します。
[すべてを既定値にリセット] を選択します。
現在の値が既定値と一致しないパラメーターがあり、列 [パラメーターの種類] が [静的] である場合、変更を有効にするにはサーバーを再起動する必要があります。 その場合、ダイアログがポップアップ表示され、次の操作を行うかどうかを選択できます。
- 保存と再起動: 値が変更されたすべてのパラメーターに対するすべての変更を保持し、サーバーを再起動した直後に静的パラメーターへの変更を有効にする場合。
- 保存限定: 設定値が変更されたすべてのパラメーターに対するすべての変更を保持するが、サーバーの再起動は後回しにする場合。 サーバーの再起動アクションを完了しない限り、静的なサーバー パラメーターに加えた変更は有効になりません。
- キャンセル: まだ変更を実装しない場合。
az postgres flexible-server parameter set コマンドを使用して、すべての読み取り/書き込みサーバー パラメーターの値を既定値に戻すことができます。
parameters_to_reset=$(az postgres flexible-server parameter list --resource-group <resource_group> --server-name <server> --query "[?value!=defaultValue && isReadOnly==\`false\`].name" -o tsv)
for parameter_to_reset in $parameters_to_reset; do
az postgres flexible-server parameter set --resource-group <resource_group> --server-name <server> --name $parameter_to_reset --value $(az postgres flexible-server parameter show --resource-group <resource_group> --server-name <server> --name $parameter_to_reset --output tsv)
done
また、変更されたパラメーターのうち、変更を有効にするには再起動が必要なものがある場合は、次のスクリプトを使用して条件付きでサーバーを再起動できます。
parameters_requiring_restart=$(az postgres flexible-server parameter list --resource-group <resource_group> --server-name <server> --query "[?isConfigPendingRestart==\`true\`] | length(@)")
if [ "$parameters_requiring_restart" -gt 0 ]; then
az postgres flexible-server restart --resource-group <resource_group> --name <server>
fi
タイム ゾーン パラメーターを使用する
PostgreSQL で日付と時刻のデータを使用する予定の場合は、その場所の適切なタイム ゾーンを設定していることを確認してください。 タイム ゾーン対応のすべての日付と時刻は、PostgreSQL 内に UTC で格納されます。 それらは、クライアントに表示される前に、TimeZone サーバー パラメーターで指定されているゾーンのローカル時刻に変換されます。 このパラメーターは、[サーバー パラメーター] ページで編集できます。
PostgreSQL では、3 つの異なる形式でタイム ゾーンを指定できます。
完全なタイム ゾーン名 (例: America/New_York)。 認識されるタイム ゾーン名は、pg_timezone_names ビューに一覧表示されます。
psql でこのビューのクエリを実行し、タイム ゾーン名の一覧を取得する例:
select name FROM pg_timezone_names LIMIT 20;
次のような結果が表示されます。
name
-----------------------
GMT0
Iceland
Factory
NZ-CHAT
America/Panama
America/Fort_Nelson
America/Pangnirtung
America/Belem
America/Coral_Harbour
America/Guayaquil
America/Marigot
America/Barbados
America/Porto_Velho
America/Bogota
America/Menominee
America/Martinique
America/Asuncion
America/Toronto
America/Tortola
America/Managua
(20 rows)
タイム ゾーンの省略形 (例: PST)。 このような指定では、単に UTC からの特定のオフセットが定義されるだけであるのに対し、、完全なタイム ゾーン名の場合は、夏時間の移行日ルールのセットも表すことができます。 認識される省略形は、pg_timezone_abbrevs ビューに一覧表示されます。psql でこのビューのクエリを実行し、タイム ゾーンの省略形の一覧を取得する例:
select abbrev from pg_timezone_abbrevs limit 20;
次のような結果が表示されます。
abbrev|
------+
ACDT |
ACSST |
ACST |
ACT |
ACWST |
ADT |
AEDT |
AESST |
AEST |
AFT |
AKDT |
AKST |
ALMST |
ALMT |
AMST |
AMT |
ANAST |
ANAT |
ARST |
ART |
PostgreSQL では、タイム ゾーンの名前と省略形に加えて、STDoffset または STDoffsetDST という形式の POSIX スタイルのタイム ゾーン指定が受け入れられます。ここで、STD はゾーンの省略形、offset は UTC から西回りでのオフセット時間数の値、DST はオプションの夏時間ゾーンの省略形で、指定されたオフセットより 1 時間進むものと想定されます。
Azure Database for PostgreSQL 製品チームと提案やバグを共有します。
関連コンテンツ