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 status 、 show slave status ) | ヌル | ローカルファイルの読み取り/書き込み | 
| ごみ | SELECTRELOAD (読み取りロックでテーブルをフラッシュし、テーブルのロックを解除します) | ヌル | ローカルファイルの書き込み | 
| ロード | ヌル | SELECT (チェックポイント履歴を問い合わせる)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 (インデックスの作成/削除) | ローカルファイルの読み取り/書き込み | 
ノート:
これらの権限は不変ではなく、リクエストの変更に応じて変化します。