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 Distributedリポジトリから入手できます。
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以上に増やします。<br/><br/> .. 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クラスターでグループに参加またはグループを開始する準備が整います。