以下是基于实际运维场景的 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)提升高可用性。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