MySQL: トランザクション・ログ・ベースのDDL構成の前提条件

次に、トランザクション・ログ・ベースのDDLレプリケーションの構成の前提条件を示します。

  • トランザクション・ログベースのDDLレプリケーションの場合、バイナリ・ログには表の拡張メタデータが必要であり、これは、MySQLサーバーのbinlog_row_metadata変数をFULLに設定することで、binlogで使用できるようになります。したがって、binlog_row_metadataFULLに設定する必要があります。

    ノート:

    binlogおよびbinlog_row_metadata変数の拡張メタデータは、MySQL Server 8.0.14およびMariaDB 10.5以降で使用できます。そのため、これらのバージョンより前のDDLレプリケーションはサポートされていません。
    1. MySQLサーバー変数binlog_row_metadataの値を、MySQL構成ファイル内ではFULL、Linuxではmy.cnf、Windowsではmy.iniに設定します。

    2. 設定を有効にするために、構成ファイルを変更した後、データベース・サーバーを再起動します。

  • リモート取得のDDLレプリケーションはMySQL 8.0以降ではサポートされていません。トランザクション・ログ・ベースのDDLレプリケーションは、リモート取得またはローカル取得の両方で動作します。これは、以前のOracle GoldenGateリリースの制限でした。たとえば、Oracle GoldenGate 19cのリモート取得ではDDLレプリケーションをサポートしていませんでした。

  • トランザクション・ログ・ベースのDDLレプリケーションでは、ストアド・プロシージャ内で発行されたDDLを処理できます。これは、プラグイン・ベースのDDLレプリケーションでは制限になります。

  • 設計上、ハートビート表DDLはキャプチャによって無視されるため、ターゲットで手動でハートビート表を作成する必要があります。