アップストリームMySQLインスタンス構成を事前に確認します
このドキュメントでは、DMが提供する事前チェック機能を紹介します。この機能は、データ移行タスクの開始時にアップストリームのMySQLインスタンス構成で発生する可能性のあるエラーを検出するために使用されます。
指示
check-task
を使用すると、アップストリームのMySQLインスタンス構成がDM要件を満たしているかどうかを事前に確認できます。
確認項目
アップストリームおよびダウンストリームのデータベースユーザーは、対応する読み取りおよび書き込み権限を持っている必要があります。 DMは、データ移行タスクの開始時に、次の特権と構成を自動的にチェックします。
データベースバージョン
MySQLバージョン>5.5
MariaDBバージョン>=10.1.2
データベース構成
server_id
が構成されているかどうか
MySQLのbinlog構成
- binlogが有効かどうか(DMではbinlogを有効にする必要があります)
binlog_format=ROW
かどうか(DMはROW形式のbinlogの移行のみをサポートします)binlog_row_image=FULL
かどうか(DMはbinlog_row_image=FULL
のみをサポートします)
アップストリームMySQLインスタンスユーザーの権限
DM構成のMySQLユーザーは、少なくとも次の権限を持っている必要があります。
- レプリケーションスレーブ
- レプリケーションクライアント
- リロード
- 選択する
アップストリームMySQLテーブルスキーマの互換性
TiDBは、次の点でMySQLと互換性が異なります。
- TiDBは外部キーをサポートしていません。
- 文字セットの互換性が異なります 。
DMは、すべてのアップストリームテーブルに主キーまたは一意キーの制限が存在するかどうかもチェックします。このチェックはv1.0.7で導入されました。
複数のアップストリームMySQLインスタンスのシャーディングされたテーブルの一貫性
すべてのシャーディングされたテーブルのスキーマの一貫性
- 列サイズ
- 列名
- 列の位置
- 列タイプ
- 主キー
- 一意のインデックス
シャーディングされたテーブルの自動インクリメント主キーの競合
チェックは、次の2つの条件で失敗します。
- 自動インクリメントの主キーはシャーディングされたテーブルに存在し、その列タイプはbigintではありません。
- 自動インクリメントの主キーはシャーディングされたテーブルに存在し、その列タイプはbigintですが、列マッピングは構成されていません。
チェックは、上記の2つを除く他の条件で成功します。
チェック項目を無効にする
DMは、タスクタイプに従って項目をチェックします。タスク構成ファイルでignore-checking-items
を使用すると、項目のチェックを無効にできます。 ignore-checking-items
の要素オプションのリストは次のとおりです。
エレメント | 説明 |
---|---|
全て | すべてのチェックを無効にします |
dump_privilege | アップストリームMySQLインスタンスユーザーのダンプ関連特権のチェックを無効にします |
Replication_privilege | アップストリームMySQLインスタンスユーザーのレプリケーション関連の権限のチェックを無効にします |
バージョン | アップストリームデータベースのバージョンのチェックを無効にします |
server_id | アップストリームデータベースserver_idのチェックを無効にします |
binlog_enable | アップストリームデータベースでbinlogが有効になっているかどうかのチェックを無効にします |
binlog_format | アップストリームデータベースのbinlog形式がROWであるかどうかのチェックを無効にします |
binlog_row_image | アップストリームデータベースのbinlog_row_imageがFULLであるかどうかのチェックを無効にします |
table_schema | アップストリームのMySQLテーブルスキーマの互換性のチェックを無効にします |
schema_of_shard_tables | マルチインスタンスシャーディングシナリオでアップストリームMySQLシャーディングテーブルのスキーマが一貫しているかどうかのチェックを無効にします |
auto_increment_ID | マルチインスタンスシャーディングシナリオで、アップストリームMySQL共有テーブルの自動インクリメント主キーの競合のチェックを無効にします |