PostgreSQL パラメータ属性

PostgreSQL において初期化パラメータの変更して値が適用されるまで、以下の種類が存在する。

パラメータ属性

  A  postmasterの起動時のみ
  B  A+hangupシグナル受信時。処理中のセッションは影響をうける。
  C  A+PGOPTIONS環境変数。処理中のセッションは影響をうけない。
  D  B+管理アカウントのみのSETコマンド
  E  A+B+PGOPTIONS環境変数、SETコマンド(ユーザ可)
  F  DB作成時に指定する。変更できない。

パラメータ属性の調べ方

  # select context from pg_settings group by context;
  -[ RECORD 1 ]-------
  context | superuser
  -[ RECORD 2 ]-------
  context | internal
  -[ RECORD 3 ]-------
  context | sighup
  -[ RECORD 4 ]-------
  context | postmaster
  -[ RECORD 5 ]-------
  context | backend
  -[ RECORD 6 ]-------
  context | user

  # select name, setting, source, context
    from pg_settings order by context;
  ■A
  -[ RECORD 1 ]-----------------------------------
  context    | postmaster
  ■B
  -[ RECORD 1 ]-----------------------------------
  context    | sighup
  ■C
  -[ RECORD 1 ]-----------------------------------
  context    | backend
  ■D
  -[ RECORD 1 ]-----------------------------------
  context    | superuser
  ■E
  -[ RECORD 1 ]-----------------------------------
  context    | user
  ■F
  -[ RECORD 1 ]-----------------------------------
  context    | internal

初期パラメータ変更方法

方法1

  ・postmasterを再起動
  ・postmasterにhangupシグナルを送信する。あるいは、pg_ctl reloadを実行する。

方法2

  データベース全体 範囲セッション

  ・SET 設定項目名 TO 値;
  ・env PGOPTIONS='-c sort_mem=4096 -c vacuum_mem=16122' psql test
  ・APIオプションを利用

方法3

  特定データベース 管理アカウントのみ

  ・ALTER DATABASE DB名 SET 項目名 = {値orDEFAULT};
    DまたはE
    select datconfig from pg_database;

方法4

  ユーザ単位 ユーザ自身も可

  ・ALTER USER ユーザ名 SET 項目名 = {値orDEFAULT};
    Eまたは、管理はDも可
    select useconfig from pg_user;

ご訪問頂き有難う御座います。 当サイトを効率良く使うためにまずは FrontPage を見て下さい。 検索方法、一覧表示などの各情報を纏めています。
当サイトの説明 → Frontpage