TiDB のスムーズなアップグレード

このドキュメントでは、DDL 操作を手動でキャンセルせずに TiDB クラスターのアップグレードをサポートする TiDB のスムーズ アップグレード機能を紹介します。

v7.1.0 以降、TiDB を新しいバージョンにアップグレードする場合、TiDB はスムーズなアップグレードをサポートします。この機能により、アップグレード プロセス中の制限がなくなり、よりユーザー フレンドリーなアップグレード エクスペリエンスが提供されます。この機能はデフォルトで有効になっており、無効にすることはできません。

機能紹介

スムーズ アップグレード機能が導入される前は、アップグレード プロセス中の DDL 操作に次の制限があります ( TiUPを使用して TiDB をアップグレードする警告内容を参照)。

  • アップグレード プロセス中に DDL 操作を実行すると、TiDB で未定義の動作が発生する可能性があります。
  • DDL 操作中に TiDB をアップグレードすると、TiDB で未定義の動作が発生する可能性があります。

スムーズ アップグレード機能が導入された後、アップグレード プロセスは前述の制限の影響を受けなくなります。

アップグレード プロセス中に、TiDB はユーザーの介入なしで次の操作を自動的に実行します。

  1. ユーザーの DDL 操作を一時停止します。
  2. アップグレードのためのシステム DDL 操作を実行します。
  3. 一時停止したユーザー DDL 操作を再開します。
  4. アップグレードを完了します。

再開された DDL ジョブは、引き続きアップグレード前の順序で実行されます。

制限事項

スムーズ アップグレード機能を使用する場合は、次の制限事項に注意してください。

ユーザー操作の制限

  • アップグレード前に、クラスター内にキャンセル中の DDL ジョブがある場合、つまり、進行中の DDL ジョブがユーザーによってキャンセルされている場合、キャンセル状態のジョブは一時停止できないため、TiDB はジョブのキャンセルを再試行します。再試行が失敗した場合は、エラーが報告され、アップグレードは終了します。

  • TiUPを使用して TiDB をアップグレードするシナリオでは、 TiUP のアップグレードにはタイムアウト期間があるため、アップグレード前にクラスターのキューで待機している多数の DDL ジョブ (300 を超える) がある場合、アップグレードが失敗する可能性があります。

  • アップグレード中は、次の操作は許可されません。

    • システム テーブル ( mysql.*information_schema.*performance_schema.* 、およびmetrics_schema.* ) に対して DDL 操作を実行します。
    • DDL ジョブを手動でキャンセルします。 ADMIN CANCEL DDL JOBS job_id [, job_id] ...; .
    • データをインポートします。

ツールの制限

  • アップグレード中は、次のツールの使用はサポートされません。

    • BR: BR は、一時停止された DDL ジョブを TiDB に複製する可能性があります。一時停止された DDL ジョブは自動的に再開できないため、DDL ジョブが後で停止する可能性があります。

    • DM および TiCDC: アップグレード プロセス中に DM または TiCDC を使用して SQL ステートメントを TiDB にインポートする場合、および SQL ステートメントの 1 つに DDL 操作が含まれている場合、インポート操作がブロックされ、未定義のエラーが発生する可能性があります。

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