RDS for PostgreSQL DB インスタンスでのパラメータの使用
場合によっては、カスタムパラメータグループを指定せずに RDS for PostgreSQL DB インスタンスを作成することがあります。その場合、DB インスタンスは、選択したバージョンの PostgreSQL のデフォルトのパラメータグループを使用して作成されます。例えば、PostgreSQL 13.3 を使用して PostgreSQL DB インスタンス用の RDS を作成するとします。この場合、DB インスタンスは PostgreSQL 13 リリースのパラメータグループの値 default.postgres13
を使用して作成されます。
独自のカスタム DB パラメータグループを作成することもできます。RDS for PostgreSQL DB インスタンスの設定をデフォルト値から変更する場合は、これを実行する必要があります。この方法の詳細は、Amazon RDS のパラメータグループを参照してください。
RDS for PostgreSQL DB インスタンスの設定は、いくつかの異なる方法で追跡できます。AWS Management Console、AWS CLI、または Amazon RDS API を使用できます。次のように、インスタンスの PostgreSQL pg_settings
テーブルから値をクエリすることもできます。
SELECT name, setting, boot_val, reset_val, unit FROM pg_settings ORDER BY name;
このクエリから返される値の詳細については、PostgreSQL ドキュメントの「pg_settings
RDS for PostgreSQL DB インスタンスで max_connections
と shared_buffers
の設定を変更するときは、特に注意してください。例えば、max_connections
または shared_buffers
の設定を変更し、実際のワークロードに対して高すぎる値を使用するとします。この場合、RDS for PostgreSQL DB インスタンスは起動しません。この場合、postgres.log
に次のようなエラーが表示されます。
2018-09-18 21:13:15 UTC::@:[8097]:FATAL: could not map anonymous shared memory: Cannot allocate memory
2018-09-18 21:13:15 UTC::@:[8097]:HINT: This error usually means that PostgreSQL's request for a shared memory segment
exceeded available memory or swap space. To reduce the request size (currently 3514134274048 bytes), reduce
PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
ただし、デフォルトの RDS for PostgreSQL DB パラメータグループに含まれる設定の値は変更できません。パラメータの設定を変更するには、まずカスタム DB パラメータグループを作成します。次に、そのカスタムグループの設定を変更し、カスタムパラメータグループを RDS for PostgreSQL DB インスタンスに適用します。詳細については、「Amazon RDS のパラメータグループ」を参照してください。
RDS for PostgreSQL には、2 種類のパラメータがあります。
静的パラメータ – 静的パラメータでは、変更後に RDS for PostgreSQL DB インスタンスを再起動して、新しい値を有効にする必要があります。
動的パラメータ – 動的パラメータでは、設定を変更した後に再起動する必要はありません。
注記
RDS for PostgreSQL DB インスタンスで独自のカスタム DB パラメータグループを使用している場合は、実行中の DB インスタンスの動的パラメータの値を変更できます。これを行うには、AWS Management Console、AWS CLI、または Amazon RDS API を使用します。
権限がある場合は、ALTER
DATABASE
、ALTER ROLE
、および SET
コマンドを使用して、パラメータ値を変更することもできます。
RDS for PostgreSQL DB インスタンスのパラメータのリスト
RDS for PostgreSQL DB インスタンスで使用可能なパラメータの一部 (すべてではありません) を次の表に示します。使用可能なすべてのパラメータを表示するには、describe-db-parametersAWS CLI コマンドを使用します。例えば、RDS for PostgreSQL バージョン 13 のデフォルトパラメータグループで使用可能なすべてのパラメータのリストを取得するには、以下を実行します。
aws rds describe-db-parameters --db-parameter-group-name default.postgres13
コンソールを使用することもできます。Amazon RDS メニューから [Parameter groups] (パラメータグループ) を選択し、AWS リージョン で利用できるパラメータグループの中からパラメータグループを選択します。
パラメータ名 |
Apply_Type |
説明 |
---|---|---|
|
動的 | 統計情報とログで報告されるアプリケーション名を設定します。 |
|
動的 | WAL ファイルをアーカイブするために呼び出されるシェルコマンドを設定します。 |
|
動的 | 配列での NULL 要素の入力を有効にします。 |
|
動的 | クライアント認証の実行で許可する最大時間を設定します。 |
|
動的 | autovacuum サブプロセスを起動します。 |
|
動的 | 分析する前のタプルの挿入、更新、削除の数 (reltuples の割合として指定)。 |
|
動的 | 分析する前のタプルの挿入、更新、削除の最小数。 |
|
静的 | トランザクション ID の循環を防ぐためにテーブルに対して autovacuum を実行する期間。 |
|
動的 | autovacuum の実行の間で休止状態になっている時間。 |
|
静的 | 同時に実行される autovacuum ワーカープロセスの最大数を設定します。 |
|
動的 | autovacuum でのバキューム処理のコスト遅延の値 (ミリ秒単位)。 |
|
動的 | autovacuum でバキューム処理を停止する制限値となるバキューム処理のコスト |
|
動的 | バキューム処理する前のタプルの更新または削除の数 (reltuples の割合として指定)。 |
|
動的 | バキューム処理する前のタプルの更新また削除の最小数。 |
|
動的 | 文字列リテラルでバックスラッシュ (\) を許可するかどうかを指定します。 |
|
動的 | ラウンド間でのバックグラウンドライターの休止時間。 |
|
動的 | ラウンドあたりのフラッシュするバックグラウンドライター LRU ページの最大数。 |
|
動的 | ラウンドあたりの解放される平均バッファ使用量の倍数。 |
|
動的 | バイトの出力形式を設定します。 |
|
動的 | CREATE FUNCTION の実行中に関数の本文をチェックします。 |
|
動的 | チェックポイント中にダーティバッファのフラッシュにかかった時間 (チェックポイント間隔の割合として指定)。 |
|
動的 | 自動 WAL (ログ先行書き込み) チェックポイント間のログセグメントの最大間隔を設定します。 |
|
動的 | 自動 WAL チェックポイント間の最大時間を設定します。 |
|
動的 | チェックポイントセグメントがこの値よりも頻繁に満杯になる場合に警告を出します。 |
|
動的 | クエリ実行中の切断を確認する時間間隔を設定します。 |
|
動的 | クライアントの文字セットエンコードを設定します。 |
|
動的 | クライアントへ送信されるメッセージレベルを設定します。 |
|
動的 | トランザクションのコミットからディスクへの WAL のフラッシュまでの遅延間隔をマイクロ秒単位で設定します。 |
|
動的 | commit_delay を実行する前に同時に開いている必要があるトランザクションの最小数を設定します。 |
|
動的 | クエリを最適化するために、プランナーが制約を使用できるようにします。 |
|
動的 | インデックススキャンの実行中に各インデックスエントリを処理する際にかかるコストに対するプランナーの見積もりを設定します。 |
|
動的 | 演算子の呼び出しや関数呼び出しのそれぞれを処理する際にかかるコストに対するプランナーの見積もりを設定します。 |
|
動的 | 各タプル (行) の処理にかかるコストに対するプランナーの見積もりを設定します。 |
|
動的 | 取得されるカーソル行の割合に対するプランナーの見積もりを設定します。 |
|
動的 | 日付と時刻の値の表示形式を設定します。 |
|
動的 | デッドロックをチェックするまでロックを待機する時間を設定します。 |
|
動的 | 分析ツリーや計画ツリーの表示をインデントして見やすくします。 |
|
動的 | 各クエリの分析ツリーをログに記録します。 |
|
動的 | 各クエリの実行計画をログに記録します。 |
|
動的 | 各クエリの書き直された分析ツリーをログに記録します。 |
|
動的 | デフォルトの統計情報の対象を設定します。 |
|
動的 | テーブルとインデックスを作成するためのデフォルトのテーブルスペースを設定します。 |
|
動的 | 新しいトランザクションのデフォルトの遅延ステータスを設定します。 |
|
動的 | 新しい各トランザクションのトランザクション分離レベルを設定します。 |
|
動的 | 新しいトランザクションのデフォルトの読み取り専用ステータスを設定します。 |
|
動的 | デフォルトでオブジェクト ID (OID) を使用して新しいテーブルを作成します。 |
|
動的 | ディスクキャッシュのサイズに関するプランナーの予測を設定します。 |
|
動的 | ディスクサブシステムで効率的に処理できる同時リクエストの数。 |
|
動的 | プランナーがビットマップスキャン計画を使用できるようにします。 |
|
動的 | プランナーがハッシュされた集計計画を使用できるようにします。 |
|
動的 | プランナーがハッシュ結合計画を使用できるようにします。 |
|
動的 | プランナーがインデックススキャン計画を使用できるようにします。 |
|
動的 | プランナーがマテリアル化を使用できるようにします。 |
|
動的 | プランナーがマージ結合計画を使用できるようにします。 |
|
動的 | プランナーがネステッドループ結合計画を使用できるようにします。 |
|
動的 | プランナーがシーケンシャルスキャン計画を使用できるようにします。 |
|
動的 | プランナーが明示的なソートステップを使用できるようにします。 |
|
動的 | プランナーが TID スキャン計画を使用できるようにします。 |
|
動的 | 通常の文字列リテラルにバックスラッシュ (\) が含まれている場合に警告を出します。 |
|
動的 | 浮動小数点値の表示桁数を設定します。 |
|
動的 | FROM リストのサイズを設定します。この値を超えるとサブクエリが折りたたまれなくなります。 |
|
動的 | ディスクへの更新の同期を強制的に行います。 |
|
動的 | チェックポイントの後でページに初期の変更を加えた時点で、WAL にすべてのページを書き込みます。 |
|
動的 | 遺伝的クエリ最適化を有効にします。 |
|
動的 | GEQO: 他の GEQO パラメータのデフォルト値を設定するために使用されます。 |
|
動的 | GEQO: アルゴリズムの反復の数。 |
|
動的 | GEQO: 母集団内の個体の数。 |
|
動的 | GEQO: 無作為のパスを選択するための初期値。 |
|
動的 | GEQO: 母集団内の選択圧。 |
|
動的 | FROM 項目のしきい値を設定します。この値を超えると GEQO が使用されます。 |
|
動的 | GIN による完全一致検索で許可される結果の最大数を設定します。 |
|
動的 | ホットスタンバイがフィードバックメッセージをプライマリあるいはアップストリーミングスタンバイに送信するかを決定します。 |
|
動的 | 間隔値の表示形式を設定します。 |
|
動的 | FROM リストのサイズを設定します。この値を超えると JOIN 構造が平坦化されなくなります。 |
|
動的 | メッセージを表示する言語を設定します。 |
|
動的 | 金額の書式のロケールを設定します。 |
|
動的 | 数値の書式のロケールを設定します。 |
|
動的 | 日付と時刻の書式のロケールを設定します。 |
|
動的 | autovacuum に関する最小実行時間を設定します。この値を超えると autovacuum アクションがログに記録されます。 |
|
動的 | 各チェックポイントをログに記録します。 |
|
動的 | 成功した各接続をログに記録します。 |
|
動的 | セッションの終了をログに記録します (セッションの有効期間も含まれます)。 |
|
動的 | 完了した各 SQL ステートメントの期間をログに記録します。 |
|
動的 | ログに記録されるメッセージの詳細を設定します。 |
|
動的 | 実行プログラムのパフォーマンスの統計情報をサーバーログに書き込みます。 |
|
動的 | ログファイルのファイル名のパターンを設定します。 |
|
動的 | ログファイルのファイルアクセス許可を設定します。デフォルト値は 0644 です。 |
|
動的 | 接続ログにホスト名を記録します。PostgreSQL 12 以降のバージョンでは、このパラメータはデフォルトで「off」になっています。オンにすると、接続は DNS 逆引き参照を使用してホスト名を取得し、接続ログに取り込まれます。このパラメータをオンにする場合は、接続の確立にかかる時間への影響をモニタリングする必要があります。 |
|
動的 | 各ログ行の先頭に付ける情報を制御します。 |
|
動的 | 長期間にわたるロックの待機をログに記録します。 |
|
動的 | 最小実行時間を設定します。この値を超えるとステートメントがログに記録されます。 |
|
動的 | 設定したレベル以上のエラーが発生したすべてのステートメントをログに記録します。 |
|
動的 | ログに記録するメッセージレベルを設定します。 |
|
動的 | 分析のパフォーマンスの統計情報をサーバーログに書き込みます。 |
|
動的 | プランナーのパフォーマンスの統計情報をサーバーログに書き込みます。 |
|
動的 | N 分が経過するとログファイルのローテーションが自動的に発生します。 |
|
動的 | N キロバイトを超えるとログファイルのローテーションが自動的に発生します。 |
|
動的 | ログに記録するステートメントのタイプを設定します。 |
|
動的 | 累積処理のパフォーマンスの統計情報をサーバーログに書き込みます。 |
|
動的 | 指定したサイズ (キロバイト) を超えるテンポラリファイルの使用をログに記録します。 |
|
動的 | ログメッセージで使用するタイムゾーンを設定します。 |
|
動的 | ログローテーション中に同じ名前の既存のログファイルを切り捨てます。 |
|
静的 | サブプロセスを開始して、stderr 出力や csvlogs をログファイルにキャプチャします。 |
|
動的 | メンテナンスオペレーションに使用するメモリの最大量を設定します。 |
|
静的 | 同時接続の最大数を設定します。 |
|
静的 | 各サーバープロセスで同時に開くことができるファイルの最大数を設定します。 |
|
静的 | トランザクションあたりのロックの最大数を設定します。 |
|
静的 | トランザクションあたりの述語ロックの最大数を設定します。 |
|
静的 | 同時に準備できるトランザクションの最大数を設定します。 |
|
動的 | スタックの深度の最大値をキロバイト単位で指定します。 |
|
動的 | ホットスタンバイサーバーがアーカイブされた WAL データを処理しているときにクエリをキャンセルするまでの最大遅延間隔を設定します。 |
|
動的 | ホットスタンバイサーバーがストリーミングされた WAL データを処理しているときにクエリをキャンセルするまでの最大遅延間隔を設定します。 |
max_wal_size |
動的 | チェックポイントをトリガーする WAL サイズ (MB) を設定します。RDS for PostgreSQL 10 以降のすべてのバージョンでは、デフォルトは 1 GB (1024 MB) 以上です。例えば、RDS for PostgreSQL 14 の max_wal_size 設定は 2 GB (2048 MB) です。RDS for PostgreSQL DB インスタンスで SHOW max_wal_size; コマンドを実行して現在の値を確認します。 |
min_wal_size |
動的 | WAL を縮小する最小サイズを設定します。PostgreSQL バージョン 9.6 以前の場合、min_wal_size の単位は 16 MB です。PostgreSQL バージョン 10 以降の場合、min_wal_size の単位は 1 MB です。 |
|
動的 | SQL フラグメントを生成するときに、すべての識別子に引用符 (") を追加します。 |
|
動的 | 非連続的に取得されたディスクページのコストに対するプランナーの見積もりを設定します。クエリプラン管理 (QPM) がオンでない限り、このパラメータには値はありません。QPM がオンの場合、このパラメータ 4 はデフォルト値です。 |
rds.adaptive_autovacuum |
動的 | トランザクション ID のしきい値を超えるたびに、autovacuum パラメータを自動的に微調整します。 |
rds.force_ssl |
動的 | SSL 接続を使用する必要があります。PostgreSQL バージョン 15 の RDS では、デフォルト値は 1 (オン) に設定されています。PostgreSQL のメジャーバージョン 14 以前のその他すべての RDS では、デフォルト値が 0 (オフ) に設定されています。 |
|
静的 | ローカルボリュームへの論理スピルファイルの書き込みを有効にします。 |
|
動的 | n 分より古い PostgreSQL ログは Amazon RDS で削除されるようにログ保持期間を設定します。 |
rds.rds_superuser_reserved_connections |
静的 | rds_superusers 用に予約されている接続スロットの数を設定します。このパラメータは、バージョン 15 以前でのみ使用できます。詳細については、PostgreSQL ドキュメントの「reserved_connections |
rds.restrict_password_commands |
静的 | rds_password ロールを持つユーザーに対して、だれがパスワードを管理するかを制限します。パスワードの制限を有効にするには、このパラメータを 1 に設定します。デフォルトは 0 です。 |
|
動的 | スキーマによって修飾されていない名前でスキーマを検索する順序を設定します。 |
|
動的 | 連続的に取得されたディスクページのコストに対するプランナーの見積もりを設定します。 |
|
動的 | トリガーと再書き込みルールに対するセッション動作を設定します。 |
|
静的 | サーバーで使用される共有メモリバッファの数を設定します。 |
|
静的 | RDS for PostgreSQL DB インスタンスにプリロードする共有ライブラリをリストします。サポートされている値は、auto_explain、orafce、pgaudit、pglogical、pg_bigm、pg_cron、pg_hint_plan、pg_prewarm、pg_similarity、pg_stat_statements、pg_transport、plprofiler、および plrust です。 |
|
動的 | SSL 接続を有効にします。 |
|
動的 | さまざまなコマンドにデフォルトでサブテーブルが取り込まれます。 |
|
動的 | 暗号化キーを再度ネゴシエートする前に送受信されるトラフィックの量を設定します。 |
|
動的 | ... 文字列をリテラルのバックスラッシュとして扱います。 |
|
動的 | すべてのステートメントに許可される最大実行時間を設定します。 |
|
動的 | シーケンシャルスキャンの同期を有効にします。 |
|
動的 | 現在のトランザクションの同期レベルを設定します。 |
|
動的 | TCP キープアライブを再送信する最大回数。 |
|
動的 | TCP キープアライブを発行する間隔の時間。 |
|
動的 | TCP キープアライブを再送信する間隔の時間。 |
|
動的 | 各セッションで使用されるテンポラリバッファの最大数を設定します。 |
temp_file_limit |
動的 | テンポラリファイルの最大サイズを KB 単位で設定します。 |
|
動的 | テンポラリテーブルとソートファイルで使用するテーブルスペースを設定します。 |
|
動的 | 表示やタイムスタンプの解釈で必要となるタイムゾーンを設定します。 Internet Assigned Numbers Authority (IANA) は年に数回、https://www.iana.org/time-zones |
|
動的 | コマンドの実行に関する情報を収集します。 |
|
静的 | pg_stat_activity.current_query 用に予約するサイズをバイト単位で設定します。 |
|
動的 | データベースアクティビティの統計情報を収集します。 |
|
動的 | データベースアクティビティの関数レベルの統計情報を収集します。 |
|
動的 | データベース I/O アクティビティのタイミングに関する統計情報を収集します。 |
|
動的 | 読み取り専用のシリアル化可能なトランザクションを、シリアル化が失敗する可能性がない状況でスタートできるようになるまで延期するかどうかを示します。 |
|
動的 | 現在のトランザクションの分離レベルを設定します。 |
|
動的 | 現在のトランザクションの読み取り専用ステータスを設定します。 |
|
動的 | expr=NULL を expr IS NULL として扱います。 |
|
動的 | アクティブな SQL コマンドを表示するようにプロセスのタイトルを更新します。 |
|
動的 | バキューム処理のコスト遅延の値 (ミリ秒単位)。 |
|
動的 | バキューム処理を停止する制限値となるバキューム処理のコスト。 |
|
動的 | バキューム処理によってダーティになったページに対するバキューム処理のコスト。 |
|
動的 | バッファキャッシュ内で検出されたページに対するバキューム処理のコスト。 |
|
動的 | バッファキャッシュ内で検出されなかったページに対するバキューム処理のコスト。 |
|
動的 | バキューム処理とホットクリーンアップが延期されるトランザクションの数 (存在する場合)。 |
|
動的 | バキューム処理でテーブルの行をフリーズする最小期間。 |
|
動的 | バキューム処理でテーブル全体をスキャンしタプルをフリーズするための期間。 |
|
静的 | WAL 用の共有メモリ内のディスクページバッファの数を設定します。 |
|
動的 | WAL のフラッシュが行われる間の WAL ライターの休止時間。 |
|
動的 | クエリワークスペースに使用するメモリの最大量を設定します。 |
|
動的 | バイナリ値を XML にエンコードする方法を設定します。 |
|
動的 | 黙示的な分析とシリアル化オペレーションでの XML データをドキュメントとして見なすか、コンテンツのフラグメントとして見なすかを設定します。 |
Amazon RDS では、すべてのパラメータについて PostgreSQL のデフォルトの単位を使用します。次の表は、PostgreSQL のパラメータ別のデフォルト単位を示しています。
パラメータ名 |
単位 |
---|---|
| s |
| s |
| s |
| ms |
| ms |
| s |
| s |
| ms |
| 8 KB |
| ms |
| ms |
| ms |
| minutes |
| KB |
| KB |
| KB |
| KB |
| ms |
| ms |
| s |
| s |
| 8 KB |
| 8 KB |
| ms |
| KB |
| s |
| s |
| KB |
| KB |
| 8 KB |
| ms |
| 8 KB |
| ms |
| B |
| ms |
| ms |
| s |