DMワーカーの紹介
DM-worker は、MySQL/MariaDB から TiDB にデータを移行するために使用されるツールです。
次の機能があります。
- MySQL または MariaDB インスタンスのセカンダリ データベースとして機能
- MySQL/MariaDB からバイナリログ イベントを読み取り、ローカル ストレージに永続化します。
- 単一の DM-worker は、1 つの MySQL/MariaDB インスタンスのデータを複数の TiDB インスタンスに移行することをサポートします
- 複数の DM-worker は、複数の 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-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 (バイナリログを読み取る)REPLICATION CLIENT ( show master status , show slave status ) | ヌル | ローカル ファイルの読み取り/書き込み |
ごみ | SELECT RELOAD (読み取りロックでテーブルをフラッシュし、テーブルのロックを解除します) | ヌル | ローカル ファイルの書き込み |
ロード | ヌル | SELECT (チェックポイント履歴を照会)CREATE (データベース/テーブルを作成する)DELETE (チェックポイントを削除)INSERT (ダンプ データの挿入) | ローカル ファイルの読み取り/書き込み |
Binlogのレプリケーション | REPLICATION SLAVE (バイナリログを読み取る)REPLICATION CLIENT ( show master status , show slave status ) | SELECT (インデックスと列を表示)INSERT (DML)UPDATE (DML)DELETE (DML)CREATE (データベース/テーブルを作成)DROP (データベース/テーブルを削除)ALTER (テーブルを変更)INDEX (インデックスの作成/削除) | ローカル ファイルの読み取り/書き込み |
ノート:
これらの権限は不変ではなく、リクエストが変更されると変更されます。