Using extensions with PGD#

PGDおよびその他のPostgreSQL拡張機能#

PGDは、PostgreSQL拡張機能として実装されています

Supported Postgres database servers を参照してください。 PostgreSQLの拡張性と柔軟性を利用して、低レベルのシステムの動作を変更して、マルチマスターレプリケーションを提供します。

原則として、コミュニティPostgreSQL、 EDB Postgres Advanced Serverが提供する拡張機能、およびサードパーティの拡張機能はPGDで使用できます。ただし、 PGDの分散的な性質は、選択してインストールする拡張機能を注意深く検討および計画する必要があることを意味します。

論理デコーディングを提供する拡張機能#

wal2json などの論理デコードを提供する拡張機能は、理論的にはPGDで動作すると考えられます。ただし、フェイルオーバーはサポートされていないため、このような拡張機能から読み取られるWALストリームが中断される可能性があることを意味します。

レプリケーションまたはHA機能を提供する拡張機能#

レプリケーションまたはHA /フェールオーバーに関連する機能でPostgreSQLを拡張する拡張機能は、PGDでうまく動作する可能性が低く、 PGDクラスターの状態に悪影響を与える可能性があります。これらは避けることをお勧めします。

サポートされている拡張機能#

これらの拡張機能はPGDによって明示的にサポートされています。

EDB Advanced Storageテーブルのアクセス方法#

EDB Advanced Storage Pack は、拡張機能として実装されるテーブルアクセス方法TAMの選択を提供します。次のTAMは、PGDでの使用が認定されています。

詳細については、 Use of table access methods (TAMs) in PGD を参照してください。

pgaudit#

PGDは、 pgaudit 拡張機能との互換性を確保するために変更されました。構成情報については、 Postgres設定 を参照してください。

拡張機能のインストール#

PostgreSQL拡張機能は、ファンクション、データ型、およびオプションで1つ以上の共有ライブラリなどのSQLオブジェクトを提供します。拡張機能をインストールして使用する前に、これらをPostgreSQLバックエンドにロードする必要があります。

警告

関連する拡張機能パッケージは、クラスター内のすべてのノードで利用できる必要があります。そうしないと、拡張機能のインストールが失敗し、クラスターの安定性に影響を与える可能性があります。

Trusted Postgres Architect を使用してPGDが展開されている場合、そのツールを使用して拡張機能を構成します。詳細については、 Adding Postgres extensions を参照してください。

以下は、手動で構成されたPGDインストールに関連します。

shared_preload_librariesの構成#

拡張機能が共有ライブラリを提供する場合、拡張機能をインストールする前にこのライブラリを shared_preload_libraries 構成パラメーターに含めます。

shared_preload_libraries は、拡張機能名のコンマ区切りのリストで構成されます。 bdr を含める必要があります。通常、他の拡張機能を指定する順序は重要ではありません。

CREATE EXTENSION で拡張機能をインストールする前に、クラスター内のすべてのノードでshared_preload_libraries を構成します。新しい構成をアクティブにするには、PostgreSQLを再起動する必要があります。

Postgres設定 も参照してください。

拡張機能のインストール#

CREATE EXTENSION コマンドを使用して拡張機能をインストールします。これは、クラスター内の1つのノードでのみ行う必要があります。 PGDのDDLレプリケーションは、他のすべてのノードに伝播します。

警告

CREATE EXTENSION を実行する前にDDLレプリケーションを無効にするなど、各ノードに拡張機能を手動でインストールしようとしないでください。

bdr.replicate_ddl_command() などのコマンドを使用してCREATE EXTENSION を実行しないでください。