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 インスタンスで使用可能なパラメータの一部を次の表に示します。

パラメータ名

Apply_Type

説明

application_name

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

array_nulls

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

authentication_timeout

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

autovacuum

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

autovacuum_analyze_scale_factor

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

autovacuum_analyze_threshold

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

autovacuum_freeze_max_age

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

autovacuum_naptime

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

autovacuum_max_workers

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

autovacuum_vacuum_cost_delay

[Dynamic] (動的) 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_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

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

effective_cache_size

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

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_hostname

動的 接続ログにホスト名を記録します。

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

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

maintenance_work_mem

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

max_connections

[Static] (静的) 同時接続の最大数を設定します。

max_files_per_process

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

max_locks_per_transaction

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

max_pred_locks_per_transaction

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

max_prepared_transactions

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

max_stack_depth

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

max_standby_archive_delay

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

max_standby_streaming_delay

動的 ホットスタンバイサーバーがストリーミングされた WAL データを処理しているときにクエリをキャンセルするまでの最大遅延間隔を設定します。
max_wal_size [Dynamic] (動的) チェックポイントをトリガーする WAL サイズを設定します。PostgreSQL バージョン 9.6 以前の場合、max_wal_size の単位は 16 MB です。PostgreSQL バージョン 10 以降の場合、max_wal_size の単位は 1 MB です。
min_wal_size [Dynamic] (動的) 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 [Dynamic] (動的) トランザクション ID のしきい値を超えるたびに、autovacuum パラメータを自動的に微調整します。

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

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

ssl

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

sql_inheritance

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

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 [Static] (静的) テンポラリファイルの最大サイズを KB 単位で設定します。

temp_tablespaces

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

timezone

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

track_activities

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

track_activity_query_size

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

track_counts

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

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

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

wal_writer_delay

[Dynamic] (動的) 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

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

8 KB

wal_sender_timeout

ms

wal_writer_delay

ms

wal_receiver_status_interval

s