RDS for PostgreSQL DB インスタンスでのパラメータの使用 - Amazon Relational Database Service

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 インスタンスの設定をデフォルト値から変更する場合は、これを実行する必要があります。この方法の詳細は、「パラメータグループを使用する」 を参照してください。

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_connectionsshared_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 インスタンスに適用します。詳細については、「「パラメータグループを使用する」 」を参照してください。

PostgreSQL DB パラメータの RDS には、2 種類があります。

  • 静的パラメータ – 静的パラメータでは、変更後に RDS for PostgreSQL DB インスタンスを再起動して、新しい値を有効にする必要があります。

  • 動的パラメータ – 動的パラメータでは、設定を変更した後に再起動する必要はありません。

注記

RDS for PostgreSQL DB インスタンスで独自のカスタム DB パラメータグループを使用している場合は、実行中の DB インスタンスの動的パラメータの値を変更できます。これを行うには、AWS Management Console、AWS CLI、または Amazon RDS API を使用します。

権限がある場合は、ALTER DATABASEALTER 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

説明

application_name

動的 統計情報とログで報告されるアプリケーション名を設定します。

archive_command

動的 WAL ファイルをアーカイブするために呼び出されるシェルコマンドを設定します。

array_nulls

動的 配列での NULL 要素の入力を有効にします。

authentication_timeout

動的 クライアント認証の実行で許可する最大時間を設定します。

autovacuum

動的 autovacuum サブプロセスを起動します。

autovacuum_analyze_scale_factor

動的 分析する前のタプルの挿入、更新、削除の数 (reltuples の割合として指定)。

autovacuum_analyze_threshold

動的 分析する前のタプルの挿入、更新、削除の最小数。

autovacuum_freeze_max_age

静的 トランザクション ID の循環を防ぐためにテーブルに対して autovacuum を実行する期間。

autovacuum_naptime

動的 autovacuum の実行の間で休止状態になっている時間。

autovacuum_max_workers

静的 同時に実行される autovacuum ワーカープロセスの最大数を設定します。

autovacuum_vacuum_cost_delay

動的 autovacuum でのバキューム処理のコスト遅延の値 (ミリ秒単位)。

autovacuum_vacuum_cost_limit

動的 autovacuum でバキューム処理を停止する制限値となるバキューム処理のコスト

autovacuum_vacuum_scale_factor

動的 バキューム処理する前のタプルの更新または削除の数 (reltuples の割合として指定)。

autovacuum_vacuum_threshold

動的 バキューム処理する前のタプルの更新また削除の最小数。

backslash_quote

動的 文字列リテラルでバックスラッシュ (\) を許可するかどうかを指定します。

bgwriter_delay

動的 ラウンド間でのバックグラウンドライターの休止時間。

bgwriter_lru_maxpages

動的 ラウンドあたりのフラッシュするバックグラウンドライター LRU ページの最大数。

bgwriter_lru_multiplier

動的 ラウンドあたりの解放される平均バッファ使用量の倍数。

bytea_output

動的 バイトの出力形式を設定します。

check_function_bodies

動的 CREATE FUNCTION の実行中に関数の本文をチェックします。

checkpoint_completion_target

動的 チェックポイント中にダーティバッファのフラッシュにかかった時間 (チェックポイント間隔の割合として指定)。

checkpoint_segments

動的 自動 WAL (ログ先行書き込み) チェックポイント間のログセグメントの最大間隔を設定します。

checkpoint_timeout

動的 自動 WAL チェックポイント間の最大時間を設定します。

checkpoint_warning

動的 チェックポイントセグメントがこの値よりも頻繁に満杯になる場合に警告を出します。

client_connection_check_interval

動的 クエリ実行中の切断を確認する時間間隔を設定します。

client_encoding

動的 クライアントの文字セットエンコードを設定します。

client_min_messages

動的 クライアントへ送信されるメッセージレベルを設定します。

commit_delay

動的 トランザクションのコミットからディスクへの WAL のフラッシュまでの遅延間隔をマイクロ秒単位で設定します。

