Apache Doris 版本升级指南 | 从 2.0.1.1 到 2.1.11

Apache Doris 版本升级指南 | 从 2.0.1.1 到 2.1.11

本文档详细介绍 Apache Doris 从 2.0.1.1 升级到 2.1.11 的完整操作流程,包含两阶段升级路径、升级前准备、滚动升级步骤、回滚方案等内容。

一、升级路径规划

1.1 版本升级路径

Apache Doris 版本号由三位组成:主版本号.次版本号.修订版本号(X.Y.Z)。本次升级建议分两个阶段执行:

阶段 起始版本 目标版本 说明
第一阶段 2.0.1.1 2.0.15(或最新 2.0.x) 先升级到 2.0 系列最新版本,修复潜在 Bug
第二阶段 2.0.15 2.1.11 跳跃到 2.1 大版本稳定版

 

1.2 为什么不建议直接从 2.0.1.1 升级到 2.1.11

  • 2.0.1.1 发布较早,存在已在 2.0.15 中修复的 Bug,直接跨越大版本风险较高
  • 2.1.x FE 元数据格式变化较大,跨度升级存在兼容性风险
  • 官方建议:跨次版本升级前,建议先升级到该系列的最新修订版本
  • 分阶段升级有助于问题定位,升级失败时更易回滚

⚠️ 重要提醒:2.0.1.1 不能直接跨版本升级到 2.1.11,需要先升到 2.0.15 做过渡。升级前务必备份 FE 元数据!

1.3 升级方式:滚动升级

Doris 支持滚动升级(Rolling Upgrade),可逐节点升级 FE 和 BE,最大限度减少停机时间。

  • 升级顺序:先升级 BE,再升级 FE
  • BE 保持向后兼容 FE
  • 每个节点升级后需验证服务正常,再继续下一个节点

二、升级前准备

2.1 集群健康检查

在执行升级前,请确保集群处于健康状态:

检查项 命令 预期结果
FE 进程状态 ps aux | grep DorisFE | grep -v grep 进程存在
BE 进程状态 ps aux | grep DorisBE | grep -v grep 进程存在
FE 节点状态 SHOW FRONTENDS; VisibleState = true
BE 节点状态 SHOW BACKENDS; Alive = true
集群可用性 SHOW DORIS CLUSTER; 正常返回
BE 磁盘空间 df -h(各节点) 使用率 < 80%

 

2.2 备份元数据(重要)

2.2.1 备份 FE 元数据

FE 元数据是集群的核心,一旦损坏将导致集群不可用。务必在升级前完成备份:

# fe.conf 中 metadata_dir 默认路径:fe/doris-meta
cp -r /path/to/fe/doris-meta /path/to/fe/doris-meta.bak.$(date +%Y%m%d)

2.2.2 备份 FE 和 BE 配置

# 备份 FE 配置
cp -r /path/to/fe/conf /path/to/fe/conf.bak.$(date +%Y%m%d)

# 备份 BE 配置
cp -r /path/to/be/conf /path/to/be/conf.bak.$(date +%Y%m%d)

2.2.3 导出数据库结构

# 在 mysql-client 中执行,导出所有数据库
mysqldump -h fe_host -P 9030 -u root -p --no-tablespaces     --databases db1 db2 db3 > /tmp/doris_metadata_$(date +%Y%m%d).sql

2.3 下载安装包

# 2.0.15(第一阶段)
wget https://archive.apache.org/dist/doris/2.0.15/apache-doris-2.0.15-bin.tar.gz

# 2.1.11(第二阶段)
wget https://archive.apache.org/dist/doris/2.1.11/apache-doris-2.1.11-bin.tar.gz

# 解压
tar -xzf apache-doris-2.0.15-bin.tar.gz -C /opt/
tar -xzf apache-doris-2.1.11-bin.tar.gz -C /opt/

# 重命名
mv /opt/apache-doris-2.0.15-bin /opt/doris-2.0.15
mv /opt/apache-doris-2.1.11-bin /opt/doris-2.1.11

2.4 设置维护窗口

⚠️ 重要提醒:升级操作建议在业务低峰期进行,并预留足够的维护窗口时间(建议至少 2-4 小时)。请提前通知业务方并确认应急回滚方案。

三、第一阶段:2.0.1.1 → 2.0.15

3.1 升级 BE 节点(滚动升级)

按以下步骤逐台升级 BE 节点。每节点升级后确认 Alive=true,再继续下一台。

