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

降级 StarRocks

本主题介绍如何降级 StarRocks 集群。

如果在升级 StarRocks 集群后出现异常,您可以将其降级到较早的版本以快速恢复集群。

概述

在降级之前,请查看本节中的信息。执行任何建议的操作。

降级路径

  • 对于补丁版本降级

    您可以跨补丁版本降级 StarRocks 集群,例如,从 v2.2.11 直接降级到 v2.2.6。

  • 对于小版本降级

    出于兼容性和安全原因,我们强烈建议您连续地从一个小版本降级到另一个小版本来降级您的 StarRocks 集群。 例如,要将 StarRocks v2.5 集群降级到 v2.2,您需要按以下顺序降级:v2.5.x --> v2.4.x --> v2.3.x --> v2.2.x。

    警告

    将 StarRocks 升级到 v3.3 后,请勿直接将其降级到 v3.2.0、v3.2.1 或 v3.2.2,否则会导致元数据丢失。 您必须将集群降级到 v3.2.3 或更高版本以防止出现问题。

  • 对于主要版本降级

    您只能将 StarRocks v3.0 集群降级到 v2.5.3 及更高版本。

    • StarRocks 在 v3.0 中升级了 BDB 库。 但是,BDBJE 无法回滚。 降级后必须使用 v3.0 的 BDB 库。
    • 默认情况下,升级到 v3.0 后,将使用新的 RBAC 权限系统。 降级后只能使用 RBAC 权限系统。

降级步骤

StarRocks 的降级步骤与升级步骤的顺序相反。 因此,您需要先降级 FE,然后再降级 BE 和 CN。 以错误的顺序降级它们可能会导致 FE 和 BE/CN 之间不兼容,从而导致服务崩溃。 对于 FE 节点,您必须先降级所有 Follower FE 节点,然后再降级 Leader FE 节点。

准备工作

在准备期间,如果要进行小版本或主版本降级,则必须执行兼容性配置。 您还需要在降级集群中的所有节点之前,在其中一个 FE 或 BE 上执行降级可用性测试。

执行兼容性配置

如果要将 StarRocks 集群降级到较早的小版本或主版本,则必须执行兼容性配置。 除了通用兼容性配置之外,详细配置因您降级 StarRocks 集群的版本而异。

  • 通用兼容性配置

在降级 StarRocks 集群之前,必须禁用 Tablet 克隆。 如果您已禁用均衡器,则可以跳过此步骤。

ADMIN SET FRONTEND CONFIG ("tablet_sched_max_scheduling_tablets" = "0");
ADMIN SET FRONTEND CONFIG ("tablet_sched_max_balancing_tablets" = "0");
ADMIN SET FRONTEND CONFIG ("disable_balance"="true");
ADMIN SET FRONTEND CONFIG ("disable_colocate_balance"="true");

降级后,如果所有 BE 节点的状态都变为 Alive,则可以再次启用 Tablet 克隆。

ADMIN SET FRONTEND CONFIG ("tablet_sched_max_scheduling_tablets" = "10000");
ADMIN SET FRONTEND CONFIG ("tablet_sched_max_balancing_tablets" = "500");
ADMIN SET FRONTEND CONFIG ("disable_balance"="false");
ADMIN SET FRONTEND CONFIG ("disable_colocate_balance"="false");
  • 如果您从 v2.2 及更高版本降级

将 FE 配置项 ignore_unknown_log_id 设置为 true。 因为它是一个静态参数,所以您必须在 FE 配置文件 fe.conf 中修改它,然后重启节点才能使修改生效。 降级并完成第一个检查点后,您可以将其重置为 false 并重启节点。

  • 如果您已启用 FQDN 访问

如果您已启用 FQDN 访问(从 v2.4 开始支持)并且需要降级到低于 v2.4 的版本,则必须在降级之前切换到 IP 地址访问。 有关详细说明,请参阅回滚 FQDN

降级 FE

注意