commit_siblings

動的 commit_delay を実行する前に同時に開いている必要があるトランザクションの最小数を設定します。

constraint_exclusion

動的 クエリを最適化するために、プランナーが制約を使用できるようにします。

cpu_index_tuple_cost

動的 インデックススキャンの実行中に各インデックスエントリを処理する際にかかるコストに対するプランナーの見積もりを設定します。

cpu_operator_cost

動的 演算子の呼び出しや関数呼び出しのそれぞれを処理する際にかかるコストに対するプランナーの見積もりを設定します。

cpu_tuple_cost

動的 各タプル (行) の処理にかかるコストに対するプランナーの見積もりを設定します。

cursor_tuple_fraction

動的 取得されるカーソル行の割合に対するプランナーの見積もりを設定します。

datestyle

動的 日付と時刻の値の表示形式を設定します。

deadlock_timeout

動的 デッドロックをチェックするまでロックを待機する時間を設定します。

debug_pretty_print

動的 分析ツリーや計画ツリーの表示をインデントして見やすくします。

debug_print_parse

動的 各クエリの分析ツリーをログに記録します。

debug_print_plan

動的 各クエリの実行計画をログに記録します。

debug_print_rewritten

動的 各クエリの書き直された分析ツリーをログに記録します。

default_statistics_target

動的 デフォルトの統計情報の対象を設定します。

default_tablespace

動的 テーブルとインデックスを作成するためのデフォルトのテーブルスペースを設定します。

default_transaction_deferrable

動的 新しいトランザクションのデフォルトの遅延ステータスを設定します。

default_transaction_isolation

動的 新しい各トランザクションのトランザクション分離レベルを設定します。

default_transaction_read_only

動的 新しいトランザクションのデフォルトの読み取り専用ステータスを設定します。

default_with_oids

動的 デフォルトでオブジェクト ID (OID) を使用して新しいテーブルを作成します。

effective_cache_size

動的 ディスクキャッシュのサイズに関するプランナーの予測を設定します。

effective_io_concurrency

動的 ディスクサブシステムで効率的に処理できる同時リクエストの数。

enable_bitmapscan

動的 プランナーがビットマップスキャン計画を使用できるようにします。

enable_hashagg

動的 プランナーがハッシュされた集計計画を使用できるようにします。

enable_hashjoin

動的 プランナーがハッシュ結合計画を使用できるようにします。

enable_indexscan

動的 プランナーがインデックススキャン計画を使用できるようにします。

enable_material

動的 プランナーがマテリアル化を使用できるようにします。

enable_mergejoin

動的 プランナーがマージ結合計画を使用できるようにします。

enable_nestloop

動的 プランナーがネステッドループ結合計画を使用できるようにします。

enable_seqscan

動的 プランナーがシーケンシャルスキャン計画を使用できるようにします。

enable_sort

動的 プランナーが明示的なソートステップを使用できるようにします。

enable_tidscan

動的 プランナーが TID スキャン計画を使用できるようにします。

escape_string_warning

動的 通常の文字列リテラルにバックスラッシュ (\) が含まれている場合に警告を出します。

extra_float_digits

動的 浮動小数点値の表示桁数を設定します。

from_collapse_limit

動的 FROM リストのサイズを設定します。この値を超えるとサブクエリが折りたたまれなくなります。

fsync

動的 ディスクへの更新の同期を強制的に行います。

full_page_writes

動的 チェックポイントの後でページに初期の変更を加えた時点で、WAL にすべてのページを書き込みます。

geqo

動的 遺伝的クエリ最適化を有効にします。

geqo_effort

動的 GEQO: 他の GEQO パラメータのデフォルト値を設定するために使用されます。

geqo_generations

動的 GEQO: アルゴリズムの反復の数。

geqo_pool_size

動的 GEQO: 母集団内の個体の数。

geqo_seed

動的 GEQO: 無作為のパスを選択するための初期値。

geqo_selection_bias

