DMワーカー紹介

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

次のような特徴があります。

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

DMワーカー処理装置

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

リレーログ

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

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

ダンプ処理ユニット

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

ロード処理ユニット

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

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

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

DM ワーカーに必要な権限

このセクションでは、DM ワーカーに必要な上流および下流のデータベース ユーザーの権限、およびそれぞれの処理ユニットに必要なユーザー権限について説明します。

上流データベースのユーザー権限

上流データベース (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'; GRANT ALL ON dm_meta.* TO 'your_user'@'your_wildcard_of_host';

各処理ユニットに必要な最小限の権限

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

ノート:

これらの権限は不変ではなく、リクエストの変更に応じて変化します。

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