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
scdw
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
などの必要な依存関係が自動的にインストールされます。
拡張機能のアップグレード#
WarehousePG上の既存のPGAAインストールを新しいバージョンにアップグレードするには、 拡張機能のインストール の代わりにこのセクションの手順を完了します。
コーディネーターで、新しいパッケージバージョンをダウンロードします。
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
コーディネーターとすべてのセグメントホストを含むすべてのホストでパッケージを転送およびアップグレードします。
gpssh -f all_hosts -e "scp gpadmin@$(hostname):~/edb-whpg7-pgaa *.rpm /tmp/ && sudo dnf install -y /tmp/edb-whpg7-pgaa* .rpm"
すべてのホストで
Seafowlサービスを再起動して、新しいバイナリをロードします。
gpssh -f all_hosts -e sudo systemctl restart seafowl
WarehousePGクラスターを再起動して、新しい
pgaaライブラリをロードします。
gpstop -ra
コーディネーターに接続し、PGAAがインストールされている各データベースの拡張機能を更新します。
ALTER EXTENSION pgaa UPDATE;
!!!注
すべてのホスト、コーディネーター、セグメントでパッケージをアップグレードし、
ALTER EXTENSION を実行する前に両方の再起動を完了します。
SQL移行スクリプトは、新しいライブラリにのみ存在するファンクションを想定しているため、まだアップグレードされていないpgaa
ライブラリに対して実行すると、
could not find function "..._wrapper" in file ...
などのエラーで失敗します。
インストールの検証#
\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 を参照してください。