TiDB 移行ツールの概要

TiDB は、完全なデータ移行、増分データ移行、バックアップと復元、データ複製など、さまざまなシナリオに対応する複数のデータ移行ツールを提供します。

このドキュメントでは、これらのツールのユーザー シナリオ、サポートされているアップストリームとダウンストリーム、利点、制限について説明します。ニーズに応じて適切なツールを選択できます。

TiDB データ移行 (DM)

  • ユーザーシナリオ: MySQL互換データベースからTiDBへのデータ移行
  • アップストリーム: MySQL、MariaDB、 Aurora
  • 下流:TiDB
  • 利点:
    • 完全なデータ移行と増分レプリケーションをサポートする、便利で統合されたデータ移行タスク管理ツール
    • フィルタリングテーブルと操作をサポート
    • シャードのマージと移行をサポート
  • 制限: データのインポート速度は、TiDB Lightning 論理インポートモードとほぼ同じですが、TiDB Lightning 物理インポートモードよりも大幅に遅くなります。そのため、1 TiB 未満のサイズの全データを移行するには、DM を使用することをお勧めします。

TiDB Lightning

  • ユーザーシナリオ: TiDBへの完全なデータのインポート
  • アップストリーム(インポートされたソースファイル) :
    • Dumplingからエクスポートされたファイル
    • Amazon Auroraまたは Apache Hive によってエクスポートされた Parquet ファイル
    • CSVファイル
    • ローカルディスクまたは Amazon S3 からのデータ
  • 下流:TiDB
  • 利点:
    • 大量のデータを迅速にインポートし、TiDB クラスタ内の特定のテーブルを迅速に初期化する機能をサポート
    • インポートの進行状況を保存するチェックポイントをサポートし、再起動後に中断したところからtidb-lightningを続行します。
    • データフィルタリングをサポート
  • 制限事項:
    • データのインポートに物理インポートモード使用すると、インポート プロセス中に TiDB クラスターはサービスを提供できません。
    • TiDB サービスに影響を与えたくない場合は、 TiDB Lightning 論理インポートモードに従ってデータのインポートを実行してください。

Dumpling

  • ユーザーシナリオ: MySQL または TiDB からの完全なデータエクスポート
  • アップストリーム: MySQL、TiDB
  • 下流(出力ファイル) : SQL、CSV
  • 利点:
    • データのフィルタリングを容易にするテーブルフィルタ機能をサポート
    • Amazon S3へのデータのエクスポートをサポート
  • 制限事項:
    • エクスポートしたデータを TiDB 以外のデータベースに復元する場合は、 Dumpling を使用することをお勧めします。
    • エクスポートしたデータを別の TiDB クラスターに復元する場合は、バックアップと復元 (BR) を使用することをお勧めします。

ティCDC

  • ユーザーシナリオ: このツールは、TiKV 変更ログをプルすることによって実装されます。これにより、クラスター データを任意のアップストリーム TSO と一貫した状態に復元し、他のシステムがデータの変更をサブスクライブできるようにサポートできます。
  • 上流: TiDB
  • ダウンストリーム: TiDB、MySQL、Kafka、MQ、Confluent、Amazon S3、GCS、Azure Blob Storage、NFS などのstorageサービス。
  • 利点: TiCDCオープンプロトコルを提供する
  • 制限事項: TiCDC は、少なくとも 1 つの有効なインデックスを持つテーブルのみをレプリケートします。次のシナリオはサポートされていません。
    • RawKV のみを使用する TiKV クラスター。
    • DDL 操作CREATE SEQUENCEと TiDB のSEQUENCE関数。

バックアップと復元 (BR)

  • ユーザーシナリオ: データのバックアップと復元によって大量の TiDB クラスターデータを移行する
  • 上流: TiDB
  • 下流(出力ファイル) : SST、backup.meta ファイル、backup.lock ファイル
  • 利点:
    • 別のTiDBクラスタへのデータ移行に適しています
    • 災害復旧のための外部storageへのデータバックアップをサポート
  • 制限事項:
    • BR がTiCDC またはDrainerの上流クラスターにデータを復元する場合、復元されたデータは TiCDC またはDrainerによって下流に複製できません。
    • BR は、 mysql.tidbテーブルで同じnew_collation_enabled値を持つクラスター間の操作のみをサポートします。

同期差分インスペクター

  • ユーザーシナリオ: MySQLプロトコルを使用してデータベースに保存されたデータを比較する
  • アップストリーム: TiDB、MySQL
  • ダウンストリーム: TiDB、MySQL
  • 利点: 少量のデータが不整合なシナリオでデータを修復するために使用できます。
  • 制限事項:
    • MySQL と TiDB 間のデータ移行ではオンライン チェックはサポートされていません。
    • JSON、BIT、BINARY、BLOB などのタイプのデータはサポートされていません。

TiUPを使用してツールをインストールする

TiDB v4.0 以降、 TiUP は、TiDB エコシステム内のさまざまなクラスター コンポーネントの管理に役立つパッケージ マネージャーとして機能します。これで、1 つのコマンドを使用して任意のクラスターコンポーネントを管理できます。

ステップ1. TiUPをインストールする

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

グローバル環境変数を再宣言します。

source ~/.bash_profile

ステップ2. コンポーネントをインストールする

使用可能なすべてのコンポーネントを表示するには、次のコマンドを使用できます。

tiup list

コマンド出力には、使用可能なすべてのコンポーネントがリストされます。

Available components: Name Owner Description ---- ----- ----------- bench pingcap Benchmark database with different workloads br pingcap TiDB/TiKV cluster backup restore tool cdc pingcap CDC is a change data capture tool for TiDB client pingcap Client to connect playground cluster pingcap Deploy a TiDB cluster for production ctl pingcap TiDB controller suite dm pingcap Data Migration Platform manager dmctl pingcap dmctl component of Data Migration Platform errdoc pingcap Document about TiDB errors pd-recover pingcap PD Recover is a disaster recovery tool of PD, used to recover the PD cluster which cannot start or provide services normally playground pingcap Bootstrap a local TiDB cluster for fun tidb pingcap TiDB is an open source distributed HTAP database compatible with the MySQL protocol tidb-lightning pingcap TiDB Lightning is a tool used for fast full import of large amounts of data into a TiDB cluster tiup pingcap TiUP is a command-line component management tool that can help to download and install TiDB platform components to the local system

インストールするコンポーネントを選択してください:

tiup install dumpling tidb-lightning

注記:

特定のバージョンのコンポーネントをインストールするには、 tiup install <component>[:version]コマンドを使用します。

ステップ3. TiUPとそのコンポーネントを更新する(オプション)

新しいバージョンのリリース ログと互換性に関する注意事項を確認することをお勧めします。

tiup update --self && tiup update dm

参照

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