結果となる操作を除くSQL文のみの伝播
この例では、ソースとターゲットで異なるEVENTACTIONS
句を組み合せて使用し、SQL文の結果となる操作ではなく、そのSQL文のみをレプリケートする方法を示します。この例では、INSERT INTO...SELECT
トランザクションです。このようなトランザクションでは、伝播する必要のある大量の行が生成される可能性がありますが、この方法であれば、初期SQL文のみが伝播されるため、証跡およびネットワーク・オーバーヘッドを削減できます。各SELECT
文は、すべてターゲットに対して実行されます。この構成では、データ整合性を保持するためにソース表とターゲット表を完全に同期する必要があります。
Extract:
TABLE source.statement, EVENTACTIONS (IGNORE TRANS INCLUDEEVENT);
Replicat:
TABLE source.statement, SQLEXEC (execute SQL statement), & EVENTACTIONS (INFO, IGNORE);
この構成を使用するため、statement
表にトランザクションの最初の操作(イベント・レコードとなるINSERT INTO...SELECT
)を移入します。
ノート:
サイズの大きいSQL文の場合、文を表の複数の列に書き込むことができます。たとえば、8つのVARCHAR (4000)
列を使用して、最大32KBの長さのSQL文を格納できます。
IGNORE TRANS INCLUDEEVENT
があるため、Extractでは、文のSELECT
部分に関連する後続の挿入はすべて無視されますが、SQLテキストを含むイベント・レコードは証跡に書き込まれます。TABLE
文の使用により、Replicatは、必要に応じてSQLテキスト列を連結するSQLEXEC
文にイベント・レコードを渡し、SELECT
副問合せの入力としてターゲット表を使用してINSERT INTO...SELECT
文を実行します。