プラグイン・ベースのDDL構成の前提条件と考慮事項

これは、DDLレプリケーションを実行するための古いアプローチです。次に、DDLレプリケーションの構成の前提条件を示します。

  • DDLレプリケーションはMySQL 5.7でサポートされます。

  • MySQL 5.7のリモート・キャプチャではDDLレプリケーションがサポートされていません。

  • Oracle GoldenGateのDDLレプリケーションでは、ddl_rewriterddl_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によって無視されるため、ターゲットで手動でハートビート表を作成する必要があります。