GoBackup 数据库备份工具
                 本文最后更新于 630 天前, 如有失效请评论区留言.
            
            
        
GoBackup是一个为中小型服务器而设计备份工具,内置计划任务,帮你定时备份数据库、配置文件,通过导出、打包压缩,最终存储到外部云存储(如 S3 等)
特性
- 多数据库支持
 - 支持多种存储类型
 - 支持压缩
 - 作为守护程序运行以按计划进行备份
 - 可视化 UI
 - 支持消息通知
 
支持的数据库
支持常见的数据库,仅列出我测试过的
mysqlpostgresqlmariadb
支持的存储类似
支持常见的对象存储,仅列出我测试过的
localminio
通知途径
支持常见的备份通知类型,仅列出我测试过的
TelegramFeishu
安装配置
官方提供了一个默认安装脚本:
curl -sSL https://gobackup.github.io/install | sh
创建并编辑配置文件 /etc/gobackup/gobackup.yml 或者 /root/.gobackup/gobackup.yml, 模版如下:
web:
  host: 0.0.0.0
  # port: 2703
  username: ysicing
  password: ysicing
models:
  solitudes-dev:
    description: "backup solitudes dev db"
    schedule:
      cron: "*0 */2 * * *"
    databases:
      solitudes:
        type: postgresql
        host:  postgresql.default.svc
        port: 5432
        database: solitudes
        username: solitudes
        password: examplepassowrd
    default_storage: minio
    storages:
      minio:
        type: minio
        bucket: gobackup
        endpoint: http://minio.default.svc:9000
        path: /blog/pg/dev
        access_key_id: ysicing
        secret_access_key: ysicing
      local:
        type: local
        path: /data/backups/blog/dev
        keep: 10
    notifiers:
      feishu:
        type: feishu
        url: https://open.feishu.cn/open-apis/bot/v2/hook/feishu-token
    compress_with:
      type: tgz
开始执行备份:
gobackup perform
后台守护进程:
gobackup start
其他
目前已经稳定备份大概几个月了,不足的地方
- 目前好像只有 
local支持清理策略,暂时只能通过 minio 的生命周期来管理维护 - 消息通知暂不支持全局
 - 如备份的 PG 库存在多版本(大版本)时,确实比较麻烦
 