要将集群从 v3.3.0 或更高版本降级到 v3.2,请在降级之前执行以下步骤

  1. 确保在 v3.3 集群中启动的所有 ALTER TABLE SCHEMA CHANGE 事务在降级之前已完成或已取消。

  2. 通过执行以下命令清除所有事务历史记录

    ADMIN SET FRONTEND CONFIG ("history_job_keep_max_second" = "0");
  3. 通过运行以下命令验证是否没有剩余的历史记录

    SHOW PROC '/jobs/<db>/schema_change';

完成兼容性配置和可用性测试后,您可以降级 FE 节点。 您必须先降级 Follower FE 节点,然后再降级 Leader FE 节点。

  1. 创建元数据快照。

    a. 运行ALTER SYSTEM CREATE IMAGE以创建元数据快照。

    b. 您可以通过查看 Leader FE 的日志文件 fe.log 来检查镜像文件是否已同步。 类似 "push image.* from subdir [] to other nodes. totally xx nodes, push successful xx nodes" 的日志记录表明镜像文件已成功同步。

    注意

    ALTER SYSTEM CREATE IMAGE 语句在 v2.5.3 及更高版本中受支持。 在早期版本中,您需要通过重启 Leader FE 来创建元数据快照。

  2. 导航到 FE 节点的工作目录并停止节点。

    # Replace <fe_dir> with the deployment directory of the FE node.
    cd <fe_dir>/fe
    ./bin/stop_fe.sh
  3. binlibspark-dpp 下的原始部署文件替换为较早版本的部署文件。

    mv lib lib.bak 
    mv bin bin.bak
    mv spark-dpp spark-dpp.bak
    cp -r /tmp/StarRocks-x.x.x/fe/lib .
    cp -r /tmp/StarRocks-x.x.x/fe/bin .
    cp -r /tmp/StarRocks-x.x.x/fe/spark-dpp .

    注意

    如果您要将 StarRocks v3.0 降级到 v2.5,则必须在替换部署文件后执行以下步骤

    1. 将 v3.0 部署的 fe/lib/starrocks-bdb-je-18.3.13.jar 文件复制到 v2.5 部署的 fe/lib 目录。
    2. 删除文件 fe/lib/je-7.*.jar
  4. 启动 FE 节点。

    sh bin/start_fe.sh --daemon
  5. 检查 FE 节点是否已成功启动。

    ps aux | grep StarRocksFE
  6. 重复上述步骤 2 到步骤 5 以降级其他 Follower FE 节点,最后降级 Leader FE 节点。

    注意

    假设您在升级失败后降级了集群,并且您想再次升级集群,例如,2.5->3.0->2.5->3.0。 为防止某些 Follower FE 的元数据升级失败,请重复步骤 1 以在升级之前触发新的快照。

降级 BE

降级 FE 节点后,您可以降级集群中的 BE 节点。

  1. 导航到 BE 节点的工作目录并停止节点。

    # Replace <be_dir> with the deployment directory of the BE node.
    cd <be_dir>/be
    ./bin/stop_be.sh
  2. binlib 下的原始部署文件替换为较早版本的部署文件。

    mv lib lib.bak 
    mv bin bin.bak
    cp -r /tmp/StarRocks-x.x.x/be/lib .
    cp -r /tmp/StarRocks-x.x.x/be/bin .
  3. 启动 BE 节点。

    sh bin/start_be.sh --daemon
  4. 检查 BE 节点是否已成功启动。

    ps aux | grep starrocks_be
  5. 重复上述步骤以降级其他 BE 节点。

降级 CN

  1. 导航到 CN 节点的工作目录并优雅地停止节点。

    # Replace <cn_dir> with the deployment directory of the CN node.
    cd <cn_dir>/be
    ./bin/stop_cn.sh --graceful
  2. binlib 下的原始部署文件替换为较早版本的部署文件。

    mv lib lib.bak 
    mv bin bin.bak
    cp -r /tmp/StarRocks-x.x.x/be/lib .
    cp -r /tmp/StarRocks-x.x.x/be/bin .
  3. 启动 CN 节点。

    sh bin/start_cn.sh --daemon
  4. 检查 CN 节点是否已成功启动。

    ps aux | grep  starrocks_be
  5. 重复上述步骤以降级其他 CN 节点。