重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

DMワーカーの紹介

DM-workerは、MySQL/MariaDBからTiDBにデータを移行するために使用されるツールです。

次の機能があります。

  • MySQLまたはMariaDBインスタンスのセカンダリデータベースとして機能します
  • MySQL / MariaDBからbinlogイベントを読み取り、ローカルストレージに保持します
  • 1人のDMワーカーが、1つのMySQL/MariaDBインスタンスのデータを複数のTiDBインスタンスに移行することをサポートします
  • 複数のDMワーカーは、複数のMySQL/MariaDBインスタンスのデータを1つのTiDBインスタンスに移行することをサポートします

DM-worker処理ユニット

DM-workerタスクには、リレーログ、ダンプ処理ユニット、ロード処理ユニット、binlogレプリケーションなどの複数のロジックユニットが含まれています。

リレーログ

リレーログは、アップストリームのMySQL / MariaDBからのbinlogデータを永続的に保存し、binlogレプリケーションのbinlogイベントにアクセスする機能を提供します。

その理論的根拠と機能は、MySQLのリレーログに似ています。詳細については、 MySQLリレーログを参照してください。

ダンプ処理装置

ダンプ処理ユニットは、アップストリームのMySQL/MariaDBからローカルディスクに完全なデータをダンプします。

負荷処理装置

ロード処理ユニットは、ダンプ処理ユニットのダンプされたファイルを読み取り、これらのファイルをダウンストリームTiDBにロードします。

Binlogレプリケーション/同期処理ユニット

Binlogレプリケーション/同期処理ユニットは、アップストリームのMySQL / MariaDBのbinlogイベントまたはリレーログのbinlogイベントを読み取り、これらのイベントをSQLステートメントに変換してから、これらのステートメントをダウンストリームのTiDBに適用します。

DM-workerに必要な権限

このセクションでは、DM-workerに必要なアップストリームおよびダウンストリームデータベースのユーザー権限と、それぞれの処理装置に必要なユーザー権限について説明します。

アップストリームデータベースのユーザー権限

アップストリームデータベース(MySQL / MariaDB)ユーザーには、次の権限が必要です。

特権範囲
SELECTテーブル
RELOADグローバル
REPLICATION SLAVEグローバル
REPLICATION CLIENTグローバル

データをdb1からTiDBに移行する必要がある場合は、次のGRANTのステートメントを実行します。

GRANT RELOAD,REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'your_user'@'your_wildcard_of_host'
GRANT SELECT ON db1.* TO 'your_user'@'your_wildcard_of_host';

他のデータベースからTiDBにデータを移行する必要がある場合は、それぞれのデータベースのユーザーに同じ権限が付与されていることを確認してください。

ダウンストリームデータベースのユーザー権限

ダウンストリームデータベース(TiDB)ユーザーには、次の権限が必要です。

特権範囲
SELECTテーブル
INSERTテーブル
UPDATEテーブル
DELETEテーブル
CREATEデータベース、テーブル
DROPデータベース、テーブル
ALTERテーブル
INDEXテーブル

移行する必要のあるデータベースまたはテーブルに対して、次のGRANTのステートメントを実行します。

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX  ON db.table TO 'your_user'@'your_wildcard_of_host';

各処理装置に必要な最小限の特権

処理装置最小限のアップストリーム(MySQL / MariaDB)特権最小限のダウンストリーム(TiDB)特権最小限のシステム特権
リレーログREPLICATION SLAVE (binlogを読み取ります)
REPLICATION CLIENTshow master status show slave status
ヌルローカルファイルの読み取り/書き込み
ごみSELECT
RELOAD (読み取りロックでテーブルをフラッシュし、テーブルのロックを解除します)
ヌルローカルファイルを書き込む
ロードヌルSELECT (チェックポイント履歴を照会する)
CREATE (データベース/テーブルを作成します)
DELETE (チェックポイントを削除します)
INSERT (ダンプデータを挿入します)
ローカルファイルの読み取り/書き込み
BinlogレプリケーションREPLICATION SLAVE (binlogを読み取ります)
REPLICATION CLIENTshow master status show slave status
SELECT (インデックスと列を表示)
INSERT (DML)
UPDATE (DML)
DELETE (DML)
CREATE (データベース/テーブルを作成します)
DROP (データベース/テーブルを削除します)
ALTER (テーブルを変更します)
INDEX (インデックスを作成/削除)
ローカルファイルの読み取り/書き込み

ノート:

これらの特権は不変ではなく、要求の変更に応じて変更されます。