Initializing PGD#

シードノードがターゲットPostgresバージョンにアップグレードされたら、双方向レプリケーションBDR拡張機能をインストールし、クラスターを初期化してノードを分散環境に移行する必要があります。

PGDのインストールと構成#

シードノードには、Postgresディストリビューションとバージョンたとえば、EPAS 17のedb-pgd6-expanded-epas17 と特に一致するPGDパッケージが必要です。続行する前に、適切なPGDリポジトリを構成していることを確認してください。詳細は、 Installing the database and pgd を参照してください。

  1. BDR拡張機能を有効にするには、Postgres構成を更新してライブラリをプリロードし、シードノードでコミットタイムスタンプを有効にします。

cat >> ${PGDATA}/postgresql.conf <<EOF
shared_preload_libraries = bdr
track_commit_timestamp = on
EOF
  1. Postgresを再起動してBDR拡張機能をロードします。

su -u enterprisedb --command "pg_ctl restart"

PGDクラスターを初期化する#

拡張機能がロードされると、レプリケートするデータベース内にBDR拡張機能を作成できます。

  1. シードノードで、 BDR拡張機能を作成します。

CREATE EXTENSION bdr;
  1. BDRがロードされていることを検証し、バージョンを確認します。

SELECT bdr.bdr_version();
  1. シードノードをBDRノードとして定義し、クラスターを形成する初期ノードグループを確立します。

SELECT bdr.create_node(
    node_name := ${SEED_NODE_PGD_NAME},
    dsn := ${SEED_NODE_DSN_DSN}
);
  1. ノードグループを作成します。

SELECT bdr.create_node_group(
    node_group_name := ${PGD_CLUSTER_NAME}
);

PGD CLIの構成#

PGDコマンドラインインターフェイスCLIを使用して、クラスターを管理およびモニタします。 all の現在および将来のPGDノードで、クラスター全体の接続エンドポイントをリストする構成ファイルを作成する必要があります。

mkdir -p /etc/edb/pgd-cli
cat <<EOF > tee /etc/edb/pgd-cli/pgd-cli-config.yml
cluster:
  name: ${PGD_CLUSTER_NAME}
  endpoints:
    - ${SEED_NODE_DSN}
    - ${ADD_NODE_DSN}
       - ...
EOF

PGDインストールの検証#

PGD CLIを使用して、シングルノードセットアップが正常であり、CLIがクラスターと通信するように正しく構成されていることを確認します。シードノードで、次を実行します。

pgd nodes list -- Expected to list exactly one node (itself).
pgd cluster show --health -- Expected to show OK for all checks.

次のステップ Joining additional PGD nodes 。