OSS-DBプログラム

OSS-DB Silver 暗記 B-3

運用管理(52%):::設定ファイル【重要度:5】dokoQL不可

 

postgresql.conf

 

  • 概要:PostgreSQL のパラメータを設定する複雑なファイル

 

  暗記  

  • PostgreSQL の名前をそのまま使っているファイルがある
    • なので、多分一番重要なファイル

 

 

タイミング

postgresql.conf の内容を変更した後に、その変更が反映されるタイミング

  • 起動時(postmaster)               :PostgreSQL 起動時
  • 起動中
    • リロード時(sighup)       : postgresql.conf 再読込
    • Superuser のみ(suset)    : SET文で設定値変更
    • 誰でも(user)                  : SET文で設定値変更

※設定値は、SHOW文で確認できる

 

postgresql.conf PostgreSQL
Fig.1 postgresql.conf
  • Fig.1 の説明
    • PostgreSQL 停止中に内容修正:postmaster
    • PostgreSQL 実働中に内容修正:sighup, suset, user

 

  暗記  

  • postgresql.conf の内容変更が反映されるタイミングは、起動時起動中に大別される
  • 起動中は、postgresql.conf のリロードありリロードなしに大別される
  • リロードなしは、susetuser に大別される

 

  • 起動時:postmaster
  • 起動中
    • リロードあり:sighup
    • リロードなし
      • suset
      • userset

 

postgresql.conf-matrix
Fig.2 postgresql.conf

 

起動時(postmaster)

  • listen_addresses(string:localhost) :PostgreSQLのIPアドレス
  • port(integer:5432)                        :サーバが監視するTCPポート
  • max_connections(integer:100)     :同時接続可能なユーザ数
  • logging_collector(boolean:off)     :ログ収集するか否か

 

:logging_collector の確認(SHOW文)

[postgres]$ psql -c "SHOW logging_collector"
-------------------
 logging_collector
-------------------
 off
-------------------

[postgres]$ ▯

 

再読み込み時(reload)

  • log_destination(enum:stderr):
    • サーバメッセージログの出力先
    • stderr,  csvlog,  syslog,  eventlog
  • log_directory(string:$PGDATA/log):
    • ログファイルが作成されるディレクトリ
  • log_filename(string:postgresql-%Y-%m-%d_%H%M%S.log)  :ログファイル名
  • log_line_prefix(string:%m[%p]):
    • ログの先頭に出力する文字

 

:log_destination の確認(SHOW文)

[postgres]$ psql -c "SHOW log_destination"
-----------------
 log_destination
-----------------
 stderr
-----------------

[postgres]$ ▯

 

Superuserのみ(suset)

  • log_min_messages(enum:WARNING)  :ログレベル
    • PANIC,  FATAL,  LOG,  ERROR,  WARNING

 

:log_min_messages の設定(SET文)

postgres=# show log_min_messages;
------------------
 log_min_messages
------------------
 warning
------------------

postgres=# set log_min_messages to 'panic';
SET
postgres=# show log_min_messages;
------------------
 log_min_messages
------------------
 panic
------------------

postgres=# ▯

 

誰でも(user)

  • search_path(string:”$user”, public):スキーマを検索する順番
  • default_transaction_isolation(enum:read committed):
    • トランザクションの分離レベル
    • read uncommitted,  read committed,  repeatable read,  serializable
  • client_encoding(string:SQL_ASCII):
    • クライアント側文字セット(encoding)

 

:default_transaction_isolation の設定(SET文)

postgres=# show default_transaction_isolation;
-------------------------------
 default_transaction_isolation
-------------------------------
 read committed
-------------------------------
 
postgres=# set default_transaction_isolation to 'serializable';
SET
postgres=# show default_transaction_isolation;
-------------------------------
 default_transaction_isolation 
-------------------------------
 serializable
-------------------------------

postgres=# ▯

 

  暗記  

  • 起動時:ログ収集するか否か
  • 起動中
    • リロードあり:ログ(ファイル名・ディレクトリ名)など
    • リロードなし
      • suset    :ログレベル
      • userset

 

 

pg_hba.conf

 

  • 概要:クライアント認証を設定したファイル

 

  • hbahost-based authentication(ホストベース認証)

 

タイミング

pg_hba.conf の内容を変更した後に、その変更が反映されるタイミング

  • リロード時(signup)    : pg_hba.conf 再読込

 

 

再読み込み時(reload)

  • TYPE
    • local:UNIXドメイン接続
    • host :TCP/IP接続
  • DATABASE
    • all もしくは、db1, db2
  • USER
    • all もしくは、user1, user2
  • ADDRESS
    • address(CIDRアドレス)   :例. 192.168.93.0/24
    • IP-address IP-mask               :例. 192.168.93.0   255.255.255.0
  • METHOD
    • trust, reject
    • md5, scram-sha-256
    • password

 

:pg_hba.conf

[postgres]$ cat /home/postgres/data/pg_hba.conf
# ----------------------------------------------------------------
# TYPE    DATABASE     USER     ADDRESS               METHOD
# ----------------------------------------------------------------
local     database     user                           auth-method
host      database     user     address               auth-method
host      database     user     IP-address  IP-mask   auth-method
# ----------------------------------------------------------------
[postgres]$ ▯

 

 

参考

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です