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)ユーザーには、次の権限が必要です。
データを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';
各処理装置に必要な最小限の特権
ノート:
これらの特権は不変ではなく、要求が変更されると変更されます。