MySQL + 应用服务器+ crontab 定期任务+ gobackup+ 云存储

在应用服务器上定期将数据库与文件备份到云存储

gobackup 作为统一备份入口,从数据库和文件系统采集数据,经打包压缩后推送到云存储实现异地容灾

✓ 面向应用服务器场景设计✓ 数据库与文件统一备份 ✕ 需自行评估 Star 数与更新时间

方案简介

本方案来自 Awesome Ops 收录清单中的 Backup 类目,核心项目是 gobackup/gobackup(MIT 协议,2767 Star,2017 年创建,持续更新至今)。

这是一款专为应用服务器设计的备份工具,解决的问题非常明确:应用服务器上通常同时存在关系型数据库(如 MySQL、PostgreSQL)产生的数据,以及应用自身产生的配置文件、上传文件、日志等,传统做法往往要为数据库写 dump 脚本、为文件写 rsync/tar 脚本,再各自对接云存储,脚本分散、难以维护。gobackup 将这两类备份对象统一收口:定期将您的数据库、文件备份到云存储,通过一份配置声明备份源和存储目的地,即可完成数据库导出、文件打包、上传云端的完整链路。

它适合的对象是:在自有应用服务器(云主机、VPS、物理机)上跑业务、需要把备份数据集中存放到云存储(如对象存储服务)以实现异地保存的开发者和运维人员。 Awesome Ops 仓库也提示:如果你打算应用在自己所在的生产环境,请结合项目的开源协议,Star数,最后更新时间等综合评估之后进行选型。

亮点与能力

根据清单中对项目的描述,该方案具备以下能力:

  • 专为应用服务器场景设计,贴合单机业务部署形态
  • 支持数据库备份,将数据库数据导出归档
  • 支持文件备份,覆盖配置、上传文件等静态数据
  • 内置定期调度能力,可按周期自动执行备份
  • 备份目的地为云存储,实现数据异地集中保存
  • MIT 开源协议,商业使用友好
  • 项目自 2017 年持续维护至 2026 年,成熟度较高

组成与分工

  • gobackup:备份核心工具,负责调度备份任务、导出数据库、打包文件并推送到云端
  • 数据库:备份的数据源之一,由 gobackup 定期导出
  • 文件:应用服务器上的文件目录,备份的另一类数据源
  • 云存储:备份目的地,接收 gobackup 推送的数据库与文件备份
  • 应用服务器:方案的运行宿主,gobackup 面向该场景专门设计

前置要求

根据材料信息,本方案的前置条件包括:

  • 一台应用服务器(gobackup 的目标运行环境)
  • 服务器上运行着需要备份的数据库
  • 存在需要备份的文件目录
  • 可用的云存储账号及访问凭证

获取项目:

  • 项目地址:https://github.com/gobackup/gobackup
  • 开源协议:MIT

材料未提供具体安装命令,请以项目仓库 README 为准。

实施步骤

材料为清单类条目,未给出具体实施命令,以下为基于条目描述的实施路径:

1. 环境评估

按照 Awesome Ops 的选型建议:如果你打算应用在自己所在的生产环境,请结合项目的开源协议,Star数,最后更新时间等综合评估之后进行选型。

2. 部署 gobackup

在应用服务器上安装 gobackup(详见项目仓库)。

3. 配置备份源

在配置中声明要备份的数据库实例和文件路径。

4. 配置云存储目的地

填写云存储的访问信息,使备份产物可上传到云端。

5. 启用定期调度

利用其定期备份能力设置执行周期,验证首次备份产物已出现在云存储中。

注意事项与常见问题

  • Awesome Ops 明确提示:如果你打算应用在自己所在的生产环境,请结合项目的开源协议,Star数,最后更新时间等综合评估之后进行选型。
  • 本条目信息来自清单 Description,具体支持的数据库类型、云存储厂商、配置格式等细节需查阅 gobackup 项目仓库确认。
  • 同类目下还有 backup-x、gin-mysqlbak、mission-backup、restic 等备选项目,可按需对比选型。

优缺点

  • ✓ 面向应用服务器场景设计
  • ✓ 数据库与文件统一备份
  • ✕ 需自行评估 Star 数与更新时间

出处

本方案挖掘自开源项目 opsre/awesome-ops,方案内容与实施命令均来自其 README 原文。

方案出处
opsre/awesome-ops:🧰 记录每一个与运维相关的优秀项目,⚗️ 项目内表格通过 GitHub Action 自动生成,📥 当前收录项目 653 个。
2043 star 🧰 记录每一个与运维相关的优秀项目,⚗️ 项目内表格通过 GitHub Action 自动生成,📥 当前收录项目 653 个。

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。