📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

TiDBデータ移行の概要



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

基本機能

  • MySQLとの互換性。DMはMySQLプロトコルと互換性があり、 MySQL 5.7およびMySQL 8.0のほとんどの機能と構文に対応しています。
  • DMLおよびDDLイベントの複製。MySQLbinlog内の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テーブルの移動をサポートしていません。
  • Binlogの互換性

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

    • DMは、MySQLベクトルデータ型をTiDBに移行または複製することをサポートしていません。

貢献する

DMオープンソースプロジェクトへのご参加を歓迎いたします。皆様のご貢献を心よりお待ちしております。詳細については、 CONTRIBUTING.mdをご覧ください。

コミュニティのサポート

DMについては、オンラインドキュメントで詳しく学ぶことができます。ご質問があれば、 GitHubでお問い合わせください。

ライセンス

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

DM版

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

注記:

  • 2021年10月以降、DMのGitHubリポジトリはpingcap/tiflowに移行しました。DMに問題がある場合は、フィードバックのためにpingcap/tiflowリポジトリに問題を報告してください。
  • 以前のバージョン(v1.0およびv2.0)では、DMはTiDBとは独立したバージョン番号を使用していました。v5.3以降、DMはTiDBと同じバージョン番号を使用するようになりました。DM v5.3はDM v2.0に互換性の変更はなく、アップグレードプロセスは標準的なもので、バージョン番号を上げるだけです。

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