跳到主要内容
版本: 最新版本-3.5

ALTER SYSTEM

ALTER SYSTEM 用于管理集群中的 FE、BE、CN、Broker 节点和元数据快照。

注意

只有 cluster_admin 角色有权限执行此操作。

语法和参数

FE

  • 添加一个 Follower FE。

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

    您可以通过执行 SHOW PROC '/frontends'\G 来检查新的 Follower FE 的状态。

  • 删除一个 Follower FE。

    ALTER SYSTEM DROP FOLLOWER "<fe_host>:<edit_log_port>"[, ...]
  • 添加一个 Observer FE。

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

    您可以通过执行 SHOW PROC '/frontends'\G 来检查新的 Observer FE 的状态。

  • 删除一个 Observer FE。

    ALTER SYSTEM DROP OBSERVER "<fe_host>:<edit_log_port>"[, ...]
参数必需描述
fe_hostFE 实例的主机名或 IP 地址。如果您的实例有多个 IP 地址,请使用配置项 priority_networks 的值。
edit_log_portFE 节点的 BDB JE 通信端口。默认值:9010

BE

  • 添加一个 BE 节点。

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

    您可以通过执行 SHOW BACKENDS 来检查新的 BE 的状态。

  • 删除一个 BE 节点。

    注意

    您无法删除存储单副本表的 Tablet 的 BE 节点。

    ALTER SYSTEM DROP BACKEND "<be_host>:<heartbeat_service_port>"[, ...]
  • 下线一个 BE 节点。

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

    与删除 BE 节点(强制将其从集群中移除)不同,下线 BE 意味着安全地移除它。这是一个异步操作。当下线 BE 时,BE 上的数据首先迁移到其他 BE,然后将 BE 从集群中移除。数据加载和查询在数据迁移期间不会受到影响。您可以使用 SHOW BACKENDS 检查操作是否成功。如果操作成功,则不会返回已下线的 BE。如果操作失败,BE 仍将在线。您可以使用 CANCEL DECOMMISSION 手动取消操作。

参数必需描述
be_hostBE 实例的主机名或 IP 地址。如果您的实例有多个 IP 地址,请使用配置项 priority_networks 的值。
heartbeat_service_portBE 心跳服务端口。BE 使用此端口从 FE 接收心跳。默认值:9050

CN

  • 添加一个 CN 节点。

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

    您可以通过执行 SHOW COMPUTE NODES 来检查新的 CN 的状态。

  • 删除一个 CN 节点。

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

注意

您无法使用 ALTER SYSTEM DECOMMISSION 命令下线 CN 节点。

参数必需描述
cn_hostCN 实例的主机名或 IP 地址。如果您的实例有多个 IP 地址,请使用配置项 priority_networks 的值。
heartbeat_service_portCN 心跳服务端口。CN 使用此端口从 FE 接收心跳。默认值:9050

Broker

  • 添加 Broker 节点。您可以使用 Broker 节点将数据从 HDFS 或云存储加载到 StarRocks 中。有关更多信息,请参见 加载

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

    您可以使用一条 SQL 语句添加多个 Broker 节点。每个 <broker_host>:<broker_ipc_port> 对表示一个 Broker 节点。它们共享一个公共 broker_name。您可以通过执行 SHOW BROKER 来检查新 Broker 节点的状态。

  • 删除 Broker 节点。

注意

删除 Broker 节点会终止当前在其上运行的任务。

  • 删除一个或多个具有相同 broker_name 的 Broker 节点。

    ALTER SYSTEM DROP BROKER <broker_name> "<broker_host>:<broker_ipc_port>"[, ...]
  • 删除所有具有相同 broker_name 的 Broker 节点。

    ALTER SYSTEM DROP ALL BROKER <broker_name>
参数必需描述
broker_nameBroker 节点的名称。多个 Broker 节点可以使用相同的名称。
broker_hostBroker 实例的主机名或 IP 地址。如果您的实例有多个 IP 地址,请使用配置项 priority_networks 的值。
broker_ipc_portBroker 节点上的 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 后,您可以删除之前的 Leader FE。
  • 如果剩余的 BE 节点的数量少于数据副本的数量,则无法删除 BE 节点。例如,如果您的集群中有三个 BE 节点,并且您将数据存储在三个副本中,则无法删除任何 BE 节点。如果您有四个 BE 节点和三个副本,则可以删除一个 BE 节点。
  • 删除和下线 BE 节点之间的区别在于,当您删除 BE 节点时,StarRocks 会强制将其从集群中移除,并在移除后生成删除的 Tablet,而当您下线 BE 节点时,StarRocks 首先将下线 BE 节点上的 Tablet 迁移到其他节点,然后移除该节点。

示例

示例 1:添加一个 Follower FE 节点。

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

示例 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:同时删除两个 BE 节点。

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

示例 5:同时下线两个 BE 节点。

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

示例 6:添加两个具有相同 broker_name - hdfs 的 Broker 节点。

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

示例 7:从 amazon_s3 中删除两个 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;