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

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

v7.1.0 以降、TiDB を新しいバージョンにアップグレードする場合、TiDB はスムーズなアップグレードをサポートします。この機能により、アップグレード プロセス中の制限がなくなり、よりユーザー フレンドリーなアップグレード エクスペリエンスが提供されます。アップグレード プロセス中にユーザーが開始した DDL 操作がないことを確認する必要があることに注意してください。

サポートされているバージョン

機能をスイッチで制御する必要があるかどうかに応じて、スムーズ アップグレードを使用するには 2 つの方法があります。

  • この機能はデフォルトで有効になっており、スイッチで制御する必要はありません。現在、この方法をサポートしているバージョンは v7.1.0、v7.1.1、v7.2.0、および v7.3.0 です。サポートされている具体的なバージョンは次のとおりです。

    • v7.1.0 から v7.1.1、v7.2.0、または v7.3.0 へのアップグレード
    • v7.1.1 から v7.2.0 または v7.3.0 へのアップグレード
    • v7.2.0 から v7.3.0 へのアップグレード
  • この機能はデフォルトでは無効になっていますが、 /upgrade/startリクエストを送信することで有効にできます。詳細はTiDB HTTP APIを参照してください。サポートされているバージョンは次のとおりです。

    • v7.1.2 以降の v7.1 バージョン (つまり、v7.1.x、x >= 2) から v7.4.0 以降のバージョンへのアップグレード
    • v7.4.0 からそれ以降のバージョンへのアップグレード

特定のバージョンでサポートされているアップグレード方法については、次の表を参照してください。

元のバージョンアップグレード版アップグレード方法注記
< v7.1.0任意のバージョンスムーズなアップグレードはサポートされていません。
v7.1.0v7.1.1、v7.2.0、または v7.3.0スムーズなアップグレードが自動的にサポートされます。追加の操作は必要ありません。Experimental機能。問題#44760が発生する可能性があります。
v7.1.1v7.2.0 または v7.3.0スムーズなアップグレードが自動的にサポートされます。追加の操作は必要ありません。Experimental機能。
v7.2.0v7.3.0スムーズなアップグレードが自動的にサポートされます。追加の操作は必要ありません。Experimental機能。
[v7.1.2、v7.2.0)[v7.1.2、v7.2.0)/upgrade/start HTTP リクエストを送信することで、スムーズなアップグレードを可能にします。 TiUPを使用するその他のアップグレード方法 2つの方法があります。スムーズ アップグレードが有効になっていない場合は、アップグレード中に DDL 操作が実行されないようにしてください。
[v7.1.2、v7.2.0) または v7.4.0 以上= v7.4.0/upgrade/start HTTP リクエストを送信することで、スムーズなアップグレードを可能にします。 TiUPを使用するその他のアップグレード方法 2つの方法があります。スムーズ アップグレードが有効になっていない場合は、アップグレード中に DDL 操作が実行されないようにしてください。
v7.1.0、v7.1.1、v7.2.0、および v7.3.0= v7.4.0スムーズなアップグレードはサポートされていません。

機能紹介

スムーズ アップグレード機能が導入される前は、アップグレード プロセス中の DDL 操作に次の制限があります。

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

これらの制限を要約すると、アップグレード プロセス中にユーザーが開始した DDL 操作がないようにする必要があるということです。スムーズ アップグレード機能の導入後、TiDB はアップグレード プロセス中にこの制限の影響を受けなくなります。

詳細については、 TiUPを使用して TiDB をアップグレードする警告の内容を参照してください。

アップグレード手順

TiUPを使用してアップグレードする

v1.14.0 以降、 TiUP はこの機能を自動的にサポートします。つまり、 tiup cluster upgradeコマンドを直接使用して TiDB クラスターをアップグレードできます。 tiup cluster patchコマンドは現在サポートされていないことに注意してください。

TiDB Operator を使用してアップグレードする

現在、この機能はサポートされていません。できるだけ早くサポートさせていただきます。

その他のアップグレード方法

次の手順を実行して、手動またはスクリプトを使用して TiDB をアップグレードできます。

  1. HTTP アップグレード開始リクエストをクラスター内の任意の TiDB ノードに送信します。 curl -X POST http://{TiDBIP}:10080/upgrade/start .

    • TiDB クラスターはアップグレード状態になります。
    • 実行される DDL 操作は一時停止されます。
  2. TiDB バイナリを置き換えて、ローリング アップグレードを実行します。このプロセスは、元のアップグレード プロセスと同じです。

    • システム DDL 操作は、アップグレード プロセス中に実行されます。
  3. クラスター内のすべての TiDB ノードが正常にアップグレードされたら、HTTP アップグレード終了リクエストをcurl -X POST http://{TiDBIP}:10080/upgrade/finishの TiDB ノードに送信します。

    • 一時停止されていたユーザーの DDL 操作が再開されます。

制限事項

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

ユーザー操作の制限

  • アップグレードする前に、次の制限事項を考慮してください。

    • クラスター内にキャンセル中の DDL ジョブがある場合、つまり進行中の DDL ジョブがユーザーによってキャンセルされている場合、キャンセル状態のジョブは一時停止できないため、TiDB はジョブのキャンセルを再試行します。再試行が失敗した場合は、エラーが報告され、アップグレードは終了します。
    • TiDB Distributed eXecution Framework (DXF) が有効になっている場合は、 tidb_enable_dist_taskOFF (デフォルト値) を設定して無効にします。進行中の分散ADD INDEXおよびIMPORT INTOタスクがすべて完了していることを確認してください。あるいは、これらのタスクをキャンセルし、アップグレードが完了するまで待って再開することもできます。そうしないと、アップグレード中のADD INDEX操作によってデータ インデックスの不整合が発生する可能性があります。
  • 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 操作が含まれている場合、インポート操作がブロックされ、未定義のエラーが発生する可能性があります。

プラグインの制限

TiDB にインストールされているプラ​​グインには DDL 操作が含まれている場合があります。ただし、アップグレード中に、プラグインの DDL 操作がシステム以外のテーブルで実行されると、アップグレードが失敗する可能性があります。

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

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