postgresql.confはPostgreSQLデータベースの設定ファイルです。この記事では、本ファイルの場所や設定内容、反映のさせ方をご紹介します。
postgresql.conf は環境変数 PGDATA で定義されたディレクトリ又はフォルダに配置されている。PGDATA はユーザが任意のパスを指定できるが、デフォルトでは以下に示すパスに設定されている。
Linux 及び Unix の場合、デフォルト値では次の場所に postgresql.conf が配置されている。
/var/lib/postgresql/data/postgresql.conf
Microsoft Windows の場合、デフォルト値では次の場所に postgresql.conf が配置されている。
C:\Program Files\PostgreSQL\{version}\data\postgresql.conf
Mac の場合、デフォルト値では次の場所に postgresql.conf が配置されている。
/usr/local/var/postgres/postgresql.conf
postgresql.conf では以下に示すパラメータの値を設定できる。
パラメータ | 説明 |
---|---|
archive_comand | アーカイブを実行するシェルコマンド |
archive_mode | アーカイブ・モード |
data_directory | データ格納に使用するディレクトリ |
listen_addresses | クライアントアプリケーションからの接続をサーバが監視するTCP/IPアドレス |
log_destination | ログの出力先 |
log_line_prefix | 出力するログメッセージに付与するプレフィックス |
syslog_facility | シスログファシリティ |
syslog_ident | シスログに渡すときの識別文字 |
timezone | セッションのタイムゾーン |
postgresql.conf の archive_comand パラメータには、アーカイブを実行するシェルコマンドを指定する。
string
なし
reload
archive_command = 'cp "%p" /var/lib/postgresql/9.1/main/pg_archlog/"%f"'
archive_mode = on
postgresql.conf の archive_mode パラメータには、PostgreSQL のアーカイブ・モードを指定する。
enum
値 | 説明 |
---|---|
off | 無効 |
on | 有効 |
always | 有効 |
off
restart
archive_command = 'cp "%p" /var/lib/postgresql/9.1/main/pg_archlog/"%f"'
archive_mode = on
postgresql.conf の data_directory パラメータには、データ格納に使用するディレクトリを指定する。
string
なし
restart
data_directory = '/path/to/data'
postgresql.conf の listen_addresses パラメータには、クライアントアプリケーションからの接続をサーバが監視するTCP/IPアドレスを指定する。
string
localhost
restart
listen_addresses = '127.0.0.1'
カンマで区切って複数のアドレスを指定することもできる。
listen_addresses = '127.0.0.1,192.168.0.1,192.168.0.2'
すべてのIPアドレスを指定することもできる。
listen_addresses = '*'
postgresql.conf の log_destination パラメータには、ログの出力先を指定する。
string
値 | 説明 |
---|---|
stderr | 標準エラー出力 |
syslog | システムログ |
csvlog | CSVファイル |
eventlog | イベントログ(Windowsのみ) |
stderr
reload
postgresql.conf の log_line_prefix パラメータには、出力するログメッセージに付与するプレフィックスを指定する。デフォルトではメッセージのみ出力されるようになっている。
string
以下に示すパラメータを文字列に含めることができる。
パラメータ | 説明 |
---|---|
%t | タイムスタンプ |
%p | バックエンドプロセスのプロセスID |
%c | セッションID |
%l | プロセス起動シーケンス番号 |
%x | トランザクション識別子 |
%u | ユーザ名 |
%d | データベース名 |
%r | クライアントホスト名又はIPアドレスとポート番号 |
%a | アプリケーション名 |
%m [%p]
reload
表示用およびタイムスタンプ解釈用のタイムゾーンを設定する。
string
以下に示す SQL 文を実行すると、設定できるタイムゾーンの一覧を確認できる。
SELECT * FROM pg_timezone_names;
GMT
reload
timezone = 'Asia/Tokyo'
postgresql.conf の値を変更して、その値を PostgreSQL に反映されるには、リロード又は再起動する。設定の中には、リロードするだけでされる項目と、再起動を要する項目がある。リロードだけで反映される項目は、次に示す SQL 文を実行することで確認できる。
SELECT name, context FROM pg_settings WHERE context = 'sighup';
PostgreSQL をリロードするには、pg_ctl コマンドを使う。
$ pg_ctl reload
PostgreSQL を再起動するには、pg_ctl コマンドを使う。
$ pg_ctl restart
postgresql.conf ファイル内の「#」から行末まではコメントアウトされる。
#timezone = 'GMT'
timezone = 'Asia/Tokyo'