TiDB データ移行の概要
TiDBデータ移行は、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変更を自動的に検出・処理できるため、運用コストを大幅に削減できます。
- さまざまな種類のフィルター。イベントタイプ、正規表現、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.6 ~ 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 クラスターへの
Binlogの互換性
- DMはMySQL 8.0の新機能binlog トランザクションペイロードイベントをサポートしていません。binlog Transaction_payload_eventを使用すると、上流と下流の間でデータの不整合が発生する可能性があります。
ベクトルデータ型の複製
- DM は、MySQL ベクトル データ型の TiDB への移行または複製をサポートしていません。
貢献
DMオープンソースプロジェクトへのご参加をお待ちしております。皆様のご貢献を心よりお待ちしております。詳細は貢献.mdご覧ください。
コミュニティサポート
DMの詳細については、オンラインドキュメントをご覧ください。ご質問がございましたら、 GitHubまでお問い合わせください。
ライセンス
DMはApache 2.0ライセンスに準拠しています。詳細についてはライセンス参照してください。
DMバージョン
バージョン5.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への互換性の変更はなく、アップグレードプロセスは通常のアップグレードと同じで、バージョン番号の増加のみです。