tiup cluster patch
クラスターの実行中にサービスのバイナリを動的に置換する必要がある場合 (つまり、置換プロセス中にクラスターを使用可能な状態に維持する場合)、 tiup cluster patchコマンドを使用できます。コマンドが実行されると、 TiUP は次のことを実行します。
- 置換用のバイナリ パッケージをターゲット マシンにアップロードします。
 - ターゲット サービスが TiKV、 TiFlash、TiDB Binlogなどのstorageサービスである場合、 TiUP はまず API を介して関連ノードをオフラインにします。
 - 対象のサービスを停止します。
 - バイナリ パッケージを解凍し、サービスを置き換えます。
 - 対象のサービスを開始します。
 
構文
tiup cluster patch <cluster-name> <package-path> [flags]
<cluster-name>: 操作対象のクラスタ名。<package-path>: 置換に使用されるバイナリ パッケージへのパス。
準備
tiup cluster patchコマンドを実行する前に、必要なバイナリ パッケージをパックする必要があります。次の手順を実行します。
次の変数を決定します。
${component}: 置換されるコンポーネントの名前 (tidb、tikv、またはpdなど)。${version}:コンポーネントのバージョン (v7.1.3やv6.5.5など)。${os}: オペレーティング システム (linux)。${arch}:コンポーネントが実行されるプラットフォーム (amd64、arm64)。
次のコマンドを使用して、現在のコンポーネントパッケージをダウンロードします。
wget https://tiup-mirrors.pingcap.com/${component}-${version}-${os}-${arch}.tar.gz -O /tmp/${component}-${version}-${os}-${arch}.tar.gzファイルをパックするための一時ディレクトリを作成し、そこに変更します。
mkdir -p /tmp/package && cd /tmp/package元のバイナリ パッケージを抽出します。
tar xf /tmp/${component}-${version}-${os}-${arch}.tar.gz一時ディレクトリ内のファイル構造を確認します。
find .バイナリ ファイルまたは構成ファイルを一時ディレクトリ内の対応する場所にコピーします。
すべてのファイルを一時ディレクトリにパックします。
tar czf /tmp/${component}-hotfix-${os}-${arch}.tar.gz *
前述の手順を完了したら、 tiup cluster patchコマンドの<package-path>として/tmp/${component}-hotfix-${os}-${arch}.tar.gzを使用できます。
オプション
--overwrite
- 特定のコンポーネント(TiDB や TiKV など) にパッチを適用した後、tiup クラスターがコンポーネントをスケールアウトすると、 TiUP はデフォルトで元のコンポーネントのバージョンを使用します。将来クラスターがスケールアウトするときにパッチを適用したバージョンを使用するには、コマンドでオプション
--overwriteを指定する必要があります。 - データ型: 
BOOLEAN - このオプションは、値
falseを指定するとデフォルトで無効になります。このオプションを有効にするには、このオプションをコマンドに追加し、値true渡すか、値を渡しません。 
--transfer-timeout
- PD または TiKV サービスを再起動する場合、TiKV/PD はまず、再起動するノードのリーダーを別のノードに転送します。転送プロセスには時間がかかるため、オプション
--transfer-timeoutを使用して最大待ち時間 (秒単位) を設定できます。タイムアウト後、 TiUP はサービスを直接再起動します。 - データ型: 
UINT - このオプションが指定されていない場合、 TiUP は
600秒待った後にサービスを直接再起動します。 
注記:
TiUP がタイムアウト後にサービスを直接再起動すると、サービスのパフォーマンスが不安定になる可能性があります。
-N、--node
- 置き換えるノードを指定します。このオプションの値は、ノード ID のカンマ区切りリストです。ノード ID は、 
tiup cluster displayコマンドによって返されるクラスタステータステーブルの最初の列から取得できます。 - データ型: 
STRINGS - このオプションが指定されていない場合、 TiUP はデフォルトで置換するノードを選択しません。
 
注記:
オプション
-R, --roleが同時に指定された場合、 TiUP は-N, --nodeと-R, --roleの両方の要件に一致するサービス ノードを置き換えます。
-R、--役割
- 置き換える役割を指定します。このオプションの値は、ノードの役割のカンマ区切りリストです。 
tiup cluster displayコマンドによって返されるクラスタステータステーブルの 2 番目の列から、ノードにデプロイされたロールを取得できます。 - データ型: 
STRINGS - このオプションが指定されていない場合、 TiUP はデフォルトで置き換える役割を選択しません。
 
注記:
オプション
-N, --nodeが同時に指定された場合、 TiUP は-N, --nodeと-R, --roleの両方の要件に一致するサービス ノードを置き換えます。
--offline
- 現在のクラスターが実行されていないことを宣言します。このオプションが指定されている場合、 TiUP はサービス リーダーを別のノードに削除したり、サービスを再起動したりせず、クラスター コンポーネントのバイナリ ファイルを置き換えるだけです。
 - データ型: 
BOOLEAN - このオプションは、値
falseを指定するとデフォルトで無効になります。このオプションを有効にするには、このオプションをコマンドに追加し、値true渡すか、値を渡しません。 
-h, --help
- ヘルプ情報を出力します。
 - データ型: 
BOOLEAN - このオプションは、値
falseを指定するとデフォルトで無効になります。このオプションを有効にするには、このオプションをコマンドに追加し、値true渡すか、値を渡しません。 
出力
tiup-clusterの実行ログ。