PostgreSQL: DDLレプリケーション
PostgreSQLのDDLレプリケーションについて説明します。
PostgreSQL: DDL構成の前提条件
ソース・データベースのDDL変更は、PostgreSQLのExtractプロセスでは自動的に処理されません。ソース表でDDLを変更する前に、次のステップを実行します。
- DDLの変更が必要な表に対するアプリケーション・データを停止します。
- OGG Extractで、DDL変更の前にすべての変更を取得しておきます。
- Extractを停止します。
- 表に対して
DELETE TRANDATAを実行します。 ALTER TABLE ADD COLUMN/DROP COLUMNコマンドを使用して、必要なDDL変更を行います。- 表に対して
ADD TRANDATAを実行します。 - Extractを起動します。
- 表のアプリケーション・データを再開します。
PostgreSQL: DDLレプリケーション中
DDLレプリケーション中にExtractが実行中または停止状態の場合、Extractは次のように動作します:
- Extractが停止状態のときに列が追加されると、Extractは新しい変更レコード(DDL変更後)を処理します。古い変更レコード(DDL変更前)の処理中に1回かぎりの警告をレポートし、欠落している列を無視します。
-
Extractが実行中の状態のときに列が追加されると、Extractは古い変更レコード(DDL変更前)を処理しますが、新しく追加された列を含む新しい変更レコード(DDL変更後)を検出すると異常終了します。
-
Extractが停止状態のときに列が削除されると、Extractは、1回かぎりの警告を返して古い変更レコードで受け取った列のみを処理し、余分な列は無視します。
-
Extractが実行中の状態のときに列が削除されると、Extractは、欠落している列に関して1回かぎりの警告を返して変更レコードで受け取った列のみを処理します。
-
Extractは、メタデータがある列を処理し、トランザクション・ログから受け取った余分な列を無視します。