データ移行の概要

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

基本的な機能

  • MySQL との互換性。 DM は、 MySQL 5.7プロトコル、およびMySQL 5.7 5.7 のほとんどの機能と構文と互換性があります。
  • DML および DDL イベントのレプリケート。 MySQL binlog での DML および DDL イベントの解析と複製をサポートします。
  • MySQL シャードの移行とマージ。 DM は、アップストリームの複数の MySQL データベース インスタンスをダウンストリームの 1 つの TiDB データベースに移行およびマージすることをサポートします。さまざまな移行シナリオのレプリケーション ルールのカスタマイズをサポートしています。アップストリームの MySQL シャードの DDL 変更を自動的に検出して処理できるため、運用コストが大幅に削減されます。
  • 各種フィルター。イベント タイプ、正規表現、および SQL 式を事前に定義して、データ移行プロセス中に MySQL バイナリ ログ イベントを除外できます。
  • 集中管理。 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.5 ~ 5.7

    • MySQL バージョン 8.0 (実験的機能)

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

    ノート:

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

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

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

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

  • GBK 文字セットの互換性

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

貢献する

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

コミュニティサポート

DM については、オンライン ドキュメントで学習できます。ご不明な点がございましたら、 GitHubまでお問い合わせください。

ライセンス

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

DM版

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

ノート:

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