Creating PGD nodes#

selected deployment method によっては、 PGDノードを手動で作成する必要がある場合と、そうでない場合があります。たとえば、 TPAを介したインストール または EDB Postgres Distributed for Kubernetes を使用している場合、ノードは自動的に作成されます。ただし、 manually deploying PGD または独自の展開方法を作成している場合、 PGDノードを作成および構成する方法を知る必要があります。

それはただのPostgresです#

PGDノードは、 BDR拡張機能がインストールされたPostgresインスタンスです。 BDR拡張機能は、ノード間の双方向レプリケーションを有効にし、PGDの基盤です。

つまり、最も一般的な言葉では、 PostgresとBDR拡張機能をインストールし、PGDグループ内の他のノードに接続するようにノードを構成することにより、PGDノードを作成できます。ただし、考慮すべき詳細がいくつかあります。

Postgresのバージョンはどれですか?#

PGDはPostgresの上に構築されているため、 PGDノードに使用するPostgresのディストリビューションとバージョンが重要です。使用するPostgresのバージョンは、使用しているPGDのバージョンと互換性がある必要があります。互換性マトリックスは release notes にあります。 PGDの機能は、使用しているPostgresのディストリビューションに依存する場合があります。 EDB Postgres Advanced Server は、PGDの推奨ディストリビューションです。 PGDは、 EDB Postgres Extended Server および Community Postgres もサポートしています。 Planningセクションの Choosing a Postgres distribution ページで、各ディストリビューションで使用可能な機能を確認できます。

Postgresのインストール#

構成する各ノードに選択したPostgresディストリビューションをインストールする必要があります。 EDB Postgres Advanced Server documentation 、 EDB Postgres Extended Server documentation 、および Postgres installation documentation で、各ディストリビューションのインストール手順を見つけることができます。 Postgresのインストールをカバーする Step 2 - Installing Postgres を参照することもできます。

BDR拡張機能のインストール#

BDR拡張機能は、PGDの分散アーキテクチャのキーとなります。 PGDクラスター内の各ノードにBDR拡張機能をインストールする必要があります。 BDR拡張機能は、 EDB Postgres分散リポジトリから入手できます。 postgres_distributed リポジトリをLinuxのパッケージ管理システムに追加し、edb-bdr パッケージをインストールする必要があります。リポジトリー構成手順は Step 3 - Configuring PGD repositories にあります。

リポジトリの構成が完了したら、パッケージマネージャーを使用してBDRパッケージをインストールできます。パッケージ名はedb-bdr5-<postgresversion> で、 <postgresversion> は、使用しているPostgresのバージョンです。たとえば、Postgres 13を使用している場合、パッケージ名はedb-bdr5-13 です。

PGDのデータベースの構成#

このプロセスはPGDに固有であり、 BDR拡張機能と連携するようにPostgresインスタンスを構成し、 PGDクラスターと連携するようにさまざまな設定の調整が含まれます。このプロセスは、 Step 4 - Installing the PGD software でも詳細に説明されています。手順は次のとおりです。

  • postgresql.conf のshared_preload_libraries 設定の先頭にBDR拡張$libdir/bdr を追加します。

  • postgresql.conf でwal_level GUC変数をlogical に設定します。

  • postgresql.conf でtrack_commit_timestamp を'on' に設定することにより、コミットタイムスタンプの追跡をオンにします。

  • postgresql.conf で`max_worker_processes` 〜'16' を設定することにより、最大ワーカープロセスを16以上に増やします。 .. Note The max_worker_processes value::

    max_worker_processes 値は、クラスターのトポロジ、ピアの数、データベースの数、およびその他の要素から導き出されます。必要な値を計算するには、 Postgres configuration/settings を参照してください。値16は、この例で展開されるクラスターのサイズとして計算されました。大規模なクラスターの場合、増加する必要があります。 !!!

  • EnterprisedDB / Postgresユーザーにパスワードを設定します。

  • ルールをpg_hba.conf に追加して、ノードが相互に接続できるようにします。 - これらの行がpg_hba.conf に存在することを確認します。

host all all all md5
host replication all all md5
  • .pgpass ファイルを追加して、ノードが相互に認証できるようにします。

  • 他のノードにログインするための十分な特権を持つユーザーを構成します。

  • .pgpass ファイルの詳細については、Postgresドキュメントの The Password File を参照してください。

これらの手順が完了したら、Postgresインスタンスを再起動して変更を適用します。

PGDノードの初期化#

構成したデータベースインスタンスにログインし、 BDR拡張機能をセットアップします。これは、データベースでスーパーユーザーとしてCREATE EXTENSION bdr; コマンドを実行することにより実行できます。このコマンドは、 BDR拡張機能を作成します。

また、Postgres内でデータベースを作成して、PGDのレプリケートデータベースとして使用する必要があります。これは、 CREATE DATABASE コマンドで行うことができます。作成されるデータベースは、PGDクラスター内の他のノードがレプリケートするデータベースの名前である必要があります。通常、データベースの名前はbdrdb です。

次のステップ#

ノードの構成が完了し、PGDクラスターでグループに参加またはグループを開始する準備が整います。