データ移行の概要
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 は v5.4.0 より前の TiDB クラスターへの
貢献する
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 への互換性の変更はなく、アップグレード プロセスは通常のアップグレードと同じで、バージョン番号が増えるだけです。