TiDB 移行ツールの概要
TiDB は、完全なデータ移行、増分データ移行、バックアップと復元、データ レプリケーションなど、さまざまなシナリオに対応する複数のデータ移行ツールを提供します。
このドキュメントでは、これらのツールのユーザー シナリオ、サポートされるアップストリームとダウンストリーム、利点、および制限事項を紹介します。ニーズに応じて適切なツールを選択できます。
TiDB データ移行 (DM)
- ユーザーシナリオ: MySQL 互換データベースから TiDB へのデータ移行
 - アップストリーム: MySQL、MariaDB、 Aurora
 - ダウンストリーム:TiDB
 - 利点:
- 完全なデータ移行と増分レプリケーションをサポートする便利な統合データ移行タスク管理ツール
 - テーブルと操作のフィルタリングをサポート
 - シャードのマージと移行をサポート
 
 - 制限事項: データのインポート速度は、TiDB Lightning の論理インポートモードとほぼ同じですが、TiDB Lightning の物理インポートモードよりはかなり遅くなります。したがって、DM を使用して、サイズが 1 TiB 未満の完全なデータを移行することをお勧めします。
 
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) を使用することをお勧めします。
 
 
TiCDC
- ユーザー シナリオ: このツールは、TiKV 変更ログを取得することによって実装されます。クラスター データをアップストリーム TSO と一貫した状態に復元し、他のシステムがデータ変更をサブスクライブできるようにサポートします。
 - 上流: TiDB
 - ダウンストリーム: TiDB、MySQL、Kafka、MQ、Confluent、Amazon S3、GCS、Azure Blob Storage、NFS などのstorageサービス。
 - 利点: TiCDC オープン プロトコルを提供
 - 制限事項: TiCDC は、少なくとも 1 つの有効なインデックスを持つテーブルのみを複製します。次のシナリオはサポートされていません。
- RawKV のみを使用する TiKV クラスター。
 - DDL 操作
CREATE SEQUENCEとSEQUENCETiDB で機能します。 
 
バックアップと復元 (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. 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