postgresql.conf

postgresql.confはPostgreSQLデータベースの設定ファイルです。この記事では、本ファイルの場所や設定内容、反映のさせ方をご紹介します。

目次

  1. 1 場所
    1. 1.1 Linux
    2. 1.2 Windows
  2. 2 パラメータ
    1. 2.1 archive_comand
    2. 2.2 archive_mode
    3. 2.3 archive_comand
    4. 2.4 listen_addresses
    5. 2.5 log_destination
    6. 2.6 log_line_prefix
    7. 2.7 timezone
  3. 3 反映
    1. 3.1 再読込み
    2. 3.2 再起動
  4. 4 コメントアウト

1 場所

postgresql.conf は環境変数 PGDATA で定義されたディレクトリ又はフォルダに配置されている。PGDATA はユーザが任意のパスを指定できるが、デフォルトでは以下に示すパスに設定されている。

1.1 Linux

Linux 及び Unix の場合、デフォルト値では次の場所に postgresql.conf が配置されている。

/var/lib/postgresql/data/postgresql.conf

1.2 Windows

Microsoft Windows の場合、デフォルト値では次の場所に postgresql.conf が配置されている。

C:\Program Files\PostgreSQL\{version}\data\postgresql.conf

1.3 Mac

Mac の場合、デフォルト値では次の場所に postgresql.conf が配置されている。

/usr/local/var/postgres/postgresql.conf

2 パラメータ

postgresql.conf では以下に示すパラメータの値を設定できる。

postgresql.confのパラメータ
パラメータ 説明
archive_comand アーカイブを実行するシェルコマンド
archive_mode アーカイブ・モード
data_directory データ格納に使用するディレクトリ
listen_addresses クライアントアプリケーションからの接続をサーバが監視するTCP/IPアドレス
log_destination ログの出力先
log_line_prefix 出力するログメッセージに付与するプレフィックス
syslog_facility シスログファシリティ
syslog_ident シスログに渡すときの識別文字
timezone セッションのタイムゾーン

2.1 archive_comand

postgresql.conf の archive_comand パラメータには、アーカイブを実行するシェルコマンドを指定する。

2.1.1 型

string

2.1.2 デフォルト値

なし

2.1.2 値の反映

reload

2.1.3 例

archive_command = 'cp "%p" /var/lib/postgresql/9.1/main/pg_archlog/"%f"'
archive_mode = on

2.2 archive_mode

postgresql.conf の archive_mode パラメータには、PostgreSQL のアーカイブ・モードを指定する。

2.2.1 型

enum

説明
off 無効
on 有効
always 有効

2.2.2 デフォルト値

off

2.2.3 値の反映

restart

2.2.4 例

archive_command = 'cp "%p" /var/lib/postgresql/9.1/main/pg_archlog/"%f"'
archive_mode = on

2.3 data_directory

postgresql.conf の data_directory パラメータには、データ格納に使用するディレクトリを指定する。

2.3.1 型

string

2.3.2 デフォルト値

なし

2.3.3 値の反映

restart

2.3.4 例

data_directory = '/path/to/data'

2.4 listen_addresses

postgresql.conf の listen_addresses パラメータには、クライアントアプリケーションからの接続をサーバが監視するTCP/IPアドレスを指定する。

2.4.1 型

string

2.4.2 デフォルト値

localhost

2.4.3 値の反映

restart

2.4.4 例

listen_addresses = '127.0.0.1'

カンマで区切って複数のアドレスを指定することもできる。

listen_addresses = '127.0.0.1,192.168.0.1,192.168.0.2'

すべてのIPアドレスを指定することもできる。

listen_addresses = '*'

2.5 log_destination

postgresql.conf の log_destination パラメータには、ログの出力先を指定する。

2.5.1 型

string

説明
stderr 標準エラー出力
syslog システムログ
csvlog CSVファイル
eventlog イベントログ(Windowsのみ)

2.5.2 デフォルト値

stderr

2.5.4 値の反映

reload

2.6 log_line_prefix

postgresql.conf の log_line_prefix パラメータには、出力するログメッセージに付与するプレフィックスを指定する。デフォルトではメッセージのみ出力されるようになっている。

2.6.1 型

string

以下に示すパラメータを文字列に含めることができる。

パラメータ 説明
%t タイムスタンプ
%p バックエンドプロセスのプロセスID
%c セッションID
%l プロセス起動シーケンス番号
%x トランザクション識別子
%u ユーザ名
%d データベース名
%r クライアントホスト名又はIPアドレスとポート番号
%a アプリケーション名

2.6.2 デフォルト値

%m [%p]

2.6.3 値の反映

reload

2.7 timezone

表示用およびタイムスタンプ解釈用のタイムゾーンを設定する。

2.7.1 型

string

以下に示す SQL 文を実行すると、設定できるタイムゾーンの一覧を確認できる。

SELECT * FROM pg_timezone_names;

2.7.2 デフォルト値

GMT

2.7.3 値の反映

reload

2.7.4 例

timezone = 'Asia/Tokyo'

3 反映

postgresql.conf の値を変更して、その値を PostgreSQL に反映されるには、リロード又は再起動する。設定の中には、リロードするだけでされる項目と、再起動を要する項目がある。リロードだけで反映される項目は、次に示す SQL 文を実行することで確認できる。

SELECT name, context FROM pg_settings WHERE context = 'sighup';

3.1 再読込み

PostgreSQL をリロードするには、pg_ctl コマンドを使う。

$ pg_ctl reload

3.2 再起動

PostgreSQL を再起動するには、pg_ctl コマンドを使う。

$ pg_ctl restart

4 コメントアウト

postgresql.conf ファイル内の「#」から行末まではコメントアウトされる。

#timezone = 'GMT'
timezone = 'Asia/Tokyo'