【免费下载链接】openeverest
OpenEverest is an open-source platform for automated database, storage and LLMs provisioning and management. It supports multiple technologies and can be hosted on any Kubernetes infrastructure, in the cloud or on-premises.
OpenEverest 是部署在 Kubernetes 上的开源数据库管理平台,内置自动化备份与恢复能力,支持定时任务、按需备份、多 S3 兼容存储以及基于时间点的恢复(PITR),让你彻底告别手动执行pg_dump或mongodump的繁琐操作。
本文以一个 K8s 集群中的数据库实例为例,带你从零完成备份存储配置 → 定时备份策略设置 → 按需备份 → 数据恢复的全流程。
一、理解 OpenEverest 备份体系
动手之前,先认识四个核心 CRD 对象,它们共同构成 OpenEverest 的备份与恢复体系:
| 对象 | 作用 | 作用域 |
|---|---|---|
| BackupStorage | 定义备份数据写入哪里(S3 兼容存储),管理访问凭证 | 命名空间级 |
| BackupClass | 定义"怎么备份"——Provider 托管(PBM / pgBackRest)还是 K8s Job 方式 | 集群级 |
| Backup | 一次具体的备份任务,关联 Instance + BackupClass + BackupStorage | 命名空间级 |
| Restore | 一次具体的恢复操作,将备份数据还原到目标 Instance | 命名空间级 |
💡 一个 Instance 可绑定多个 BackupStorage,每个 Storage 上可配置多个定时备份计划(Schedule),实现不同保留策略的多层备份体系。
核心类型定义参见 backup_types.go 和 restore_types.go。
二、一键配置备份存储(BackupStorage)
所有备份数据都需要写入对象存储。OpenEverest 支持S3 兼容存储(AWS S3、MinIO、Ceph 等)。
通过 Web UI 添加
进入Settings → Backup storages,点击Add backup storage:
填写以下字段即可:
- Name:存储名称(如
s3-prod-backups) - Bucket:S3 桶名
- Endpoint URL:S3 服务端点
- Access Key / Secret Key:访问凭证
通过 YAML 声明式定义
apiVersion: backup.openeverest.io/v1alpha1 kind: BackupStorage metadata: name: s3-prod-backups namespace: default spec: type: s3 s3: bucket: everest-backups-prod region: us-east-1 endpointURL: https://s3.example.com credentialsSecretRef: name: s3-credentials完整字段定义见 backupstorage_types.go。
三、在数据库向导中配置定时备份
创建数据库实例时,OpenEverest 向导内置了Backups步骤,一次性完成备份策略配置:
在该步骤中你可以依次完成:
- 启用备份:打开 Enable Backups 开关
- 选择 BackupClass:平台根据已安装 Provider 自动填充
- 创建定时备份计划:
- 设置 Cron 表达式(如每天凌晨 2 点:
0 2 * * *) - 选择目标 BackupStorage
- 配置保留策略
- 设置 Cron 表达式(如每天凌晨 2 点:
- 开启 PITR(Point-in-Time Recovery):将 RPO 缩小到秒级
定时备份计划的底层模型定义在 instance_types.go(InstanceBackupSchedule结构体)。
⏰ 保留策略支持两种模式:
count(保留最近 N 份)和time(保留指定时长内的备份,如30d)。不设置则永久保留。
四、创建按需备份(On-demand Backup)
除了定时任务,你还可以随时手动触发一次备份,适合升级前、发布前等关键节点。
通过 Web UI 操作
进入实例详情 → Backups选项卡,点击Create backup → Now:
列表中实时展示每份备份的关键信息:
- Status:
Running→Succeeded/Failed - Size:备份文件大小(如
1.2Gi) - Started / Finished:精确时间戳
通过 CLI 命令行
# 创建按需备份并等待完成 everestctl backup create \ --instance my-mongo \ --namespace everest \ --class percona-backup-mongodb \ --storage my-s3 \ --name pre-upgrade \ --wait # 使用 Retain 策略:删除 Backup CR 时保留 S3 中的原始数据 everestctl backup create \ --instance my-mongo \ --namespace everest \ --class percona-backup-mongodb \ --storage my-s3 \ --deletion-policy Retain🗑️
--deletion-policy Retain适用于合规审计场景:即使用户删除了 Backup 资源,S3 桶中的原始数据仍然保留,防止误删。
命令实现代码见 pkg/cli/backup/create.go。
五、执行数据恢复(Restore)
当数据出现问题(误删、逻辑错误、故障)时,使用备份进行恢复。
两种恢复模式
| 模式 | 说明 | 适用场景 |
|---|---|---|
| Backup | 从某份具体备份恢复完整状态 | 回滚到已知好的时间点 |
| PointInTime | 将备份流推进到指定日期 / 最新 | 精确恢复到误操作前的秒级时刻 |
通过 Web UI 恢复
进入实例详情 → Restores选项卡,点击创建恢复任务:
通过 CLI 恢复
# 从指定备份恢复,等待完成 everestctl restore create \ --instance my-mongo \ --namespace everest \ --backup daily-backup-2026-06-28 \ --wait恢复任务同样遵循完整状态机:Pending → Running → Succeeded / Failed。
命令实现见 pkg/cli/restore/create.go。
六、备份状态与生命周期速查
每个 Backup 和 Restore 对象都有清晰的状态机,便于监控和告警:
| 状态 | 含义 | 是否终态 |
|---|---|---|
Pending | 已接受,等待执行 | ❌ |
Running | 正在执行 | ❌ |
Succeeded | 成功完成 | ✅ |
Failed | 终态失败 | ✅ |
Error | 瞬时错误,控制器可能自动重试 | ❌ |
Deleting | 正在清理(仅 Backup) | ❌ |
状态枚举定义见 backup_types.go。
七、生产环境最佳实践
| 实践 | 说明 |
|---|---|
| 多层备份策略 | 日常备份保留 7 天,月度归档保留 12 个月,利用多个 BackupStorage 实现 |
| 始终启用 PITR | 支持 PITR 的 Provider 建议开启,将 RPO 从小时级缩小到秒级 |
| 升级前按需备份 | 执行版本升级、DDL 变更等高风险操作前,用--wait等待备份完成 |
| 定期恢复演练 | 不要只备份不恢复——定期恢复到测试环境,验证数据完整性 |
| Retain 策略保护关键备份 | 合规审计要求的备份使用deletionPolicy: Retain,防止误操作删除 |
总结
OpenEverest 将数据库备份从"手动脚本"升级为声明式、自动化、可观测的平台能力:
- ✅定时备份:Cron 驱动,自动执行,自动清理过期备份
- ✅按需备份:一条命令或一次点击,随时触发
- ✅多存储支持:同一实例可绑定多个 S3 兼容存储
- ✅PITR:精确恢复到任意时间点
- ✅统一状态管理:所有备份 / 恢复任务状态可查询、可等待、可监控
从此,数据安全保障不再依赖某个 DBA 的记忆和习惯,而是由平台自动、持续地保障。
【免费下载链接】openeverest
OpenEverest is an open-source platform for automated database, storage and LLMs provisioning and management. It supports multiple technologies and can be hosted on any Kubernetes infrastructure, in the cloud or on-premises.
相关推荐
Lexical备份恢复:自动备份与灾难恢复机制
Lexical备份恢复:自动备份与灾难恢复机制 引言:为什么编辑器需要可靠的备份机制? 在现代Web应用中,富文本编辑器已成为不可或缺的核心组件。无论是内容管理
前端富文本Weblate 备份与迁移实战:项目级备份、BorgBackup 自动备份与手动备份恢复全解
Weblate 备份与迁移实战:项目级备份、BorgBackup 自动备份与手动备份恢复全解 Weblate 是数据库与文件数据双轨存储的本地化平台,备份策略必
后端开发工具Amplication数据备份:自动化备份与灾难恢复
Amplication数据备份:自动化备份与灾难恢复 概述 在现代软件开发中,数据是企业的核心资产。Amplication作为开源的后端开发平台,承载着用户的项
后端代码生成低代码AI 应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考