Pgpool-II のデータベース セットアップ
Pgpool-II 環境を実行/設定する
このドキュメントでは、VMware が提供する Bitnami の Docker イメージを使用して説明します。Pgpool の公式ドキュメントによると、この方法には いくつかのメリットがあります。
- Bitnami は上流のソースの変更を綿密に追跡し、当社の自動システムを使用してこのイメージの新バージョンを速やかに公開します。
- Bitnami イメージがあれば、最新のバグ修正と機能を早急に利用できます。
まず、Postgres ノードをセットアップします。これらのノードは相互にアクセスできる必要があります。同じ非公開サブネットの一部にすることも、インターネットに公開することもできますが、インターネットへの公開は推奨されません。
別のマシンにプライマリ PostgreSQL ノードを作成します。次のコマンドを実行します。
docker network create my-network --driver bridge
ノードを起動すると次のようになります。
docker run --detach --rm --name pg-0 \ -p 5432:5432 \ --network my-network \ --env REPMGR_PARTNER_NODES={PG-0-IP},{PG-1-IP} \ --env REPMGR_NODE_NAME=pg-0 \ --env REPMGR_NODE_NETWORK_NAME={PG-0-IP} \ --env REPMGR_PRIMARY_HOST={PG-0-IP} \ --env REPMGR_PASSWORD=repmgrpass \ --env POSTGRESQL_POSTGRES_PASSWORD=adminpassword \ --env POSTGRESQL_USERNAME=customuser \ --env POSTGRESQL_PASSWORD=custompassword \ --env POSTGRESQL_DATABASE=customdatabase \ --env BITNAMI_DEBUG=true \ bitnami/postgresql-repmgr:latest
「[NOTICE] starting monitoring of node "pg-0" (ID: 1000)
」というメッセージは、プライマリ ノードが正常に作成されたことを示します。別のマシンにスタンバイ ノードを作成します。次のコマンドを実行します。
docker network create my-network --driver bridge
ノードを起動すると次のようになります。
docker run --detach --rm --name pg-1 \ -p 5432:5432 \ --network my-network \ --env REPMGR_PARTNER_NODES={PG-0-IP},{PG-1-IP} \ --env REPMGR_NODE_NAME=pg-1 \ --env REPMGR_NODE_NETWORK_NAME={PG-1-IP} \ --env REPMGR_PRIMARY_HOST={PG-0-IP} \ --env REPMGR_PASSWORD=repmgrpass \ --env POSTGRESQL_POSTGRES_PASSWORD=adminpassword \ --env POSTGRESQL_USERNAME=customuser \ --env POSTGRESQL_PASSWORD=custompassword \ --env POSTGRESQL_DATABASE=customdatabase \ --env BITNAMI_DEBUG=true \ bitnami/postgresql-repmgr:latest
- コード サンプル内の
{PG-0-IP},{PG-1-IP}
を、pg-0 ノードと pg-1 ノードへのアクセスに使用できるコンマ区切りの IP アドレスに置き換えます。例:15.237.94.251,35.181.56.169
- 相互接続を確立するために、スタンバイ ノードは起動後すぐにプライマリ ノードへのアクセスを試みます。
- コード サンプル内の
その他のノードを参照する Pgpool バランサー ミドルウェア ノードを作成します。次のコマンドを実行します。
docker network create my-network --driver bridge
ノードを起動すると次のようになります。
docker run --detach --name pgpool --network my-network \ -p 5432:5432 \ --env PGPOOL_BACKEND_NODES=0:{PG-0-HOST},1:{PG-1-HOST} \ --env PGPOOL_SR_CHECK_USER=postgres \ --env PGPOOL_SR_CHECK_PASSWORD=adminpassword \ --env PGPOOL_ENABLE_LDAP=no \ --env PGPOOL_USERNAME=customuser \ --env PGPOOL_PASSWORD=custompassword \ --env PGPOOL_POSTGRES_USERNAME=postgres \ --env PGPOOL_POSTGRES_PASSWORD=adminpassword \ --env PGPOOL_ADMIN_USERNAME=admin \ --env PGPOOL_ADMIN_PASSWORD=adminpassword \ --env PGPOOL_AUTO_FAILBACK=yes \ --env PGPOOL_BACKEND_APPLICATION_NAMES=pg-0,pg-1 \ bitnami/pgpool:latest
- コード サンプル内の
{PG-0-HOST},{PG-1-HOST}
を、pg-0 ノードと pg-1 ノードのホスト アドレス(ポートを含む)に置き換えます。例:15.237.94.251:5432
Bitnami コンテナーの設定に関する詳細
- コード サンプル内の
これで、
pgpool
コンテナーをデータベース クラスターへのエントリ ポイントとして使用できます。pgpool
コンテナーに接続するには、次のコマンドを使用します。psql -h {PGPOOL-HOST} -p 5432 -U postgres -d repmgr
コード サンプルの
{PGPOOL-HOST}
をpgpool
ノード アドレスに置き換えます。例:34.227.66.69
デプロイが成功したことを確認するには、次の SQL クエリを使用してテーブルrepmgr.nodes
にアクセスします。SELECT * FROM repmgr.nodes;
出力には、各ノードの状態に関する情報がすべて表示されているはずです。
設定を続けるには、「PostgreSQL のデータベース セットアップ」のガイドラインをご確認ください。ユーザーとデータベースの作成、Confluence のインストール、Confluence セットアップ ウィザードの使用に関するステップは同じです。