使用php封装了高效的 Mysql 备份工具 mydumper,提供可视化页面,方便在线管理数据库备份

一、简介

  • 该工具封装了高效的 MySQL 备份工具 mydumper,实现了多线程备份、事务一致性备份、指定表备份、备份分片与压缩等功能
  • 也支持使用 myloader 恢复备份数据到指定数据库中
  • 提供简洁易用的 Web 界面,方便在线管理数据库配置、设置备份策略、执行备份与恢复操作、管理备份文件
  • 支持使用Docker快速部署使用
  • 该工具的源码地址参考:github.com/luler/hello_mysql_backu...
  • 该项目的整体架构可参考下图:
    Laravel

二、安装

  • 准备一台主机,需要具备Docker、docker-compose软件环境
  • 拉取项目代码
    git clone https://github.com/luler/hello_mysql_backup.git
  • 进入项目代码,编辑docker-compose.yml配置文件,配置内容参考下面:
    services:
    php_nginx:
      image: registry.cn-shenzhen.aliyuncs.com/luler/linux_php_nginx:php7.3
      restart: always
      privileged: true
      ports:
        - 6033:80 #默认6033端口
        #- 9911:9001
      volumes:
        #下面都是一些持久化配置,如不清楚用途,可不用编辑
        - ./config/nginx/conf:/usr/local/nginx/conf
        - ./config/php/etc:/usr/local/php/etc
        - ./config/init.sh:/init.sh
        - ./code/api:/home/wwwroot/api
        - ./code/web/dist:/home/wwwroot/web/dist
        - ./code/mydumper-0.10.7-2.el8.x86_64.rpm:/home/wwwroot/mydumper-0.10.7-2.el8.x86_64.rpm
        - ./runtime/wwwlogs:/home/wwwlogs
        - ./config/supervisor/supervisord.conf:/etc/supervisord.conf
        - ./config/supervisor/supervisord.d:/etc/supervisord.d
  • (可选)修改默认配置文件,路径:./code/api/.env,可以选择配置账号信息、邮箱配置等
......

#默认账号
admin_user=admin
#默认密码
admin_password=admin

......

#如果需要配置,备份、恢复失败后发出邮箱通知,需要配置下面选项
[email]
smtp_host=smtp.exmail.qq.com
smtp_port=465
smtp_email=xxx
smtp_password=xxx
smtp_nickname=Mysql数据备份
#alert_emails=xxx,xxx
alert_emails=

alert_ignore_str=
  • 执行如下命令,启动服务
    docker-compose up -d
    执行命令会自动拉取镜像,启动服务,参考下图
    Laravel

三、使用

1. 安装完毕,可访问页面:http://server_ip:6033/,默认账号:admin,密码:admin

Laravel

2. 添加一个数据库,填入相关连接配置

Laravel

3. 新增数据库备份策略,可设置定时备份、保留备份数量、限制备份哪些表等

Laravel

4. 可以操作立即备份和下载、管理备份文件

  • 管理备份策略、查看备份数量与空间占用、操作立即备份等

  • 下载、管理备份文件
    Laravel

5. 可以在线选择已备份数据,导入到指定数据库

四、总结

  • 该工具基于高效的多线程备份工具 mydumper,备份性能高,支持事务一致性备份,指定表备份
  • 提供便捷易用在线管理页面,可以帮助开发人员高效设置mysql数据库的数据备份策略和管理备份文件
  • 可以通过Docker快速部署使用,低配置、低运维成本
  • 值得注意的是,该工具是基于网络连接的备份,需要关注网络带宽、数据库压力情况,建议中小型数据库、从库备份、定时在低频使用期备份等

演示地址参考:cas.luler.top/?search=620da2d4a63a...

我只想看看蓝天
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!