步骤 1:退役目标 BE 节点

# 方式一:通过 API 下线该 BE
curl -X POST "http://fe_host:8030/api/backend/drop?host=be_host&port=be_http_port"

# 方式二:直接停止 BE(确认数据已迁移完毕)
curl http://be_host:be_http_port/api/health
stop_be.sh --daemon

步骤 2:替换 BE 目录

# 备份旧版 BE
mv /path/to/be /path/to/be.old.2.0.1.1

# 复制新版 BE
cp -r /opt/doris-2.0.15/be /path/to/be

# 恢复原有配置
cp -r /path/to/be.old.2.0.1.1/conf/* /path/to/be/conf/

# 确认目录权限
chown -R doris:doris /path/to/be

步骤 3:启动新 BE 并验证

# 启动 BE
start_be.sh --daemon

# 检查状态
curl http://be_host:be_http_port/api/health
# 期望返回:{"status": "OK"}

# 在 FE 检查 BE 状态
mysql -h fe_host -P 9030 -u root -p -e "SHOW BACKENDS;" | grep be_host

注意:每个 BE 节点升级后,请在 FE 端确认其状态为 Alive=true,再继续升级下一个节点。

3.2 升级 FE 节点

步骤 1:停止 Follower FE 节点

# 查看当前 FE 角色和状态
mysql -h fe_host -P 9030 -u root -p -e "SHOW FRONTENDS;"

# 在目标 FE 节点停止 FE
stop_fe.sh --daemon

步骤 2:替换 FE 目录

# 备份旧版 FE
mv /path/to/fe /path/to/fe.old.2.0.1.1

# 复制新版 FE
cp -r /opt/doris-2.0.15/fe /path/to/fe

# 恢复原有配置(注意保留元数据目录)
cp -r /path/to/fe.old.2.0.1.1/conf/* /path/to/fe/conf/
# fe.conf 中 metadata_dir 需指向原元数据目录

chown -R doris:doris /path/to/fe

步骤 3:启动 FE 并验证

# 启动 FE
start_fe.sh --daemon

# 等待 30-60 秒后检查 FE 状态
mysql -h fe_host -P 9030 -u root -p -e "SHOW FRONTENDS;" | grep fe_host

# 简单查询测试
mysql -h fe_host -P 9030 -u root -p -e "SELECT 1;"

注意:若 FE 启动失败,请检查 fe/log/fe.log 中的错误信息。回滚方法:停止新版 FE,恢复旧版目录,重启即可。

3.3 第一阶段验证清单

验证项 命令/方法 判断标准
FE 进程正常 ps aux | grep DorisFE 进程存在
FE 日志无异常 grep -i error fe/log/fe.log 无 Error 级报错
BE 进程正常 ps aux | grep DorisBE 进程存在
所有 BE Alive SHOW BACKENDS 所有行 Alive=true
所有 FE Alive SHOW FRONTENDS 所有行 Alive=true
集群可读写 SELECT 1; INSERT; DELETE; 正常执行
副本完整性 SHOW PROC “/statistic” Tablet 副本数正常

 

四、第二阶段:2.0.15 → 2.1.11

4.1 升级前确认

  • 第一阶段升级后集群运行稳定至少 24 小时再进行第二阶段
  • 确认 2.1.11 版本 release notes 中的已知问题不影响当前业务
  • 确认使用的第三方工具(Flink Connector、Spark Connector 等)与 2.1.11 兼容

4.2 2.1.x 主要新特性(需了解)

特性 说明 是否影响旧业务
Auto Partition 导入时自动创建分区,无需手动预创建 不影响(仅新功能)
Group Commit 服务端批量提交,高并发写入 不影响(可选开启)
VARIANT 类型 支持半结构化数据列存化存储 不影响(新增类型)
运行时资源查看 可实时查看 SQL 资源使用情况 不影响(新功能)
MemTable 前移 INSERT INTO SELECT 性能翻倍 不影响(内部优化)
Arrow Flight SQL Python 高并发读取新接口 不影响(新增接口)

 

4.3 升级步骤

第二阶段步骤与第一阶段完全相同,只需将新版目录替换为 /opt/doris-2.1.11 对应目录即可。

⚠️ 重要提醒:FE 升级后会立即自动完成元数据格式升级(不可逆),回滚无法直接通过目录恢复,必须从备份恢复元数据。请务必确认 FE 备份已完成后,再执行 FE 升级。

4.4 第二阶段验证清单

验证项 命令/方法 判断标准
FE 版本正确 mysql -e “SHOW FRONTENDS;” Version 列显示 2.1.11
BE 版本正确 mysql -e “SHOW BACKENDS;” Version 列显示 2.1.11
集群可读写 SELECT/INSERT/DROP 测试 正常执行
历史查询正常 历史 SQL 抽检 正常返回
导入任务正常 执行测试导入 成功
监控指标正常 Grafana/Prometheus 无异常告警

 

五、回滚方案

5.1 回滚原则

  • FE 元数据升级后不可逆。一旦 FE 启动并写入新版本元数据,旧版本 FE 无法再使用该目录
  • BE 可以随时回滚(停止 BE、恢复旧目录、重启即可)
  • 回滚后需业务方确认数据一致性

5.2 第一阶段回滚(2.0.15 → 2.0.1.1)

# 停止所有 BE 和 FE
stop_be.sh --daemon
stop_fe.sh --daemon

# 恢复 BE 目录
mv /path/to/be /path/to/be.2.0.15
mv /path/to/be.old.2.0.1.1 /path/to/be

# 恢复 FE 目录
mv /path/to/fe /path/to/fe.2.0.15
mv /path/to/fe.old.2.0.1.1 /path/to/fe

# 重启集群
start_fe.sh --daemon
start_be.sh --daemon

5.3 第二阶段回滚(2.1.11 → 2.0.15)

# 停止所有节点
stop_be.sh --daemon
stop_fe.sh --daemon

# 从备份恢复 FE 元数据
rm -rf /path/to/fe/doris-meta
cp -r /path/to/fe/meta.bak.2026XXXX /path/to/fe/doris-meta

# 恢复 FE 安装目录
mv /path/to/fe /path/to/fe.2.1.11
mv /path/to/fe.old.2.0.15 /path/to/fe

# 恢复 BE 安装目录
mv /path/to/be /path/to/be.2.1.11
mv /path/to/be.old.2.0.15 /path/to/be

# 重启
start_fe.sh --daemon
start_be.sh --daemon

5.4 回滚后数据一致性确认

# 核对各表行数
SELECT COUNT(*) FROM db.table;

# 核对关键指标
SELECT SUM(col) FROM db.table;

# 与业务方确认数据完整性

六、升级后优化

6.1 推荐开启的新功能

Group Commit(高并发写入场景推荐)

-- 开启 Group Commit
SET enable_group_commit = true;

-- 设置合并间隔(默认 10000ms)
SET group_commit_interval_ms = 10000;

评估 Auto Partition(新表建议使用)

CREATE TABLE orders (
    order_id BIGINT,
    dt DATE,
    amount DECIMAL(10,2)
) PARTITION BY RANGE (dt) (
    PARTITION p_default VALUES LESS THAN ("2026-01-01")
);

七、附录

附录 A:常用命令速查

场景 命令
查看 FE 状态 mysql -h fe_host -P 9030 -u root -p -e “SHOW FRONTENDS;”
查看 BE 状态 mysql -h fe_host -P 9030 -u root -p -e “SHOW BACKENDS;”
查看集群信息 mysql -h fe_host -P 9030 -u root -p -e “SHOW DORIS CLUSTER;”
查看 BE 健康 curl http://be_host:be_http_port/api/health
停止 BE stop_be.sh –daemon
启动 BE start_be.sh –daemon
停止 FE stop_fe.sh –daemon
启动 FE start_fe.sh –daemon
查看 FE 日志 tail -100 $FE_HOME/log/fe.log
查看 BE 日志 tail -100 $BE_HOME/log/be.out
查看 BE 版本 curl http://be_host:be_http_port/api/version

 

附录 B:文件路径速查

组件 配置目录 日志目录 数据/元数据目录
FE fe/conf/ fe/log/ fe/doris-meta/
BE be/conf/ be/log/ be/storage/

 

附录 C:版本参考信息

版本 发布日期 主要更新
2.0.1.1 2023年 2.0 早期稳定版本(起始版本)
2.0.15 2024年 2.0 系列最新版本,修复大量 Bug
2.1.0 2024年4月 2.1 大版本发布,新增 Auto Partition、Group Commit 等
2.1.6 2024年 2.1 稳定版本,线上验证充分
2.1.11 2026年 2.1 最新稳定版本(目标版本)

 


本文由墨墨整理,参考 Apache Doris 官方升级文档生成。

Comments are closed.