どうも、nippaです。
前回、構築したPostgreSQLの設定をしていきたいと思います。
構築方法は、"PostgreSQLサーバの構築"を参考にしてください。
- 環境
- 1. PostgreSQLの設定ファイル
- 2. pg_hba.conf
- 3. pg_ident.conf
- 4. postgresql.auto.conf
- 5. postgresql.conf
- 感想
環境
Virtual Box OS: CentOS8 DB: PostgreSQL12
1. PostgreSQLの設定ファイル
PostgreSQLの保存先(ここでは、/work/pgsql12/data
)に移動すると、confファイルが4つあります。
- pg_hba.conf
- pg_ident.conf
- postgresql.auto.conf
- postgresql.conf
これらについて簡単に説明します。
2. pg_hba.conf
20.1. The pg_hba.conf File
このファイルでクライアントの認証の設定を行います。設定項目以下のようなに設定できます。
# TYPE DATABASE USER ADDRESS METHOD local database user auth-method [auth-options] host database user address auth-method [auth-options] hostssl database user address auth-method [auth-options] hostnossl database user address auth-method [auth-options] host database user IP-address IP-mask auth-method [auth-options] hostssl database user IP-address IP-mask auth-method [auth-options] hostnossl database user IP-address IP-mask auth-method [auth-options] hostgssenc database user IP-address IP-mask auth-method [auth-options] hostnogssenc database user IP-address IP-mask auth-method [auth-options]
host指定を利用することが多いと思いますので、一例を書いておきます。
# TYPE DATABASE USER ADDRESS METHOD host all all 192.168.1.1/32 peer
この設定であれば、192.168.1.1からシステムユーザとデータベースユーザが一致する場合に、ログイン可能になります。Methodについては、公式ページを確認してください。
3. pg_ident.conf
20.2. User Name Maps
外部の認証システム(GSSAPIとか)を利用する際に使用する設定ファイルです。PostgreSQL9.5以降から利用可能な機能です。ファイルの設定記載は、
map-name system-username database-username
の形式で書き込みます。公式の例を見ると、
# MAPNAME SYSTEM-USERNAME PG-USERNAME mymap /^(.*)@otherdomain\.com$ guest
MAPNAMEは任意の名前で問題ありません。"@otherdomain.com"からのすべてのユーザはデータベースの"guest"としてデータベースにアクセスする設定になります。
4. postgresql.auto.conf
このファイルは直接は編集してはいけません。このファイルは、PostgreSQL上でデータベースの設定を変更した場合に、その設定が反映されるファイルになります。稼働中のデータベースの変更と、起動時の設定postgresql.conf
に差分があるかを確認する際などに使います。
5. postgresql.conf
起動時に指定する設定を記載する設定ファイルです。全体的な設定やDBのチューニング部分になります。
- コネクション・証明書の設定
- リソースの設定
- ログの書き込み先設定
- レプリケーション設定
- クエリのチューニング
- レポートとログの設定
- 自動バキュームの設定
- クライアントの接続のデフォルト設定
など設定できます。必要に応じて、設定してください。
感想
PostgreSQLの設定についてまとめてみました。
ここまで調べたのでPostgreSQLのチューニングについても調べたいと思います。
ではでは、また次回。