PostgreSQL 単一サーバーのインストール(本番運用向け)
PostgreSQLレベル: 初級所要時間: 30–45 分PGDG リポジトリから単一サーバーに本番運用向けの PostgreSQL をインストールします。独立したデータ・ディレクトリ、data checksums、RAM/CPU から算出した設定、安全なアクセス制御(peer + scram-sha-256)、ログ出力、pg_stat_statements、ファイアウォール、SELinux を扱います。完了時には、稼働中で検証済みのクラスタと、バックアップ / 監視のチェックリストが揃います。
ストリーミング・レプリケーションでは、プライマリをこのガイドでインストールします。スタンバイでは「OS の準備」だけを行い、残りは pg-streaming で行います。Patroni のノードではこのガイドでクラスタを作成しないでください(initdb は Patroni が自ら実行します)→ pg-patroni。
構成: サーバー 1 台
開始前の確認
- サーバーはサポート対象の OS で稼働し、最新の状態です。タイムゾーンと NTP(chrony)が正しく設定されています。
- RAM と CPU がフォームの値と一致しています(設定値はこれらから算出されます)。
- … 用の専用ディスク / LV が永続的に(fstab)マウントされ、十分な空き領域があります。…WAL 用の専用ディスクも … にマウントされています。…ファイルシステムは XFS または ext4 です。
- ホスト名 … が設定され、自身の IP に解決されます。アプリケーションのネットワーク(…)に到達できます。
- サーバーが PostgreSQL のリポジトリ(download.postgresql.org…、apt.postgresql.org…)に HTTPS で接続できるか、社内ミラーが設定されています。
- ポート … が空いています(他のサービスが使用していません)。
- OS 標準の PostgreSQL パッケージがインストールされていません(PGDG と競合します)。
- root または sudo 権限でログインしています。メンテナンス・ウィンドウと切り戻し計画(サーバーのスナップショット)が準備できています。
ガイドのフェーズ
- OS の準備 — ホスト名とシステム更新 · ロケールの確認 · カーネル設定(sysctl) · sysctl の設定を適用する · Transparent Huge Pages を無効にする
- PostgreSQL ソフトウェアのインストール — PGDG リポジトリを追加する · PGDG リポジトリを追加する · PostgreSQL サーバー・ソフトウェアをインストールする
- データ・ディレクトリとクラスタの作成 — ディレクトリを作成して権限を設定する · SELinux のラベルを定義する · クラスタを作成する(initdb) · クラスタを作成する(pg_createcluster)
- 設定 — 設定ファイルを作成する · conf.d ディレクトリを有効にする · アクセス・ルール(pg_hba.conf)
- サービスの起動 — huge pages を確保する · サービスを有効化して起動する · ファイアウォールでポートを開放する
- ユーザーとデータベース — postgres ユーザーにパスワードを設定する · アプリケーション・ユーザーとデータベース · アプリケーション・ユーザーにパスワードを設定する · pg_stat_statements 拡張機能
- 確認 — 設定が適用されていることを確認する · リモート接続のテスト · ログ・ファイルを確認する
- インストール後の作業 — バックアップを構成する(必須) · 監視を接続する