PostgreSQL のレシピ
- WALセグメントを切り替えるWALとチェックポイント
- 手動CHECKPOINTを実行WALとチェックポイント
- WALサイズと現在のLSNを表示WALとチェックポイント
- アーカイブ遅延(未アーカイブのWAL)を表示WALとチェックポイント
- 新しい表領域を追加ストレージ
- 表を別の表領域に移動ストレージ
- インデックスを別の表領域に移動ストレージ
- データベースと表のサイズを照会するストレージ
- 表の肥大化(bloat)を推定ストレージ
- 特定の表をVACUUM ANALYZEメンテナンス
- 積極的なVACUUM FREEZEを実行メンテナンス
- ロックなしでインデックスを再構築(REINDEX CONCURRENTLY)メンテナンス
- 特定の表のautovacuumをチューニングメンテナンス
- 列の統計ターゲットを引き上げるメンテナンス
- パラメータを変更してリロード(ALTER SYSTEM)パラメータ
- セッションのパラメータを変更(SET)パラメータ
- 現在のパラメータ値を表示パラメータ
- 物理レプリカを構築(pg_basebackup)レプリケーション
- レプリカをプライマリに昇格レプリケーション
- レプリケーション遅延を表示レプリケーション
- レプリケーションスロットを作成・削除レプリケーション
- 論理レプリケーションのパブリケーションとサブスクリプションを設定レプリケーション
- バックエンドを終了(pg_terminate_backend)セッション
- 実行中のクエリを取り消す(pg_cancel_backend)セッション
- アクティブなクエリとブロックしているクエリを表示セッション
- 拡張を追加拡張機能
- インストール済みの拡張を一覧表示拡張機能
- Patroniクラスタの状態、トポロジ、履歴を表示Patroni
- Patroniで計画的スイッチオーバーを実行Patroni
- Patroniで手動フェイルオーバーを実行Patroni
- Patroniで壊れたレプリカを再構築(reinit)Patroni
- Patroniでクラスタ全体のパラメータを変更(edit-config)し、保留中の再起動を適用Patroni
- Patroniをメンテナンスモードにし、元に戻す(pause/resume)Patroni
- Patroni DCS(etcd/Consul)とREST APIの健全性を確認Patroni
- pgBackRest用にWALアーカイブを構成(archive-push/archive-get)バックアップとPITR
- pgBackRestのstanzaを作成し、アーカイブを検証(stanza-create/check)バックアップとPITR
- pgBackRestで全体、差分、増分バックアップを取得バックアップとPITR
- pgBackRestのバックアップカタログとWALアーカイブ範囲を表示(info)バックアップとPITR
- pgBackRestで最新のバックアップをリストアバックアップとPITR
- pgBackRestで特定時点にリストア(PITR、--type=time)バックアップとPITR
- pgBackRestのデルタリストアでスタンバイを迅速に再構築バックアップとPITR
- pgBackRestの保存期間を構成し、expireを実行バックアップとPITR
- スタンバイを手動で構成(standby.signal + primary_conninfo)レプリケーション
- スタンバイでWALの受信遅延と再生遅延を監視(pg_stat_wal_receiver)レプリケーション
- フェイルオーバー後にpg_rewindで旧プライマリをレプリカとして再参加させるレプリケーション
- クォーラム(ANY)または優先順位(FIRST)で同期レプリケーションを構成レプリケーション
- レプリケーションスロットが保持するWALを監視し、放置されたスロットを安全に削除レプリケーション
- スロットが保持できるWALを制限(max_slot_wal_keep_size)レプリケーション
- パブリケーションに表を追加し、サブスクリプションをリフレッシュ(REFRESH PUBLICATION)論理レプリケーション
- 論理レプリケーションを監視(pg_stat_subscription、適用エラー、スロット遅延)論理レプリケーション
- 論理レプリケーションの競合を解決(disable_on_error、SKIP)論理レプリケーション
- 論理レプリケーションでシーケンス値をサブスクライバに同期論理レプリケーション
- サブスクリプションを削除し、パブリッシャ上の孤立した論理スロットをクリーンアップ論理レプリケーション
- pg_upgrade --linkによるメジャーバージョンアップグレード(エンドツーエンドの手順書)アップグレード
- 論理レプリケーションによるほぼ無停止のメジャーバージョンアップグレードアップグレード
- PgBouncerのプール、統計、接続を表示(SHOW POOLS/STATS/CLIENTS/SERVERS)PgBouncer
- メンテナンス中にPgBouncerで接続を保持(PAUSE/RESUME)し、構成をリロード(RELOAD)PgBouncer
- PgBouncerのpool_modeの選択と基本的なサイジングPgBouncer
- 最もコストの高いクエリを特定(pg_stat_statements: 合計時間と平均時間)パフォーマンス
- ディスクI/O、一時ファイル、WALを引き起こしているクエリを特定(pg_stat_statements)パフォーマンス
- pg_stat_statementsの統計をリセット(全体または単一のクエリ)パフォーマンス
- auto_explainで遅いクエリの実行計画をログ出力パフォーマンス
- EXPLAIN (ANALYZE, BUFFERS, SETTINGS, WAL)で計画を詳細に読むパフォーマンス
- queryidで計画劣化を検出(pg_stat_statementsのスナップショット比較)パフォーマンス
- パラレルクエリの容量と現在のワーカー使用状況を確認パフォーマンス
- JITコンパイルがクエリ時間に与える影響を測定パフォーマンス
- ブロッキングツリーを構築(根本のブロッカーを特定)セッション
- オブジェクトとロックモード別にロック待機を詳細に調査(pg_locks)セッション
- 長時間実行のトランザクションと'idle in transaction'のトランザクションを特定セッション
- 長時間の'idle in transaction'セッションを制御された方法で一括終了セッション
- ロールとデータベースごとにstatement_timeout / lock_timeoutを設定セッション
- lock_timeoutとリトライでDDLを安全に適用(ロックキューの回避)セッション
- max_connectionsに対する接続使用量を測定セッション
- 実行中のautovacuum/VACUUM操作の進捗を監視メンテナンス
- トランザクションIDの周回リスクを測定(データベースおよび表ごとのXID経過)メンテナンス
- VACUUMによるデッドタプル削除を妨げているxmin horizonの保持者を特定メンテナンス
- pgstattupleで表とインデックスの肥大化を測定メンテナンス
- 長時間のロックなしで肥大化した表を再編成(pg_repack)メンテナンス
- INVALIDなインデックスを特定してクリーンアップメンテナンス
- 相関のある列に拡張統計を作成(CREATE STATISTICS)メンテナンス
- 統計が古くなった表を特定(ANALYZE戦略)メンテナンス
- 可視性マップのカバー率とIndex Only Scanの効率を確認メンテナンス
- 月次のレンジパーティション表を作成(ループでパーティションを生成)パーティション化
- 準備した表を短いロックでパーティションとしてアタッチ(ATTACH PARTITION)パーティション化
- ライブのトラフィックをブロックせずに古いパーティションをデタッチ(DETACH CONCURRENTLY)パーティション化
- デフォルトパーティションの落とし穴: 新しいパーティションが'would be violated by some row'で失敗するパーティション化
- パーティションプルーニングが機能していることを確認(計画時と実行時)パーティション化
- pg_partmanでパーティションの作成と保存期間管理を自動化パーティション化
- 最小権限のロール階層を構築(GRANT + ALTER DEFAULT PRIVILEGES)セキュリティ
- 行レベルセキュリティでテナント分離を設定セキュリティ
- pg_hba.confのルール順序を検証し、安全にリロードセキュリティ
- SSL/TLSを有効化し、暗号化接続を確認(pg_stat_ssl)セキュリティ
- md5パスワードからscram-sha-256へ移行セキュリティ
- pgauditでロールおよびオブジェクトレベルの監査ログを記録セキュリティ
- メモリ設定を確認(shared_buffers、work_mem、maintenance_work_mem)パラメータ
- 再起動待ちのパラメータと構成ファイルのエラーを表示パラメータ
- チェックポイントの動作を確認(PG17以降はpg_stat_checkpointer、PG16以前はpg_stat_bgwriter)パラメータ
- 表のサイズをヒープ / インデックス / TOAST別に、および最大のインデックスを一覧表示ストレージ
- 更新が保留中の拡張を特定して更新拡張機能
- pg_stat_ioでI/Oの発生元を分析(バックエンドの種類、オブジェクト、コンテキスト)拡張機能