IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    GoBackup 数据库备份工具

    ysicing (i@ysicing.me)发表于 2024-02-10 10:15:45
    love 0

    GoBackup 是一个为中小型服务器而设计备份工具,内置计划任务,帮你定时备份数据库、配置文件,通过导出、打包压缩,最终存储到外部云存储(如S3等)

    特性

    • 多数据库支持
    • 支持多种存储类型
    • 支持压缩
    • 作为守护程序运行以按计划进行备份
    • 可视化UI
    • 支持消息通知

    支持的数据库

    支持常见的数据库,仅列出我测试过的

    • mysql
    • postgresql
    • mariadb

    支持的存储类似

    支持常见的对象存储,仅列出我测试过的

    • local
    • minio

    通知途径

    支持常见的备份通知类型,仅列出我测试过的

    • Telegram
    • Feishu

    安装配置

    官方提供了一个默认安装脚本:

    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库存在多版本(大版本)时,确实比较麻烦


沪ICP备19023445号-2号
友情链接