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` に存在することを確認します。

edb_notranlate_0 - .pgpass ファイルを追加して、ノードが相互に認証できるようにします。 - 他のノードにログインするための十分な権限を持つユーザーを構成します。 - .pgpass ファイルの詳細については、Postgresドキュメントの The Password File を参照してください。

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

PGDノードの初期化#

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

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

次のステップ#

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