Installing PGAA on WarehousePG#
前提条件#
PGAAをインストールする前に、次のことを確認します。
x86_64 RHEL 8またはRHEL 9で実行されているWarehousePG 7.4以降のクラスター。
コーディネーターホストで構成されたEDBリポジトリへのアクセス。
すべてのホストでsudo特権を持つ
gpadminユーザー。
特に記載のない限り、すべての手順はgpadmin
ユーザーとして実行する必要があります。
パッケージのダウンロードとインストール#
コーディネーターでEDBサブスクリプション資格情報を設定します。
export EDB_SUBSCRIPTION_TOKEN=<your-token>
export EDB_SUBSCRIPTION_PLAN=analytics
curl -1sSLf "https://downloads.enterprisedb.com/$EDB_SUBSCRIPTION_TOKEN/$EDB_SUBSCRIPTION_PLAN/setup.rpm.sh" | sudo -E bash
sudo dnf download edb-whpg7-pgaa
edb-whpg7-pgfs は、edb-whpg7-pgaa
の宣言された依存関係であり、自動的にダウンロードされます。
コーディネーターで、WHPGクラスター内のすべてのホストをリストするファイル
all_hostsを作成します。例
cdw
sdw1
sdw2
すべてのホストにパッケージを転送してインストールします。
gpssh -f all_hosts -e "scp gpadmin@$(hostname):~/edb-whpg7-pgaa *.rpm /tmp/ && sudo dnf install -y /tmp/edb-whpg7-pgaa* .rpm"
パッケージがすべてのホストにインストールされていることを確認します。
gpssh -f all_hosts -e rpm -q edb-whpg7-pgaa edb-whpg7-pgfs
拡張機能の有効化#
WarehousePGインストールでは、Seafowlは、拡張機能自分自身によって制御されるバックグラウンドワーカーとしてではなく、systemdサービスとして管理されます。 RPMは、systemdユニットファイルを自動的にインストールします。
コーディネーターで、コンマ区切りを使用して共有ライブラリのリストにPGAAおよびPGFSを追加し、クラスターを再起動します。
gpconfig -c shared_preload_libraries -v <other_libraries>,pgaa,pgfs
gpstop -ra
コーディネーターとすべてのセグメントホストを含むすべてのホストでSeafowlサービスを有効にして開始します。
gpssh -f all_hosts -e sudo systemctl enable seafowl && sudo systemctl start seafowl
- !!!注 systemdが利用できない環境Dockerなどにインストールする場合、スーパーバイザプロセスやエントリーポイントスクリプトなどの他の手段を介してSeafowlワーカーをデーモン化する必要があります。重要な制約は、ホストごとに1つのSeafowlワーカーのみを実行する必要があることです。同じホストで複数のワーカーを実行しているか、いずれかの実行にまったく失敗すると、問題が発生します。 .. ::
!!!注 Seafowlは、デフォルトでポート9090でPrometheusメトリックエンドポイントを公開します。 Prometheusが既に同じホストで実行され、ポート9090にバインドされている場合、Seafowlは起動に失敗します。競合を解決するには、影響を受けるホストで`/etc/edb/pgaa/seafowl.toml` の`port` の値を編集し、Seafowlサービスをリスタートします。 .. :: 1.コーディネーターに接続し、PGAAを使用する各データベースに拡張機能を作成します。
CREATE EXTENSION IF NOT EXISTS pgaa CASCADE;
CASCADE を使用すると、Postgresファイルシステム PGFS
などの必要な依存関係が自動的にインストールされます。
インストールの検証#
\dxメタコマンドまたはversionファンクションを呼び出して、拡張機能がアクティブであることを確認します。
SELECT pgaa.pgaa_version();
Seafowlサービスがすべてのホストで実行されていることを確認します。
gpssh -f all_hosts -e sudo systemctl status seafowl --no-pager
サービスの状態とログの確認#
Seafowlは、systemdを介して構造化JSONログを書き込みます。
単一ホストでステータスと最近のログ出力を確認するには
sudo systemctl status seafowl
ライブログをストリーミングするには
sudo journalctl -u seafowl -f
すべてのホストのログを一度に確認するには
gpssh -f all_hosts -e sudo journalctl -u seafowl --no-pager -n 50
WarehousePGコーディネーターとセグメントログについては、 Viewing the database server log files を参照してください。