📣
TiDB Cloud Essential はパブリックプレビュー中です。このページは自動翻訳されたものです。原文はこちらからご覧ください。

TiDBデータ移行の互換性カタログ



DMは、さまざまなソースからTiDBクラスタへのデータ移行をサポートしています。データソースの種類に基づいて、DMには4つの互換性レベルがあります。

  • 一般提供開始(GA) :アプリケーションシナリオが検証され、GAテストに合格しました。
  • Experimental:一般的なアプリケーションシナリオは検証済みですが、対象範囲は限定的であるか、ごく少数のユーザーのみが対象となっています。まれに問題が発生する可能性があるため、ご使用のシナリオにおける互換性を確認する必要があります。
  • 未テスト:DMはMySQLプロトコルおよびbinlogとの互換性を目指していますが、DMのテストマトリックスにはすべてのMySQLフォークやバージョンが含まれているわけではありません。フォークやバージョンがMySQL互換のプロトコルとbinlogフォーマットを使用している場合は動作するはずですが、使用前にご自身の環境で互換性を確認する必要があります。
  • 互換性なし:DMには既知のブロッキング問題があるため、本番での使用は推奨されません。

データソース

データソース互換性レベル注記
MySQL ≤ 5.5テストされていません
MySQL 5.6GA
MySQL 5.7GA
MySQL 8.0GAbinlogトランザクション圧縮( Transaction_payload_eventはサポートしません。
MySQL 8.1~8.3テストされていませんbinlogトランザクション圧縮( Transaction_payload_eventはサポートしません。
MySQL 8.4Experimental(TiDB v8.5.6以降でサポート)binlogトランザクション圧縮( Transaction_payload_eventはサポートしません。
MySQL 9.xテストされていません
MariaDB < 10.1.2互換性がない時間型のbinlogとは互換性がありません。
MariaDB 10.1.2 ~ 10.5.10Experimental
MariaDB > 10.5.10テストされていません事前チェックをバイパスした後は、ほとんどの場合に機能すると予想されます。 MariaDBに関する注記参照してください。

外部キーのCASCADE操作

バージョン8.5.6以降、DMは外部キー制約を使用するテーブルのレプリケーションに関する実験的サポートを提供します。このサポートには、以下の改善点が含まれます。

  • セーフモード: セーフモード実行中、DM は各バッチに対してforeign_key_checks=0を設定し、主キーまたは一意キーの値を変更しないDELETEステートメントの冗長なUPDATE } ステップをスキップします。これにより、 REPLACE INTO (内部でDELETE + INSERTを実行) が子行に意図しないON DELETE CASCADE効果を引き起こすのを防ぎます。詳細については、 DMセーフモードを参照してください。
  • マルチワーカー因果関係: worker-count > 1の場合、DM はタスク開始時にダウンストリーム スキーマから外部キー関係を読み取り、因果関係キーを挿入します。これにより、親行に対する DML 操作が依存する子行に対する操作よりも先に完了し、ワーカー間でbinlogの順序が維持されます。

外部キーのレプリケーションには、以下の制限事項が適用されます。

  • セーフモードでは、DM は主キーまたは一意キーの値を変更するUPDATEステートメントをサポートしていません。タスクはエラーsafe-mode update with foreign_key_checks=1 and PK/UK changes is not supportedで一時停止します。このようなステートメントを再現するには、 safe-mode: falseを設定してください。
  • foreign_key_checks=1の場合、DM はレプリケーション中に外部キー制約を作成、変更、または削除する DDL ステートメントをサポートしません。
  • worker-count > 1の場合、テーブルルーティングはサポートされません。外部キーを含むテーブルでテーブルルーティングを使用する場合は、 worker-count1に設定してください。
  • ブロック許可リストには、外部キー依存関係チェーン内のすべての祖先テーブルを含める必要があります。祖先テーブルが除外されている場合、増分レプリケーション中にエラーが発生し、タスクが一時停止します。
  • 外部キーのメタデータは、ソースとダウンストリーム間で一貫している必要があります。不整合が検出された場合は、 binlog-schema update --from-targetを実行してメタデータを再同期してください。
  • ON UPDATE CASCADEが主キーまたは一意キーの値を変更する場合、 UPDATEはセーフ モードで正しく複製されません。DM は、このようなステートメントをDELETE + REPLACEに書き換え、 ON DELETEアクションではなくON UPDATEアクションをトリガーします。この場合、DM はステートメントを拒否し、タスクを一時停止します。キー値を変更しないUPDATEステートメントは正しく複製されます。

バージョン8.5.6より前のバージョンでは、DMはダウンストリームに外部キー制約を作成しますが、セッション変数foreign_key_checks=OFF設定するため、制約を適用しません。その結果、カスケード操作はダウンストリームに複製されません。

MariaDBに関する注記

  • MariaDB 10.5.11 以降では、権限名の変更(例: BINLOG MONITORREPLICATION SLAVE ADMINREPLICATION MASTER ADMIN ) により、DM の事前チェックが失敗します。このエラーは、レプリケーション権限、ダンプ権限、およびダンプ接続番号のチェッカーで[code=26005] fail to check synchronization configurationとして表示されます。
  • DM タスクにignore-checking-items: ["all"]を追加すると、事前チェックをバイパスできます。詳細はDM事前チェックをご覧ください。

対象データベース

対象データベース互換性レベルDM版
TiDB 8.xGA≥ 5.3.1
TiDB 7.xGA≥ 5.3.1
TiDB 6.xGA≥ 5.3.1
TiDB 5.4GA≥ 5.3.1
TiDB 5.3GA≥ 5.3.1
TiDB 5.2GA≥ 2.0.7、推奨バージョン: 5.4
TiDB 5.1GA≥ 2.0.4、推奨バージョン: 5.4
TiDB 5.0GA≥ 2.0.4、推奨バージョン: 5.4
TiDB 4.xGA≥ 2.0.1、推奨バージョン: 2.0.7
TiDB 3.xGA≥ 2.0.1、推奨バージョン: 2.0.7
MySQLExperimental
MariaDBExperimental

このページは役に立ちましたか?