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-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'; GRANT ALL ON dm_meta.* TO 'your_user'@'your_wildcard_of_host';

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

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

注記:

これらの権限は不変ではなく、リクエストが変化すると変化します。

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