📣

TiDB Cloud Serverless が
Starter
に変わりました!このページは自動翻訳されたものです。
原文はこちらからご覧ください。

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

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

v7.1.0以降、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 バージョン (つまり、x >= 2 の v7.1.x) から v7.4.0 以降のバージョンにアップグレードします。
    • v7.4.0 から以降のバージョンにアップグレードする

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

オリジナル版アップグレード版アップグレード方法注記
< バージョン7.1.0任意のバージョンスムーズなアップグレードはサポートされません。
バージョン7.1.0v7.1.1、v7.2.0、または v7.3.0スムーズなアップグレードが自動的にサポートされます。追加の操作は必要ありません。Experimentalな機能です。問題#44760発生する可能性があります。
バージョン7.1.1v7.2.0 または v7.3.0スムーズなアップグレードが自動的にサポートされます。追加の操作は必要ありません。Experimental機能です。
バージョン7.2.0バージョン7.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クラスタを直接アップグレードできます。3 tiup cluster patchは現在サポートされていないことに注意してください。

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

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

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

TiDB を手動でアップグレードするか、スクリプトを使用してアップグレードするには、次の手順に従います。

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

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

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

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

制限事項

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

注記:

このセクションの制限は、スムーズ アップグレード機能を使用するシナリオだけでなく、 TiUPを使用して TiDB をアップグレードするにも適用されます。

ユーザー操作の制限

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

    • クラスタ内にキャンセル中のDDLジョブがある場合、つまり実行中のDDLジョブがユーザーによってキャンセルされている場合、キャンセル中のジョブは一時停止できないため、TiDBはジョブのキャンセルを再試行します。再試行が失敗した場合はエラーが報告され、アップグレードは終了します。
    • 現在ご使用の TiDB バージョンが v8.1.0 より前で、TiDB Distributed eXecution Framework (DXF) が有効になっている場合は、 tidb_enable_dist_taskOFFに設定して無効にしてください。実行中の分散タスクADD INDEXIMPORT INTOすべて完了していることを確認してください。または、これらのタスクをキャンセルし、アップグレードが完了するまで待ってから再開することもできます。そうしないと、アップグレード中のADD INDEX操作によってデータインデックスの不整合が発生する可能性があります。現在ご使用の TiDB バージョンが v8.1.0 以降の場合は、DXF を無効にする必要はなく、この制限は無視してかまいません。
  • 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操作がシステムテーブル以外のテーブルに対して実行されると、アップグレードが失敗する可能性があります。

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