TiDB データ移行の概要

TiDB データ移行 (DM) は、MySQL 互換データベース (MySQL、MariaDB、 Aurora MySQL など) から TiDB への完全なデータ移行と増分データレプリケーションをサポートする統合データ移行タスク管理プラットフォームです。データ移行の運用コストを削減し、トラブルシューティング プロセスを簡素化するのに役立ちます。

基本的な機能

  • MySQL との互換性。DMは、MySQL プロトコルおよびMySQL 5.7と MySQL 8.0 のほとんどの機能と構文と互換性があります。
  • DML および DDL イベントのレプリケーション。MySQL binlog内の DML および DDL イベントの解析とレプリケーションをサポートします。
  • MySQL シャードの移行とマージ。DMは、上流の複数の MySQL データベース インスタンスを下流の 1 つの TiDB データベースに移行およびマージすることをサポートします。さまざまな移行シナリオに合わせてレプリケーション ルールをカスタマイズできます。上流の MySQL シャードの DDL 変更を自動的に検出して処理できるため、運用コストが大幅に削減されます。
  • さまざまな種類のフィルター。データ移行プロセス中に MySQLbinlogイベントをフィルター処理するために、イベント タイプ、正規表現、SQL 式を事前定義できます。
  • 集中管理。DMはクラスター内の数千のノードをサポートします。多数のデータ移行タスクを同時に実行および管理できます。
  • サードパーティのオンラインスキーマ変更プロセスの最適化。MySQLエコシステムでは、gh-ost や pt-osc などのツールが広く使用されています。DM は、中間データの不要な移行を回避するために変更プロセスを最適化します。詳細については、 オンラインDDLを参照してください。
  • 高可用性。DMは、異なるノード上で自由にスケジュールされるデータ移行タスクをサポートします。少数のノードがクラッシュしても、実行中のタスクは影響を受けません。

クイックインストール

DM をインストールするには、次のコマンドを実行します。

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh tiup install dm dmctl

使用制限

DM ツールを使用する前に、次の制限に注意してください。

  • データベースのバージョン要件

    • MySQL バージョン 5.6 ~ 8.0

    • MariaDB バージョン >= 10.1.2 (実験的機能)

    注記:

    アップストリーム MySQL/MariaDB サーバー間にプライマリ - セカンダリ移行構造がある場合は、次のバージョンを選択します。

    • MySQL バージョン > 5.7.1
    • MariaDB バージョン >= 10.1.3
  • DDL構文の互換性

    • 現在、TiDB は MySQL がサポートするすべての DDL ステートメントと互換性がありません。DM は DDL ステートメントの処理に TiDB パーサーを使用するため、TiDB パーサーでサポートされる DDL 構文のみをサポートします。詳細については、 MySQL 互換性参照してください。

    • DM は、互換性のない DDL 文に遭遇するとエラーを報告します。このエラーを解決するには、この DDL 文をスキップするか、指定された DDL 文に置き換えるかして、dmctl を使用して手動で処理する必要があります。詳細については、 異常なSQL文をスキップまたは置換する参照してください。

    • DM は、ビュー関連の DDL ステートメントと DML ステートメントをダウンストリーム TiDB クラスターに複製しません。ダウンストリーム TiDB クラスターにビューを手動で作成することをお勧めします。

  • GBK 文字セットの互換性

    • DM は、v5.4.0 より前の TiDB クラスターへのcharset=GBKテーブルの移行をサポートしていません。
  • Binlogの互換性

    • DM は MySQL 8.0 の新機能binlog トランザクションペイロードイベントをサポートしていません。binlog Transaction_payload_event を使用すると、アップストリームとダウンストリームの間でデータの不整合が発生する可能性があります。

貢献する

DM オープンソース プロジェクトへの参加を歓迎します。あなたの貢献は大歓迎です。詳細については、 貢献.mdを参照してください。

コミュニティサポート

DM の詳細については、オンライン ドキュメントをご覧ください。ご質問がある場合は、 GitHubまでお問い合わせください。

ライセンス

DM は Apache 2.0 ライセンスに準拠しています。詳細についてはライセンスを参照してください。

DM バージョン

v5.4 より前の DM ドキュメントは TiDB ドキュメントから独立しています。以前のバージョンの DM ドキュメントにアクセスするには、次のいずれかのリンクをクリックしてください。

注記:

  • 2021 年 10 月より、DM の GitHub リポジトリはピンキャップ/tiflowに移動されました。DM で問題が発生した場合は、フィードバックを得るためにpingcap/tiflowリポジトリに問題を送信してください。
  • 以前のバージョン (v1.0 および v2.0) では、DM は TiDB とは独立したバージョン番号を使用します。v5.3 以降、DM は TiDB と同じバージョン番号を使用します。DM v2.0 の次のバージョンは DM v5.3 です。DM v2.0 から v5.3 への互換性の変更はなく、アップグレード プロセスは通常のアップグレードと同じで、バージョン番号が増加するだけです。

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