TiDB データ移行の概要
TiDB データ移行 (DM) は、統合されたデータ移行タスク管理プラットフォームであり、MySQL 互換データベース (MySQL、MariaDB、 Aurora MySQL など) から TiDB への完全なデータ移行と増分データ レプリケーションをサポートします。データ移行の運用コストを削減し、トラブルシューティング プロセスを簡素化するのに役立ちます。
基本的な機能
- MySQLとの互換性。 DM は、MySQL 5.7プロトコル、およびMySQL 5.7のほとんどの機能と構文と互換性があります。
- DML および DDL イベントをレプリケートします。 MySQL binlogでの DML および DDL イベントの解析とレプリケートをサポートします。
- MySQL シャードの移行とマージ。 DM は、複数の MySQL データベース インスタンスをアップストリームから 1 つの TiDB データベース ダウンストリームに移行およびマージすることをサポートします。さまざまな移行シナリオに合わせてレプリケーション ルールのカスタマイズをサポートします。アップストリーム MySQL シャードの DDL 変更を自動的に検出して処理できるため、運用コストが大幅に削減されます。
- 各種フィルター。イベント タイプ、正規表現、および SQL 式を事前定義して、データ移行プロセス中に MySQLbinlogイベントをフィルタリングして除外できます。
- 一元管理。 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 の互換性を参照してください。
DM は、互換性のない DDL ステートメントが発生するとエラーを報告します。このエラーを解決するには、dmctl を使用して手動で処理し、この DDL ステートメントをスキップするか、指定された DDL ステートメントに置き換える必要があります。詳細は異常な SQL ステートメントをスキップまたは置換するを参照してください。
DM は、ビュー関連の DDL ステートメントおよび DML ステートメントをダウンストリーム TiDB クラスターに複製しません。ダウンストリーム TiDB クラスターにビューを手動で作成することをお勧めします。
GBK 文字セットの互換性
- DM は、v5.4.0 より前の TiDB クラスターへの
charset=GBK
テーブルの移行をサポートしていません。
- DM は、v5.4.0 より前の TiDB クラスターへの
貢献する
DM オープンソース プロジェクトにぜひご参加ください。皆様のご貢献を心よりお待ちしております。詳細については、 貢献.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 への互換性の変更はなく、アップグレード プロセスは通常のアップグレードと同じですが、バージョン番号が増加するだけです。