暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

从零搭建到实战:基于MinIO的Doris数据备份恢复全攻略

数据微光 2025-02-06
500

概述

针对开发测试环境中缺少S3/HDFS存储导致Doris备份不便的痛点,本文将提供一条龙实操指南,从在本地环境搭建对象存储MinIO,到完整实现Doris数据备份与恢复全流程。(操作环境:CentOS 7.6+)

一、环境准备:5分钟部署MinIO

1.1 镜像获取与目录配置

docker pull minio/minio

启动前需要先创建Minio外部挂载的配置文件( opt/minio/config),和存储上传文件的目录( opt/minio/data )

# 创建配置及数据目录(推荐SSD存储)
mkdir -p opt/minio/{config,data} && chmod -R 777 opt/minio

1.2 容器部署参数详解

docker run -p 9000:9000 -p 9090:9090 \
--net=host    \
--name minio  \
-d --restart=always   \
-e "MINIO_ACCESS_KEY=minio"   \
-e "MINIO_SECRET_KEY=selectdb"  \
-v home/minio/data:/data   \
-v home/minio/config:/root/.minio  \
minio/minio server  /data --console-address ":9090" -address ":9000"



关键参数说明
--net=host
主机网络模式提升传输性能
--console-address
Web管理台端口(推荐9090)
--address
API通信端口(推荐9000)
MINIO_SECRET_KEY
密码需要至少8位且包含大小写/特殊字符
MinIO部署架构图

1.3 访问验证与管理配置

  1. 登录 http://<服务器IP>:9090
     使用预设账号密码

  2. 创建AccessKey流程:

  3. 创建名为doris
    的存储桶(Bucket)

    Bucket配置

二、Doris备份实战

创建minio仓库

CREATE REPOSITORY `minio_repo`
WITH S3
ON LOCATION "s3://doris"
PROPERTIES
(
    "s3.endpoint" = "http://10.16.10.6:9001",
    "s3.access_key" = "IPzmVMkcHVxpMriSqsDn",
    "s3.secret_key"="RgOpT7dd4GJFXfOLfjRpNAbkQyWKOVUKIMu33pEy",
    "s3.region" = "us-east-1",
    "use_path_style" = "true"
);

备份ssb数据库下的dates表

-- 单表备份
BACKUP SNAPSHOT ssb.snapshot_label1
TO minio_repo
ON (dates)
PROPERTIES ("type" = "full");

-- 查看备份进度
SHOW BACKUP FROM ssb\G;

如果想要整库备份数据去掉ON的限制即可

在minio上看到已经有对应的备份数据

恢复

查看minio_repo1上快照,根据snapshot对应的Timestamp去进行数据恢复。

mysql> show snapshot on minio_repo1;
+-----------------+---------------------+--------+
| Snapshot        | Timestamp           | Status |
+-----------------+---------------------+--------+
| snapshot_label2 | 2025-01-28-10-25-07 | OK     |
+-----------------+---------------------+--------+
1 row in set (0.01 sec)

以下SQL语句从名为minio_repo1的 Repository 中恢复标签为 snapshot_label2 和时间戳为2025-01-28-10-25-07的快照到名为 demo 的数据库。

-- 恢复整个快照的数据
RESTORESNAPSHOT demo.`snapshot_label2`
FROM`minio_repo1`
PROPERTIES
(
    "backup_timestamp"="2025-01-28-10-25-07",
    "replication_num" = "1"       -- 调整副本数
);


-- 监控恢复进度(新会话)
SHOWRESTOREFROM demo\G;

Doris 也支持从快照恢复分区和表,具体可查阅Doris官方文档(https://doris.apache.org/zh-CN/docs/admin-manual/data-admin/backup-restore/restore)。

附录:常见问题排查

Q1: 备份时出现s3 access denied

✅ 检查项:

  1. MinIO控制台-AccessKey权限是否开启
  2. s3.endpoint是否包含协议头(http://
  3. Bucket的读写策略是否配置正确

Q2: 恢复时报table already exists

✅ 解决方案: 这是因为表中有同名的表,可以重命名原来的表名,或者恢复到另一个数据库。


往期推荐

【建议收藏】Apache Doris 常用命令速查手册

从源码到运行:深入解析 Apache Doris 的编译与 Debug 流程

成为 Apache 顶级项目贡献者之路:Apache Doris 的语法迁移攻略

【Apache Doris】数据副本问题排查指南

「FE 倒下了,但我挺住了」—— Doris FE 挂机应急指南

数据微光 专注分享 Apache Doris 的最佳实践、问题解决技巧、学习资源和实用案例,致力于为开发者和技术爱好者提供高质量内容支持和持续学习动力。

📚 特别福利 | 数据微光知识库内含Apache Doris丰富的 学习资料、实战课程、白皮书、行业报告、技术指南,帮助快速掌握数据库核心技能!

📘 领取方式: 关注 “数据微光” 公众号 扫描下方二维码,备注【Doris】即可免费获取! 💻 让我们携手点亮技术微光,共同探索 Doris 的无限可能!







关于社区





Apache Doris

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极易易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发发点查询场景,也能支持高吞吐的复杂分析场景。

如果您对 Apache Doris 感兴趣,可以通过以下入口访问官方网站、社区论坛、GitHub 和 dev 邮件组:

  • 📒 官方文档: https://doris.apache.org
  • 💬 社区论坛: https://ask.selectdb.com
  • 📂 GitHub: https://github.com/apache/doris
  • 📧 dev 邮件组: dev@doris.apache.org

可以加 作者微信 (hhj_0530) 直接进 Doris 官方社区群。

PowerData

PowerData 是由一群数据从业人员,因为热爱凝聚在一起,以开源精神为基础,组成的数据开源社区。

社区群内会定期组织模拟面试、线上分享、行业研讨、线下 Meetup、城市聚会、求职内推等活动。同时,在社区群内您可以进行技术讨论、问题请教,结识更多志同道合的数据朋友。

社区整理了一份每日一题汇总及社区分享 PPT,内容涵盖大数据组件、编程语言、数据结构与算法、企业真实面试题等各个领域,帮助您提升自我,成功上岸。

可以加 作者微信 (hhj_0530) 直接进 PowerData 官方社区群。



点击上方蓝字关注我们

文章转载自数据微光,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论