Installing PGD Proxy#

PGDプロキシのインストール#

2つの方法を使用して、PGDプロキシをインストールして構成し、 EDB Postgres分散クラスターを管理できます。 PGDプロキシをインストールして構成する推奨方法は、クラスターの展開と管理にEDB Trusted Postgres ArchitectTPAユーティリティを使用することです。

TPAを介したインストール#

PGDクラスターがTPAを介して展開されている場合、TPAは推奨アーキテクチャに従って、PGDプロキシを自動的にインストールおよび構成します。 PGDクラスター内の他のノードにPGDプロキシをインストールする場合は、TPA構成ファイルでそのインスタンスにpgd-proxyロールをアタッチする必要があります。また、この例が示しているように、展開する前にbdr_child_group パラメーターを設定します。詳細については、

- Name: proxy-a1
  location: a
  node: 4
  role:
  - pgd-proxy
  vars:
    bdr_child_group: group_a
  volumes:
  - device_name: /dev/sdf
    volume_type: none

構成#

PGDプロキシは、プロキシオプションの取得や書き込みリーダーの詳細の取得などの内部操作を行うためにPGDデータベースに接続します。したがって、 PGDノードに接続するにはエンドポイント/dsnのリストが必要です。 PGDプロキシは、これらの構成をローカル構成ファイルpgd-proxy-config.yml で想定しています。次に、pgd-proxy-config.yml ファイルの作業例を示します。

log-level: debug
cluster:
  name: cluster-name
  endpoints:
    - "host=bdr-a1 port=5432 dbname=bdrdb user=pgdproxy "
    - "host=bdr-a3 port=5432 dbname=bdrdb user=pgdproxy "
    - "host=bdr-a2 port=5432 dbname=bdrdb user=pgdproxy "
  proxy:
    name: "proxy-a1"

デフォルトでは、TPAを介して作成されたクラスターでは、 pgd-proxy-config.yml は/etc/edb/pgd-proxy ディレクトリにあります。 PGDプロキシは、次の場所でpgd-proxy-config.yml を検索します。優先順位は高から低です。

  1. /etc/edb/pgd-proxy デフォルト2.$HOME/.edb/pgd-proxy

ファイルの名前を変更するか、別の場所に移動する場合は、サービスを開始するときにオプションの-f または--config-file フラグを使用して、新しい名前と場所を指定します。

sample service file を参照してください。

サンプル構成に示すように、トップレベルの構成パラメーターlog-level を使用して、PGDプロキシサービスのログレベルを設定できます。 log-level の有効な値は、debug 、info 、warn 、およびerror です。

cluster.endpoints およびcluster.proxy.name は、構成ファイルの必須フィールドです。 PGDプロキシは、常にリストの最初のエンドポイントに接続しようとします。失敗した場合は、次のエンドポイントを試行します。以下、同様に。

PGDプロキシは、プロキシのスタートアップにのみローカル構成ファイルで指定されたエンドポイントを使用します。その後、PGDプロキシは、PGDプロキシカタログから実際のエンドポイントroute_dsnのリストを取得します。したがって、各PGDプロキシノードにノードオプションroute_dsn を設定する必要があります。詳細については、

route_dsn を参照してください。

ヘルスチェックの構成#

PGDプロキシは、

HTTP(S) health check APIs を提供します。ヘルスチェックが必要な場合は、次の構成パラメーターをpgd-proxy構成ファイルに追加することにより、有効にできます。デフォルトでは、無効になっています。

cluster:
  name: cluster-name
  endpoints:
    - "host=bdr-a1 port=5432 dbname=bdrdb user=pgdproxy "
    - "host=bdr-a3 port=5432 dbname=bdrdb user=pgdproxy "
    - "host=bdr-a2 port=5432 dbname=bdrdb user=pgdproxy "
  proxy:
    name: "proxy-a1"
    endpoint: "host=proxy-a1 port=6432 dbname=bdrdb user=pgdproxy "
    http:
      enable: true
      host: "0.0.0.0"
      port: 8080
      secure: false
      cert_file: ""
      key_file: ""
      probes:
        timeout: 10s

構成cluster.proxy.http.enable: true を追加することにより、APIを有効にできます。有効にすると、HTTPサーバーはデフォルトポート8080 でリッスンし、10秒のtimeout とHTTPSサポートなし。

HTTPSを有効にするには、構成パラメーター cluster.proxy.http.secure: true を設定します。 true に設定されている場合、 cert_file およびkey_file も設定する必要があります。

cluster.proxy.endpoint は、プロキシがチェックの一部として現在の書き込みリーダーに接続するために使用されるエンドポイントです。 cluster.proxy.http.enable がtrue の場合、 cluster.proxy.endpoint も設定する必要があります。これは、 BDRノード

routing_dsn と同じにすることができます。ホストはlisten_address

、ポートはlisten_port proxy options です。必要に応じて、このエンドポイントにsslmode 、sslrootcert 、user などの接続文字列パラメーターを追加できます。

PGDプロキシユーザー#

エンドポイントで指定されたデータベースユーザーは、スーパーユーザーである必要はありません。通常、TPA環境では、 pgdproxyはOSユーザーであるだけでなく、 bdr_superuserロールを持つデータベースユーザーでもあります。

PGDプロキシサービス#

PGDプロキシをsystemdサービスとして実行することをお勧めします。 pgd-proxy サービスユニットファイルは、デフォルトで/etc/systemd/system/pgd-proxy.service にあります。次に、TPAによって作成されたサンプルサービスファイルを示します。

[Unit]
Description=PGD Proxy

[Service]
Type=simple
User=pgdproxy
Group=pgdproxy
Restart=on-failure
RestartSec=1s
ExecStart=/usr/bin/pgd-proxy -f /etc/edb/pgd-proxy/pgd-proxy-config.yml
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=pgd-proxy

[Install]
WantedBy=multi-user.target

次のコマンドを使用して、pgd-proxy サービスを管理します。

systemctl status pgd-proxy
systemctl stop pgd-proxy
systemctl restart pgd-proxy

手動インストール#

PGDリポジトリから入手できる.deb および.rpm パッケージを使用して、LinuxマシンにPGDプロキシを手動でインストールできます。パッケージ名はedb-pgd5-proxy です。例

#  for Debian

sudo apt-get install edb-pgd5-proxy