メインコンテンツまでスキップ
バージョン: 26.2 Preview

ALTER SYSTEM

説明​

クラスタ内の FE、BE、CN、Broker ノード、およびメタデータスナップショットを管理します。

注意

この操作を実行する権限を持つのは cluster_admin ロールのみです。

構文とパラメータ​

FE​

  • Follower FE を追加します。

    ALTER SYSTEM ADD FOLLOWER "<fe_host>:<edit_log_port>"[, ...]

    新しい Follower FE のステータスは SHOW PROC '/frontends'\G を実行して確認できます。

  • Follower FE を削除します。

    ALTER SYSTEM DROP FOLLOWER "<fe_host>:<edit_log_port>"[, ...]
  • Observer FE を追加します。

    ALTER SYSTEM ADD OBSERVER "<fe_host>:<edit_log_port>"[, ...]

    新しい Observer FE のステータスは SHOW PROC '/frontends'\G を実行して確認できます。

  • Observer FE を削除します。

    ALTER SYSTEM DROP OBSERVER "<fe_host>:<edit_log_port>"[, ...]
  • Leader ロールを別の Follower FE にグレースフルに引き継ぎます(プロセスを再起動せず、その場で降格)。

    ALTER SYSTEM TRANSFER LEADER TO "<fe_host>:<edit_log_port>" [FORCE]

    ターゲットは稼働中の Follower FE である必要があります。このステートメントは現在の Leader FE 上で実行され、Leader ロールをターゲットの Follower に引き継ぎます。その後、元の Leader は再起動せずにその場で Follower に降格します。新しい Leader は SHOW PROC '/frontends'\G で確認できます。FORCE を指定すると、BDBJE レイヤーで既に進行中の Leader 切り替えを置き換えます。FORCE を指定しない場合、そのような切り替えが進行中であればこのステートメントは失敗します。並行して実行された TRANSFER LEADER ステートメントは Leader 上で直列に実行されます。待機中のステートメントは前のステートメントの完了を待ち、実行の順番が来た時点でこの FE が既に Leader でなければエラーを返します(2 回目の切り替えは発生しません)。

    失敗時のセマンティクス:切り替え自体が失敗した場合(例:ターゲットが内部の 30 秒ウィンドウ内に追いつけない、またはクラスタメンバーシップが未確定の場合)、ステートメントはエラーを返し、現在の Leader は変更されません(安全な結果であり、再試行できます)。切り替えが成功しても、元の Leader が leader_demotion_drain_timeout_sec 以内に処理中の作業を排出できない場合、元の Leader プロセスは終了して Follower として再起動します。新しい Leader には影響しません。

    共有データ(shared-data)クラスタではこのステートメントはサポートされておらず、エラーを返します。共有データモードでリーダーシップを移すには、現在の Leader FE を再起動して選挙をトリガーしてください。

パラメータ必須説明
fe_hostはいFE インスタンスのホスト名または IP アドレス。インスタンスに複数の IP アドレスがある場合は、設定項目 priority_networks の値を使用します。
edit_log_portはいFE ノードの BDB JE 通信ポート。デフォルト: 9010。
FORCEいいえBDBJE レイヤーで既に進行中の Leader 切り替えを置き換えます。指定しない場合、そのような切り替えが進行中であればステートメントは失敗します。並行する TRANSFER LEADER ステートメントは直列に実行されるため FORCE は不要です。

BE​

  • BE ノードを追加します。

    ALTER SYSTEM ADD BACKEND "<be_host>:<heartbeat_service_port>"[, ...]

    新しい BE のステータスは SHOW BACKENDS を実行して確認できます。

  • BE ノードを削除します。

    注意

    単一レプリカテーブルのタブレットを格納している BE ノードは削除できません。

    ALTER SYSTEM DROP BACKEND "<be_host>:<heartbeat_service_port>"[, ...]
  • BE ノードを退役させます。

    ALTER SYSTEM DECOMMISSION BACKEND "<be_host>:<heartbeat_service_port>"[, ...]

    BE ノードを削除するのとは異なり、退役は安全に削除することを意味します。これは非同期操作です。BE が退役されると、BE 上のデータはまず他の BE に移行され、その後クラスタから削除されます。データ移行中にデータロードやクエリは影響を受けません。操作が成功したかどうかは SHOW BACKENDS を使用して確認できます。操作が成功した場合、退役された BE は返されません。操作が失敗した場合、BE はまだオンラインのままです。CANCEL DECOMMISSION を使用して手動で操作をキャンセルできます。

パラメータ必須説明
be_hostはいBE インスタンスのホスト名または IP アドレス。インスタンスに複数の IP アドレスがある場合は、設定項目 priority_networks の値を使用します。
heartbeat_service_portはいBE ハートビートサービスポート。BE はこのポートを使用して FE からのハートビートを受信します。デフォルト: 9050。

CN​

  • CN ノードを追加します。

    ALTER SYSTEM ADD COMPUTE NODE "<cn_host>:<heartbeat_service_port>"[, ...]

    新しい CN のステータスは SHOW COMPUTE NODES を実行して確認できます。

  • CN ノードを削除します。

    ALTER SYSTEM DROP COMPUTE NODE "<cn_host>:<heartbeat_service_port>"[, ...]

