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) ユーザーには次の権限が必要です。
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) ユーザーには、次の権限が必要です。
移行する必要があるデータベースまたはテーブルに対して次の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';
各処理ユニットに必要な最小限の権限
注記:
これらの権限は不変ではなく、リクエストが変化すると変化します。