ターゲットデータベースのTiDB Lightning要件
TiDB Lightningを使用する前に、環境が要件を満たしているかどうかを確認する必要があります。これにより、インポート時のエラーが軽減され、インポートが確実に成功します。
ターゲットデータベースの権限
インポートモードと有効な機能に基づいて、ターゲットデータベースユーザーには異なる権限を付与する必要があります。次の表にその例を示します。
| 特徴 | 範囲 | 必要な権限 | 備考 | |
| 必須 | 基本関数 | ターゲットテーブル | 作成、選択、挿入、更新、削除、ドロップ、変更 | DROP は、tidb-lightning-ctl が checkpoint-destroy-all コマンドを実行する場合にのみ必要です。 |
| ターゲットデータベース | 作成する | |||
| 必須 | 論理インポートモード | 情報スキーマ列 | 選択 | |
| 物理インポートモード | mysql.tidb | 選択 | ||
| - | 素晴らしい | |||
| - | 制限付き変数管理者、制限付きテーブル管理者 | ターゲットTiDBがSEMを有効にする場合に必要 | ||
| 推奨 | 競合検出、最大エラー | lightning.task-info-schema-name 用に設定されたスキーマ | 選択、挿入、更新、削除、作成、削除 | 必要でない場合は、値を "" に設定する必要があります |
| オプション | 並行輸入 | lightning.meta-schema-name 用に設定されたスキーマ | 選択、挿入、更新、削除、作成、削除 | 必要でない場合は、値を "" に設定する必要があります |
| オプション | チェックポイント.ドライバー = "mysql" | checkpoint.schema 設定 | 選択、挿入、更新、削除、作成、削除 | チェックポイント情報がファイルではなくデータベースに保存される場合に必要 |
対象データベースのストレージスペース
ターゲットTiKVクラスターには、インポートしたデータを保存するための十分なディスク容量が必要です。1 に加え標準的なハードウェア要件 、ターゲットTiKVクラスターのstorage容量は、データソースのサイズ × レプリカ数 × 2よりも大きくなければなりません。例えば、クラスターがデフォルトで3つのレプリカを使用する場合、ターゲットTiKVクラスターにはデータソースのサイズの6倍よりも大きなstorage容量が必要です。式に x 2 が含まれているのは、以下の理由によるものです。
- インデックスは余分なスペースを占める可能性があります。
- RocksDB には空間増幅効果があります。
DumplingがMySQLからエクスポートするデータ量を正確に計算することは困難です。ただし、次のSQL文を使用してinformation_schema.tablesテーブルのDATA_LENGTHフィールドを集計することで、データ量を概算できます。
-- Calculate the size of all schemas
SELECT
TABLE_SCHEMA,
FORMAT_BYTES(SUM(DATA_LENGTH)) AS 'Data Size',
FORMAT_BYTES(SUM(INDEX_LENGTH)) 'Index Size'
FROM
information_schema.tables
GROUP BY
TABLE_SCHEMA;
-- Calculate the 5 largest tables
SELECT
TABLE_NAME,
TABLE_SCHEMA,
FORMAT_BYTES(SUM(data_length)) AS 'Data Size',
FORMAT_BYTES(SUM(index_length)) AS 'Index Size',
FORMAT_BYTES(SUM(data_length+index_length)) AS 'Total Size'
FROM
information_schema.tables
GROUP BY
TABLE_NAME,
TABLE_SCHEMA
ORDER BY
SUM(DATA_LENGTH+INDEX_LENGTH) DESC
LIMIT
5;