プラグイン・ベースのDDL構成の前提条件と考慮事項
これは、DDLレプリケーションを実行するための古いアプローチです。次に、DDLレプリケーションの構成の前提条件を示します。
-
DDLレプリケーションはMySQL 5.7でサポートされます。
-
MySQL 5.7のリモート・キャプチャではDDLレプリケーションがサポートされていません。
-
Oracle GoldenGateのDDLレプリケーションでは、
ddl_rewriter
とddl_metadata
の2つのプラグインが共有ライブラリとして使用されるため、これらをMySQLサーバーにインストールしてから、Oracle GoldenGateレプリケーションを開始する必要があります。 -
スタンドアロン・アプリケーションであるOracle GoldenGate
metadata_server
が実行されていて、DDLメタデータをキャプチャしている必要があります。 -
新しい
oggddl
データベース配下にhistory
表(oggddl.history
)が必要です。このメタデータ履歴表を使用して、DDLメタデータ履歴が格納されて取得されます。履歴表レコードはバイナリ・ログには記録されないようにする必要があるため、my.cnf
ファイルでbinlog-ignore-db=oggddl
を指定してください。 -
手動で
oggddl
データベースまたはhistory
表をドロップしないでください。このイベント後に実行されるすべてのDDL文が失われます。 -
DDLキャプチャ中に
metadata_server
サーバーを停止しないでください。このイベント後に実行されるすべてのDDL文が失われます。 -
DDLキャプチャ中に
ddl_rewriter
およびddl_metadata
プラグインを手動で削除しないでください。このイベント後に実行されるすべてのDDL文が失われます。 -
ストアド・プロシージャ内で実行されるDDLはサポートされません。たとえば、次のように実行されるDDLはサポートされません。
CREATE PROCEDURE atssrc.generate_data() BEGIN DECLARE i INT DEFAULT 0; WHILE i < 800 DO SET i = i + 1; IF (i = 100) then alter table atssrc.`ddl6` add col2 DATE after id; ELSEIF (i = 200) then alter table atssrc.`ddl6` add col3 DATETIME after datetime; ELSEIF (i = 300) then alter table atssrc.`ddl6` add `col4` timestamp NULL DEFAULT NULL after channel; ELSEIF (i = 400) then alter table atssrc.`ddl6` add col5 YEAR after value; END IF; END WHILE; END$$ DELIMITER ; call atssrc.generate_data();
-
設計上、ハートビート表DDLはExtractによって無視されるため、ターゲットで手動でハートビート表を作成する必要があります。