動的 GEQO: 母集団内の選択圧。

geqo_threshold

動的 FROM 項目のしきい値を設定します。この値を超えると GEQO が使用されます。

gin_fuzzy_search_limit

動的 GIN による完全一致検索で許可される結果の最大数を設定します。

hot_standby_feedback

動的 ホットスタンバイがフィードバックメッセージをプライマリあるいはアップストリーミングスタンバイに送信するかを決定します。

intervalstyle

動的 間隔値の表示形式を設定します。

join_collapse_limit

動的 FROM リストのサイズを設定します。この値を超えると JOIN 構造が平坦化されなくなります。

lc_messages

動的 メッセージを表示する言語を設定します。

lc_monetary

動的 金額の書式のロケールを設定します。

lc_numeric

動的 数値の書式のロケールを設定します。

lc_time

動的 日付と時刻の書式のロケールを設定します。

log_autovacuum_min_duration

動的 autovacuum に関する最小実行時間を設定します。この値を超えると autovacuum アクションがログに記録されます。

log_checkpoints

動的 各チェックポイントをログに記録します。

log_connections

動的 成功した各接続をログに記録します。

log_disconnections

動的 セッションの終了をログに記録します (セッションの有効期間も含まれます)。

log_duration

動的 完了した各 SQL ステートメントの期間をログに記録します。

log_error_verbosity

動的 ログに記録されるメッセージの詳細を設定します。

log_executor_stats

動的 実行プログラムのパフォーマンスの統計情報をサーバーログに書き込みます。

log_filename

動的 ログファイルのファイル名のパターンを設定します。

log_file_mode

動的 ログファイルのファイルアクセス許可を設定します。デフォルト値は 0644 です。

log_hostname

動的 接続ログにホスト名を記録します。PostgreSQL 12 以降のバージョンでは、このパラメータはデフォルトで「off」になっています。オンにすると、接続は DNS 逆引き参照を使用してホスト名を取得し、接続ログに取り込まれます。このパラメータをオンにする場合は、接続の確立にかかる時間への影響をモニタリングする必要があります。

log_line_prefix

動的 各ログ行の先頭に付ける情報を制御します。

log_lock_waits

動的 長期間にわたるロックの待機をログに記録します。

log_min_duration_statement

動的 最小実行時間を設定します。この値を超えるとステートメントがログに記録されます。

log_min_error_statement

動的 設定したレベル以上のエラーが発生したすべてのステートメントをログに記録します。

log_min_messages

動的 ログに記録するメッセージレベルを設定します。

log_parser_stats

動的 分析のパフォーマンスの統計情報をサーバーログに書き込みます。

log_planner_stats

動的 プランナーのパフォーマンスの統計情報をサーバーログに書き込みます。

log_rotation_age

動的 N 分が経過するとログファイルのローテーションが自動的に発生します。

log_rotation_size

動的 N キロバイトを超えるとログファイルのローテーションが自動的に発生します。

log_statement

動的 ログに記録するステートメントのタイプを設定します。

log_statement_stats

動的 累積処理のパフォーマンスの統計情報をサーバーログに書き込みます。

log_temp_files

動的 指定したサイズ (キロバイト) を超えるテンポラリファイルの使用をログに記録します。

log_timezone

動的 ログメッセージで使用するタイムゾーンを設定します。

log_truncate_on_rotation

動的 ログローテーション中に同じ名前の既存のログファイルを切り捨てます。

logging_collector

静的 サブプロセスを開始して、stderr 出力や csvlogs をログファイルにキャプチャします。

maintenance_work_mem

動的 メンテナンスオペレーションに使用するメモリの最大量を設定します。

max_connections

静的 同時接続の最大数を設定します。

max_files_per_process

静的 各サーバープロセスで同時に開くことができるファイルの最大数を設定します。

max_locks_per_transaction

静的 トランザクションあたりのロックの最大数を設定します。

max_pred_locks_per_transaction

静的 トランザクションあたりの述語ロックの最大数を設定します。

max_prepared_transactions

