pg_settingsビューは、サーバーのランタイムパラメーターへのアクセスを提供します。
概要
pg_settingsビューは、基本的にSHOWおよびSETコマンドの代替インターフェイスです。 また、最小値や最大値など、SHOWから直接利用できない各パラメーターに関するいくつかの事実にアクセスできます。
pg_settingsビューには、次の列があります。
列名 | データ型 | 説明 |
name | text | ランタイム設定パラメーターの名前。 |
設定 | text | パラメーターの現在の値。 |
unit | text | パラメーターの暗黙の単位。 |
カテゴリ | text | パラメーターの論理グループ。 |
short_desc | text | パラメータの短い説明。 |
extra_desc | text | パラメータのより詳細な説明。 |
context | text | パラメーター値の設定に必要なコンテキスト。 |
vartype | text | パラメータータイプ。 有効な値: |
source | text | 現在のパラメータ値のソース。 |
min_val | text | パラメーターの最小許容値。 非数値の場合、この値は空です。 |
max_val | text | パラメーターの最大許容値。 非数値の場合、この値は空です。 |
enumvals | text[] | 列挙パラメーターに許可される値。 非数値の場合、この値は空です。 |
boot_val | text | パラメーターが後で変更されない場合にサーバーの起動時に割り当てられるパラメーター値。 |
reset_val | text |
|
ソースファイル | text | 現在の値が設定されている設定ファイル。 値が構成ファイル以外のソースからのものである場合、またはスーパーユーザーまたは |
sourceline | int4 | 現在の値が設定されている構成ファイルの行番号。 値が構成ファイル以外のソースからのものである場合、またはスーパーユーザーまたは |
pending_restart | bool | 設定ファイルで値が変更され、再起動が必要な場合は |
contextの有効な値:
internal: これらの設定は直接変更できません。 それらは内部で決定された値を反映します。 設定の一部は、異なる構成オプションでサーバーを再構築するか、initdbのオプションを変更することで調整できます。postmaster: これらの設定は、サーバーの起動時にのみ適用できます。 これらの設定を変更する場合は、サーバーを再起動する必要があります。 これらの設定の値は通常、postgresql.confファイルに保存されるか、サーバーの起動時にコマンドラインに渡されます。コンテキストタイプより低い任意のタイプの設定は、サーバーの起動時にも設定できます。sighup: これらの設定はpostgresql.confで変更でき、サーバーの再起動は必要ありません。 SIGHUP信号をポストマスターに送信して、postgresql.confを読み取り、変更を適用します。 ポストマスターはまた、SIGHUP信号をその子プロセスに転送し、それらがすべて新しい値を取得するようにする。superuser-backend: これらの設定はpostgresql.confで変更でき、サーバーの再起動は必要ありません。 これらは、接続要求パケット内の特定のセッションに対して設定することもできます (たとえば、libpqの環境変数PGOPTIONSを介して) が、接続ユーザーがスーパーユーザーである場合に限ります。 ただし、これらの設定は開始後のセッションでは変更されません。postgresql.confの設定を変更する場合は、ポストマスターにSIGHUP信号を送信して、postgresql.confを読み込めます。 新しい値は、後で開始されるセッションでのみ有効になります。backend: これらの設定はpostgresql.confで変更でき、サーバーの再起動は必要ありません。 また、接続要求パケット内の特定のセッションに対して設定することもできます (たとえば、libpqの環境変数PGOPTIONSを介して) 。 任意のユーザーがセッションに対してそのような変更を行うことができます。 ただし、これらの設定は開始後のセッションでは変更されません。postgresql.confの設定を変更する場合は、ポストマスターにSIGHUP信号を送信して、postgresql.confを再読み込みさせます。 新しい値は、後で開始されるセッションでのみ有効になります。superuser: これらの設定は、postgresql.confから、またはsetコマンドを使用してセッション内で設定できます。postgresql.confの変更は、SETコマンドを使用してセッションローカル値が設定されていない場合にのみ、既存のセッションで有効になります。user: これらの設定は、postgresql.confから、またはsetコマンドを使用してセッション内で設定できます。 ユーザーはセッションローカル値を変更できます。postgresql.confの変更は、SETを使用してセッションローカル値が設定されていない場合にのみ、既存のセッションで有効になります。
pg_settingsビューにデータを挿入したり、データを削除したりすることはできません。 ただし、ビューを更新することはできます。 pg_settingsの行に適用されるUPDATEコマンドは、そのパラメーターでSETコマンドを実行することと同じです。 変更は、現在のセッションで使用されている値にのみ影響します。 後で中止されるトランザクションでUPDATEコマンドが発行された場合、トランザクションがロールバックされるとUPDATEコマンドの効果は消えます。 周囲のトランザクションがコミットされると、別のUPDATEまたはSETコマンドによって変更がオーバーライドされない限り、効果はセッションの終了まで持続します。