Doris 元数据恢复步骤
恢复后检查 FE 的 image/VERSION 中 clusterId 是否与 BE 一致,不一致需手动修改(避免 BE 注册失败)。生产环境部署 3 FE 节点(1 Follower + 2 Followers/Observers)提升高可用性。主节点按单节点恢复流程操作(启用 metadata_failure_recovery 并重启)。元数据版本不可向后兼容,高版本恢复后禁止回
以下是基于实际运维场景的 Doris 元数据恢复操作指南,综合备份恢复与紧急处理方案:
一、通过备份快照恢复元数据
1.1 查询可用备份
SHOW SNAPSHOT ON example_repo; -- 查看仓库 example_repo 中的备份快照
输出示例:
+-----------------+---------------------+--------+
| Snapshot | Timestamp | Status |
+-----------------+---------------------+--------+
| exampledb_backup| 2022-04-08-15-52-29| OK |
+-----------------+---------------------+--------+
1.2 执行恢复操作
恢复整个数据库:
RESTORE SNAPSHOT example_repo.`exampledb_backup`
FROM `example_repo`
PROPERTIES ("backup_timestamp" = "2022-04-08-15-52-29"); -- 需替换实际时间戳
恢复单张表:
RESTORE SNAPSHOT example_repo.`exampledb_backup`
FROM `example_repo`
ON TABLE `backup_tbl`; -- 指定表名
关键验证:恢复后执行 SHOW RESTORE 检查任务状态,确认 State 为 FINISHED。
二、紧急恢复(元数据损坏且无备份)
2.1 单 FE 节点故障恢复
故障节点 fe.conf 中启用元数据恢复模式:
metadata_failure_recovery = true -- 强制启动修复
重启该 FE 节点,进入安全模式加载元数据.
成功后立即关闭恢复模式:
# 注释或改为 false
# metadata_failure_recovery = false
再次重启 FE,验证集群状态:
SHOW FRONTENDS; -- 检查角色及 Alive 状态
2.2 多 FE 集群主节点损坏
停止所有 Observer 节点:
sh bin/stop_fe.sh -- 在所有 Observer 节点执行
主节点按单节点恢复流程操作(启用 metadata_failure_recovery 并重启)。
修复后重新加入 Observer:
ALTER SYSTEM DROP OBSERVER "OBSERVER_IP:9010"; -- 先移除异常节点
sh bin/start_fe.sh --helper MASTER_FE_IP:9010 --daemon -- 重新加入集群
三、关键注意事项
3.1 元数据兼容性
元数据版本不可向后兼容,高版本恢复后禁止回滚旧版本。
升级前需严格测试元数据兼容性(参考 FeMetaVersion.java 变更)。
3.2 存储目录结构
元数据目录标准结构(fe.conf 中 meta_dir 配置):
/doris-meta/
├── bdb/ # BDBJE 日志(异常增长需检查 image 生成)
└── image/ # 元数据镜像文件(含 ROLE、VERSION)
禁止直接删除 image 文件,仅故障时可删除 ROLE 和 VERSION 文件触发重建。
3.3 集群 ID 一致性
恢复后检查 FE 的 image/VERSION 中 clusterId 是否与 BE 一致,不一致需手动修改(避免 BE 注册失败)。
3.4 前置依赖
确保所有节点时间同步(NTP 服务),偏差超过 5s 可能引发元数据同步失败。
灾备建议:
定期备份元数据:BACKUP SNAPSHOT + 对象存储(如 S3)。
生产环境部署 3 FE 节点(1 Follower + 2 Followers/Observers)提升高可用性。
更多推荐
所有评论(0)