注意

ALTER SYSTEM DECOMMISSION コマンドを使用して CN ノードを退役させることはできません。

パラメータ必須説明
cn_hostはいCN インスタンスのホスト名または IP アドレス。インスタンスに複数の IP アドレスがある場合は、設定項目 priority_networks の値を使用します。
heartbeat_service_portはいCN ハートビートサービスポート。CN はこのポートを使用して FE からのハートビートを受信します。デフォルト: 9050。

Broker​

  • Broker ノードを追加します。Broker ノードを使用して、HDFS やクラウドストレージから StarRocks にデータをロードできます。詳細は Loading を参照してください。

    ALTER SYSTEM ADD BROKER <broker_name> "<broker_host>:<broker_ipc_port>"[, ...]

    1 つの SQL で複数の Broker ノードを追加できます。各 <broker_host>:<broker_ipc_port> ペアは 1 つの Broker ノードを表し、共通の broker_name を共有します。新しい Broker ノードのステータスは SHOW BROKER を実行して確認できます。

  • Broker ノードを削除します。

注意

Broker ノードを削除すると、現在その上で実行中のタスクが終了します。

  • 同じ broker_name を持つ 1 つまたは複数の Broker ノードを削除します。

    ALTER SYSTEM DROP BROKER <broker_name> "<broker_host>:<broker_ipc_port>"[, ...]
  • 同じ broker_name を持つすべての Broker ノードを削除します。

    ALTER SYSTEM DROP ALL BROKER <broker_name>
パラメータ必須説明
broker_nameはいBroker ノードの名前。複数の Broker ノードが同じ名前を使用できます。
broker_hostはいBroker インスタンスのホスト名または IP アドレス。インスタンスに複数の IP アドレスがある場合は、設定項目 priority_networks の値を使用します。
broker_ipc_portはいBroker ノードの Thrift サーバーポート。Broker ノードはこれを使用して FE または BE からのリクエストを受信します。デフォルト: 8000。

イメージの作成​

イメージファイルを作成します。イメージファイルは FE メタデータのスナップショットです。

ALTER SYSTEM CREATE IMAGE

イメージの作成は Leader FE 上での非同期操作です。操作の開始時刻と終了時刻は FE ログファイル fe.log で確認できます。triggering a new checkpoint manually... のようなログはイメージ作成が開始されたことを示し、finished save image... のようなログはイメージが作成されたことを示します。

使用上の注意​

  • FE、BE、CN、または Broker ノードの追加と削除は同期操作です。ノード削除操作をキャンセルすることはできません。
  • 単一 FE クラスタでは FE ノードを削除することはできません。
  • 複数 FE クラスタでは Leader FE ノードを直接削除することはできません。削除するには、まず再起動する必要があります。StarRocks が新しい Leader FE を選出した後、以前のものを削除できます。
  • 残りの BE ノードの数がデータレプリカの数より少ない場合、BE ノードを削除することはできません。たとえば、クラスタに 3 つの BE ノードがあり、データを 3 つのレプリカで保存している場合、BE ノードを削除することはできません。また、4 つの BE ノードと 3 つのレプリカがある場合、1 つの BE ノードを削除できます。
  • BE ノードを削除することと退役させることの違いは、BE ノードを削除する場合、StarRocks はそれをクラスタから強制的に削除し、削除後にタブレットを補完しますが、BE ノードを退役させる場合、StarRocks はまず退役された BE ノード上のタブレットを他のノードに移行し、その後ノードを削除します。

例​

例 1: Follower FE ノードを追加します。

ALTER SYSTEM ADD FOLLOWER "x.x.x.x:9010";

例 2: 2 つの Observer FE ノードを同時に削除します。

ALTER SYSTEM DROP OBSERVER "x.x.x.x:9010","x.x.x.x:9010";

例 3: BE ノードを追加します。

ALTER SYSTEM ADD BACKEND "x.x.x.x:9050";

例 4: 2 つの BE ノードを同時に削除します。

ALTER SYSTEM DROP BACKEND "x.x.x.x:9050", "x.x.x.x:9050";

例 5: 2 つの BE ノードを同時に退役させます。

ALTER SYSTEM DECOMMISSION BACKEND "x.x.x.x:9050", "x.x.x.x:9050";

例 6: 同じ broker_name - hdfs を持つ 2 つの Broker ノードを追加します。

ALTER SYSTEM ADD BROKER hdfs "x.x.x.x:8000", "x.x.x.x:8000";

例 7: amazon_s3 から 2 つの Broker ノードを削除します。

ALTER SYSTEM DROP BROKER amazon_s3 "x.x.x.x:8000", "x.x.x.x:8000";

例 8: amazon_s3 のすべての Broker ノードを削除します。

ALTER SYSTEM DROP ALL BROKER amazon_s3;

例 9: Leader ロールを特定の Follower FE に引き継ぎます。

ALTER SYSTEM TRANSFER LEADER TO "x.x.x.x:9010";