シャードテーブルからのデータのマージと移行

このドキュメントでは、Data Migration (DM) によって提供されるシャーディング サポート機能を紹介します。この機能を使用すると、アップストリームの MySQL または MariaDB インスタンスにある同じまたは異なるテーブル スキーマを持つテーブルのデータを、ダウンストリーム TiDB の 1 つの同じテーブルにマージおよび移行できます。アップストリーム DML ステートメントの移行だけでなく、複数のアップストリーム シャード テーブルで DDL ステートメントを使用してテーブル スキーマ変更を移行するための調整もサポートします。

概要

DM は、複数のアップストリーム シャード テーブルのデータを TiDB の 1 つのテーブルにマージおよび移行することをサポートします。移行中に、各シャード テーブルの DDL、および DDL の前後の DML を調整する必要があります。使用シナリオに関して、DM は悲観的モードと楽観的モードの 2 つの異なるモードをサポートします。

ノート:

  • シャードテーブルからデータをマージおよび移行するには、タスク構成ファイルでshard-modeを設定する必要があります。
  • DM は、シャーディング サポート機能のマージにデフォルトで悲観的モードを使用します。 (ドキュメント内に特別な記述がない場合は、デフォルトで悲観的モードを使用します。)
  • 楽観的モードの原理と制限を理解していない場合は、このモードを使用することはお勧めできません。そうしないと、移行の中断やデータの不整合などの重大な結果が生じる可能性があります。

悲観的モード

上流のシャードテーブルが DDL ステートメントを実行すると、このシャードテーブルの移行は一時停止されます。他のすべてのシャードテーブルが同じ DDL を実行した後、DDL はダウンストリームで実行され、データ移行タスクが再開されます。このモードの利点は、ダウンストリームに移行されたデータが間違っていないことを保証できることです。詳細は悲観的モードでのシャードのマージを参照してください。

楽観的モード

DM は、シャード テーブルで実行される DDL を他のシャード テーブルと互換性のあるステートメントに自動的に変更し、ダウンストリームに移行します。これにより、シャード テーブルの DML 移行がブロックされることはありません。このモードの利点は、DDL の処理時にデータの移行をブロックしないことです。ただし、不適切に使用すると、移行が中断されたり、データの不整合が発生したりすることがあります。詳細は楽観的モードでのシャードマージを参照してください。

対比

悲観的モード楽観的モード
DDL を実行するシャードテーブルは DML 移行を一時停止しますDDL を実行するシャードテーブルは DML 移行を続行します
各シャードテーブルの DDL 実行順序とステートメントは同じである必要があります各シャードテーブルは、テーブルスキーマの相互互換性を維持することのみが必要です。
シャード グループ全体の一貫性が保たれた後、DDL がダウンストリームに移行されます。各シャードテーブルの DDL は、ダウンストリームに直ちに影響します。
間違った DDL 操作は、検出後にインターセプト可能間違った DDL 操作はダウンストリームに移行され、検出される前にアップストリーム データとダウンストリーム データの間で不整合が発生する可能性があります。

このページは役に立ちましたか?

Playground
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。
製品
TiDB Dedicated
TiDB Serverless
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.