DBAtlas · データベース運用アトラス

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 拡張機能
  • 確認 — 設定が適用されていることを確認する · リモート接続のテスト · ログ・ファイルを確認する
  • インストール後の作業 — バックアップを構成する(必須) · 監視を接続する
環境に合わせた手順プランを開く →