改訂新版内部構造から学ぶPostgreSQL 設計・運用計画の鉄則
https://scrapbox.io/files/6767e5fb74b9fb01fcdf5e29.png
以下読書メモ
postgresql.confは分割可能
includeで取り込める
ALTER SYSTEMで設定値更新可能。postgresql.confも同時に修正した場合、ALTER SYSTEMが勝つ
設定値は設定の再ロード(pg_ctl)で反映されるものもあればサーバ再起動(pg_ctl restart)しないと反映されないものもある。(即時ではない)
アーカイブファイルはWALファイルと同一
HOT処理
FILLFACTOR
ページ内の空き領域を、どの程度データ挿入用に利用するのかを示すパラメータ。
バックアップの種類
オフラインバックアップ・・・物理バックアップ(ストレージをコピーするイメージ?)
オンラインバックアップ
論理バックアップ・・・dumpする
物理バックアップ・・・WALファイルを用いる
監視コマンド
vmstat
全体をざっくりみる(procsで待ちになってるプロセス数、cpu状態など)
iostat -atonp
a・・・すべての接続、t・・・tcp, o・・・プロセスID, n・・・ホストではなくIPで表示, p・・・わからん
iostat・・・I/Oに関する情報をみる
sar・・・オプションによってさまざまなコマンドをうつ
スタンバイ
ウォームスタンバイ・・・昇格するまでデータの読み書きができない
ホットスタンバイ・・・昇格しなくてもデータの読み書きができる
バキューム
主な役割
不要領域の再利用
トランザクションID周回問題の回避
インデックスメンテナンス
インデックスの肥大化
改善策:バキューム処理の実行。自動バキュームに任せてよい
インデックスの断片化
リーフの分割によって穴が開く
改善策:REINDEXでインデックスを再定義する
クラスタ性の欠如
テーブルの物理的な順序配置がインデックスと整合性があまりとれていない
改善策:CLUSTERコマンドを実行する
PostgreSQLは明示的にトランザクションを開始しない限りデータ更新は自動的にコミットされる
統計情報は自動バキュームで自動収集される
実行計画は拡張モジュールの"auto_explain"で提供される
これを利用すると実行計画が自動で収集される