![見出し画像](https://assets.st-note.com/production/uploads/images/164948300/rectangle_large_type_2_737f595162900201f697189763bdeb50.jpeg?width=1200)
pgpool-iiを構築~PostgreSQLをロードバランス&フェイルオーバー可能とする~
PostgreSQLとpgpoolを構築し、お互いの死活監視やロードバランスを実現する方法についてのブログです。
環境はVMWare×CentOSとサポート切れのOSを使用してますが、応用は効きますので是非ご覧ください。
他の構築リンク
当記事以外の構築作業は下記のリンクからご覧ください。
※中山テックのサイトへ飛びますが、少しずつnoteへ移行していく予定です
VMWare Workstation Player×CentOSで自PCに仮想環境を構築する VMWare × CentOSの環境にSSH通信する CentOSにPostgreSQL(15)をインストールする pgpoolでPostgreSQLをレプリケーション&フェイルオーバー(当ブログ) VMWareを立ち上げたら別のプロセス使用中エラーが出た NginxにDigest認証を組み込む方法 NginxをKeepAliveで冗長化&Tomcatへロードバランス 構築後、主系をダウンさせての動作確認 PostgreSQLバックアップ&リストア 時間が来たら実行する「cron」の使い方を解説 PostgreSQL同士でレプリケーションセット ZABBIX構築してローカルからリモートアクセス
実現したいこと
![](https://assets.st-note.com/img/1733535594-kHD08ytZTaq5smlhRevxKBYu.jpg?width=1200)
※【追記】上記の図はServer3、4もVIPの中におります・・・大変失礼しました
PostgreSQLを2台構成にし、常にデータ同期を取りつつ片系が落ちても運用可能な状態にします。
そのためにpgpool-Ⅱが必須です。
また、それぞれを監視することで「誰が落ちているか」を瞬時に判断し、フェイルオーバーを実施してくれます。
・pgpool⇒PostgreSQL全体の監視
・Watchdog⇒pgpool全体の監視
・ハートビート⇒Watchdogやpgpoolから出される死活監視(UDP通信)。一定間隔で通信が行われる。仮に主系からの通信が途絶えたら副系が主系に切り替わる
pgpool-iiインストール
必要パッケージ
まずはPostgreSQLとpgpool-Ⅱ、LLVM関連パッケージを追加しましょう(PostgreSQLの追加手順と同様)。
sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install https://www.pgpool.net/yum/rpms/4.2/redhat/rhel-8-x86_64/pgpool-II-release-4.2-1.noarch.rpm
sudo yum -y install epel-release centos-release-scl
続いてインストールしてきたいのですが、対象パッケージは下記です(yum search postgresqlで検索)。
・postgresql15.x86_64
・pgpool-II-pg15-extensions ※PostgreSQLが入っているサーバにも必須
・pgpool-II-pg15
・pgpool-II-pg15-debuginfo
・pgpool-II-pg15-devel
あれっ?postgresql15入れるの?とお思いかもしれませんが、あくまでもクライアントです。
psqlコマンドは使うのでクライアントだけインストールします。
パッケージ詳細はpgpoo-Ⅱ文書のページをご覧ください。
インストール
片っ端からインストールしていきます。
yum -y install postgresql15.x86_64
yum -y install pgpool-II-pg15-extensions
yum -y install pgpool-II-pg15
yum -y install pgpool-II-pg15-debuginfo
yum -y install pgpool-II-pg15-devel
途中で「※公開鍵がインストールされていません」と出ますがしっかりインストールされていました。
PostgreSQL側の設定
オンラインリカバリ機能の導入
PostgreSQL側(Server3、4)もリカバリ対象になるので下記をインストールします。
yum -y install pgpool-II-pg15-extensions
アーカイブディレクトリの作成
DBクラッシュ時に備えたチェックポイントを格納するディレクトリです。
※ここの時点から復旧するよ!と言ったログです
作成後は「postgres」のユーザ:グループに修正しましょう。
※Server3、4いずれも設定
mkdir -p /var/lib/pgsql/15/archivedir
chown -R postgres:postgres /var/lib/pgsql/15/archivedir
ここから先は
¥ 300
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?