静的 同時に準備できるトランザクションの最大数を設定します。

max_stack_depth

動的 スタックの深度の最大値をキロバイト単位で指定します。

max_standby_archive_delay

動的 ホットスタンバイサーバーがアーカイブされた WAL データを処理しているときにクエリをキャンセルするまでの最大遅延間隔を設定します。

max_standby_streaming_delay

動的 ホットスタンバイサーバーがストリーミングされた 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 です。

quote_all_identifiers

動的 SQL フラグメントを生成するときに、すべての識別子に引用符 (") を追加します。

random_page_cost

動的 非連続的に取得されたディスクページのコストに対するプランナーの見積もりを設定します。クエリプラン管理 (QPM) がオンでない限り、このパラメータには値はありません。QPM がオンの場合、このパラメータ 4 はデフォルト値です。
rds.adaptive_autovacuum 動的 トランザクション ID のしきい値を超えるたびに、autovacuum パラメータを自動的に微調整します。
rds.force_ssl 動的 SSL 接続を使用する必要があります。PostgreSQL バージョン 15 の RDS では、デフォルト値は 1 (オン) に設定されています。PostgreSQL のメジャーバージョン 14 以前のその他すべての RDS では、デフォルト値が 0 (オフ) に設定されています。

rds.log_retention_period

動的 n 分より古い PostgreSQL ログは Amazon RDS で削除されるようにログ保持期間を設定します。
rds.restrict_password_commands 静的 rds_password ロールを持つユーザーに対して、だれがパスワードを管理するかを制限します。パスワードの制限を有効にするには、このパラメータを 1 に設定します。デフォルトは 0 です。

search_path

動的 スキーマによって修飾されていない名前でスキーマを検索する順序を設定します。

seq_page_cost

動的 連続的に取得されたディスクページのコストに対するプランナーの見積もりを設定します。

session_replication_role

動的 トリガーと再書き込みルールに対するセッション動作を設定します。

shared_buffers

静的 サーバーで使用される共有メモリバッファの数を設定します。

shared_preload_libraries

静的 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

動的 SSL 接続を有効にします。

sql_inheritance

動的 さまざまなコマンドにデフォルトでサブテーブルが取り込まれます。

ssl_renegotiation_limit

動的 暗号化キーを再度ネゴシエートする前に送受信されるトラフィックの量を設定します。

standard_conforming_strings

動的 ... 文字列をリテラルのバックスラッシュとして扱います。

statement_timeout

動的 すべてのステートメントに許可される最大実行時間を設定します。

synchronize_seqscans

動的 シーケンシャルスキャンの同期を有効にします。

synchronous_commit

動的 現在のトランザクションの同期レベルを設定します。

tcp_keepalives_count

動的 TCP キープアライブを再送信する最大回数。

tcp_keepalives_idle

動的 TCP キープアライブを発行する間隔の時間。

tcp_keepalives_interval

動的 TCP キープアライブを再送信する間隔の時間。

temp_buffers

動的 各セッションで使用されるテンポラリバッファの最大数を設定します。
temp_file_limit 動的 テンポラリファイルの最大サイズを KB 単位で設定します。

temp_tablespaces

動的 テンポラリテーブルとソートファイルで使用するテーブルスペースを設定します。

timezone

動的

表示やタイムスタンプの解釈で必要となるタイムゾーンを設定します。

Internet Assigned Numbers Authority (IANA) は年に数回、https://www.iana.org/time-zones で新しいタイムゾーンを公開します。RDS が PostgreSQL の新しいマイナーメンテナンスリリースをリリースするたびに、リリース時の最新のタイムゾーンデータが付属しています。最新の RDS for PostgreSQL バージョンを使用すると、RDS からの最新のタイムゾーンデータが得られます。DB インスタンスに最新のタイムゾーンデータがあることを確認するには、DB エンジンの上位バージョンにアップグレードすることをお勧めします。PostgreSQL DB インスタンスのタイムゾーン テーブルを手動で変更することはできません。RDS は、実行中の DB インスタンスのタイムゾーンデータを変更またはリセットしません。新しいタイムゾーンデータは、データベースエンジンのバージョンアップグレードを実行する場合にのみインストールされます。

track_activities

動的 コマンドの実行に関する情報を収集します。

track_activity_query_size

静的 pg_stat_activity.current_query 用に予約するサイズをバイト単位で設定します。

track_counts

動的 データベースアクティビティの統計情報を収集します。

track_functions

動的 データベースアクティビティの関数レベルの統計情報を収集します。

track_io_timing

動的 データベース I/O アクティビティのタイミングに関する統計情報を収集します。

transaction_deferrable

動的 読み取り専用のシリアル化可能なトランザクションを、シリアル化が失敗する可能性がない状況でスタートできるようになるまで延期するかどうかを示します。

transaction_isolation

動的 現在のトランザクションの分離レベルを設定します。

transaction_read_only

動的 現在のトランザクションの読み取り専用ステータスを設定します。

transform_null_equals

動的 expr=NULL を expr IS NULL として扱います。

update_process_title

動的 アクティブな SQL コマンドを表示するようにプロセスのタイトルを更新します。

vacuum_cost_delay

動的 バキューム処理のコスト遅延の値 (ミリ秒単位)。

vacuum_cost_limit

動的 バキューム処理を停止する制限値となるバキューム処理のコスト。

vacuum_cost_page_dirty

動的 バキューム処理によってダーティになったページに対するバキューム処理のコスト。

vacuum_cost_page_hit

動的 バッファキャッシュ内で検出されたページに対するバキューム処理のコスト。

vacuum_cost_page_miss

動的 バッファキャッシュ内で検出されなかったページに対するバキューム処理のコスト。

vacuum_defer_cleanup_age

動的 バキューム処理とホットクリーンアップが延期されるトランザクションの数 (存在する場合)。

vacuum_freeze_min_age

動的 バキューム処理でテーブルの行をフリーズする最小期間。

vacuum_freeze_table_age

動的 バキューム処理でテーブル全体をスキャンしタプルをフリーズするための期間。

wal_buffers

静的 WAL 用の共有メモリ内のディスクページバッファの数を設定します。

wal_writer_delay

動的 WAL のフラッシュが行われる間の WAL ライターの休止時間。

work_mem

動的 クエリワークスペースに使用するメモリの最大量を設定します。

xmlbinary

動的 バイナリ値を XML にエンコードする方法を設定します。

xmloption

動的 黙示的な分析とシリアル化オペレーションでの XML データをドキュメントとして見なすか、コンテンツのフラグメントとして見なすかを設定します。

Amazon RDS では、すべてのパラメータについて PostgreSQL のデフォルトの単位を使用します。次の表は、PostgreSQL のパラメータ別のデフォルト単位を示しています。

パラメータ名

単位

archive_timeout

s

authentication_timeout

s

autovacuum_naptime

s

autovacuum_vacuum_cost_delay

ms

bgwriter_delay

ms

checkpoint_timeout

s

checkpoint_warning

s

deadlock_timeout

ms

effective_cache_size

8 KB

lock_timeout

ms

log_autovacuum_min_duration

ms

log_min_duration_statement

ms

log_rotation_age

minutes

log_rotation_size

KB

log_temp_files

KB

maintenance_work_mem

KB

max_stack_depth

KB

max_standby_archive_delay

ms

max_standby_streaming_delay

ms

post_auth_delay

s

pre_auth_delay

s

segment_size

8 KB

shared_buffers

8 KB

statement_timeout

ms

ssl_renegotiation_limit

KB

tcp_keepalives_idle

s

tcp_keepalives_interval

s

temp_file_limit

KB

work_mem

KB

temp_buffers

8 KB

vacuum_cost_delay

ms

wal_buffers

8 KB

wal_receiver_timeout

ms

wal_segment_size

B

wal_sender_timeout

ms

wal_writer_delay

ms

wal_receiver_status_interval

s