それなりに適当にやってます

なんとなくそれっぽいメモとか備忘録とか適当に。 2018年5月にブログ移転しました。 古い記事は未整理です。

PostgreSQL パラメータ変更の反映についてメモ

PostgreSQL のパラメータ設定の変更、なにかある度にHUPでいいのか、restart がいるのか迷うので忘れないためにメモしとく。


pg_hba.conf

  • リロードでおk
  • ドキュメント : 20.1. pg_hba.confファイル
    > pg_hba.confファイルは起動時と、主サーバプロセスがSIGHUPシグナルを受け取った時に読み込まれます。
    > 稼働中のシステムでファイルを編集した場合は、(pg_ctl reloadあるいはkill -HUPを使用して)postmasterにファイルを
    > もう一度読み込むようにシグナルを出さなければなりません。

postgresql.conf

設定項目により HUP で反映できるものと、再起動が必要なものに別れる。 以下に確認手順メモ

反映できるパラメータの区分

SELECT distinct context FROM pg_settings;
internal ・・・ 変更不可(構築時設定確認用)
postmaster ・・・ サーバ起動時
sighup ・・・ 設定ファイルの再読み込み
backend ・・・ セッション確立時に決定
superuser ・・・ スーパユーザ権限で動的変更可能
user ・・・ 一般ユーザで動的変更可能


パラメータの一覧表示

\x
SELECT name,setting,unit,context FROM pg_settings;


パラメータ単体の確認

SELECT name,setting,unit,context FROM pg_settings WHERE name='work_mem';
-[ RECORD 1 ]-----
name | work_mem
setting | 4096
unit | kB
context | user


パラメータの一時的な変更 (最終的には postgresql.conf に反映する)

UPDATE pg_settings SET setting = 8192 WHERE name='work_mem';
SELECT name,setting,unit,context FROM pg_settings WHERE name='work_mem';
-[ RECORD 1 ]-----
name | work_mem
setting | 8192
unit | kB
context | user


ほか確実に再起動が必要なものは postgresql.conf に "change requires restart" と書かれているのでわかる。

以上、適当に。