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}
:コンポーネントのバージョン (v6.5.2
など)。${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 は
300
秒待ってからサービスを直接再起動します。
ノート:
タイムアウト後にTiUP がサービスを直接再起動すると、サービスのパフォーマンスが低下する可能性があります。
-N, --ノード
- 置き換えるノードを指定します。このオプションの値は、ノード ID のコンマ区切りリストです。
tiup cluster display
コマンドで返されるクラスタ ステータス テーブルの最初の列からノード ID を取得できます。 - データ型:
STRINGS
- このオプションが指定されていない場合、 TiUP はデフォルトで置き換えるノードを選択しません。
ノート:
オプション
-R, --role
が同時に指定された場合、 TiUP は-N, --node
と-R, --role
の両方の要件に一致するサービス ノードを置き換えます。
-R, --role
- 置き換える役割を指定します。このオプションの値は、ノードの役割のコンマ区切りリストです。
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の実行ログ。