すべてのプロダクト
Search
ドキュメントセンター

PolarDB:パブリケーション

最終更新日:May 31, 2024

発行は、テーブルまたはテーブルのセットから生成された変更のコレクションであり、変更のセットまたはコピーのセットとして記述することもできます。

概要

パブリケーションは、任意の物理レプリケーションプライマリで定義できます。 パブリケーションが定義されているノードは、パブリッシャと呼ばれます。 パブリケーションは、テーブルまたはテーブルのグループから生成される変更のセットであり、変更セットまたはレプリケーションセットとして記述することもできます。 各パブリケーションは1つのデータベースにのみ存在します。

パブリケーションはスキーマとは異なり、テーブルへのアクセス方法には影響しません。 必要に応じて、各テーブルを複数のパブリケーションに追加できます。 出版物は現在、テーブルのみを含むことができる。 ALL TABLESにパブリケーションを作成する場合を除き、オブジェクトを明示的に追加する必要があります。

パブリケーションは、特定のイベントタイプによるトリガーの発生方法と同様に、INSERTUPDATEDELETE、およびTRUNCATEの任意の組み合わせに変更を制限することを選択できます。 デフォルトでは、すべての操作タイプがレプリケートされます。

パブリッシュされたテーブルは、UPDATEおよびDELETE動作を複製できるように構成された「レプリカ識別」を有していなければならず、これにより、更新または削除する適切な行を加入者側で識別することができる。 デフォルトでは、主キーがある場合、これは主キーです。 別の一意のインデックス (特定の追加要件を含む) も、レプリカアイデンティティに設定できます。 テーブルに適切なキーがない場合は、レプリカID「full」に設定できます。つまり、行全体がキーになります。 しかし、これは非常に非効率的であり、他の解決策が可能でない場合にのみフォールバックとして使用されるべきである。 パブリッシャ側で「フル」以外のレプリカ・アイデンティティが設定されている場合には、サブスクライバ側でも同じ列またはより少ない列を含むレプリカ・アイデンティティを設定する必要がある。 レプリカIDの設定方法の詳細については、「REPLICA IDENTITY」をご参照ください。 レプリカIDのないテーブルが、UPDATEまたはDELETE操作をレプリケートするパブリケーションに追加された場合、その後のUPDATEまたはDELETE操作によってパブリッシャーでエラーが発生します。INSERT操作は、レプリカIDに関係なく続行できます。

すべてのパブリケーションに複数のサブスクライバーを含めることができます。

パブリケーションはCREATE publicationコマンドを使用して作成され、後で対応するコマンドを使用して変更または削除できます。

個々のテーブルは、ALTER PUBLICATIONを使用して動的に追加および削除できます。 ADD TABLEDROP TABLEの両方の操作はトランザクションであるため、トランザクションがコミットされると、テーブルは正しいスナップショットで複製を開始または停止します。