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 CLIENT ( show master status show slave status | ヌル | ローカルファイルの読み取り/書き込み |
ごみ | SELECT RELOAD (読み取りロックを使用してテーブルをフラッシュし、テーブルのロックを解除します) | ヌル | ローカルファイルを書き込む |
ロード | ヌル | 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 (インデックスを作成/削除) | ローカルファイルの読み取り/書き込み |
ノート:
これらの特権は不変ではなく、要求が変更されると変更されます。