项目简介
本项目是一个MySQL备份管理工具,提供 Web API 和简单的 Web 界面,用于集中管理MySQL数据库的备份任务。支持逻辑备份(mysqldump)和物理备份(xtrabackup),支持全量/增量备份、定时任务调度、批量备份、还原、巡检等功能,适合在运维场景下使用。
主要功能
1. 备份计划管理
- 实例管理:添加、编辑、删除数据库实例(主机、端口、用户、密码、数据库等)。
- 任务管理:为每个实例创建多个备份任务,支持全量备份和增量备份(增量需关联一个全量任务)。
- 任务配置 :
- 备份类型(全量/增量)
- 备份方式(逻辑/mysqldump、物理/xtrabackup)
- 定时调度(cron 表达式)
- 备份存储目录、自定义目录名
- 清理策略(保留天数)
- 压缩选项(gzip 或 xtrabackup 压缩)
- 表过滤(仅逻辑备份)
- 工具路径自定义(mysqldump、xtrabackup)
2. 备份执行
- 手动执行:支持立即执行单个备份任务。
- 批量备份:通过 API 一次提交多个备份任务,统一执行。
- 备份结果记录 :每次备份成功后,在备份目录下生成
meta/backup-info.json元数据文件,记录备份信息。
3. 还原
- 物理还原:支持使用 xtrabackup 进行全量或增量还原。
- 逻辑还原:支持使用 mysqldump 备份的 SQL 文件进行还原,可指定目标数据库、表过滤、覆盖策略等。
- 还原历史:每次还原操作均记录到历史文件中,便于追溯。
4. 巡检功能
- 定时巡检:每日凌晨 2:30 自动巡检所有定时任务,检查最近执行状态是否异常(超过 24 小时未执行则告警)。
- 手动巡检:支持通过 API 手动触发巡检。
- 巡检历史:保存最近 100 条巡检记录,包含异常数、具体任务状态等。
- 导出 CSV:支持将巡检历史导出为 CSV 文件。
5. 备份管理
- 备份列表:查看所有备份目录,支持按数据库名、主机筛选,显示备份时间、大小、状态等。
- 增量备份列表:查看某个全量备份下的增量备份列表。
- 备份日志 :查看每个备份的
backup.log和还原日志。 - 删除备份:直接删除备份目录。
6. 其他功能
- 连接测试:测试数据库实例的连接性(支持 pymysql 或 mysql 客户端)。
- 登录认证:基于 Session 的简单认证,支持修改管理员密码。
- 健康检查 :
/health接口用于探活。 - 定时任务调度器:基于 APScheduler,支持动态刷新任务(添加/删除/启用/禁用时自动更新)。
新增功能(相对于基础版本)
- 定时任务管理:支持 cron 表达式的定时备份,任务可启用/禁用,支持动态刷新。
- 增量备份:支持基于 xtrabackup 或 mysqldump 的增量备份,需指定全量备份目录。
- 批量备份:一次性提交多个备份任务,提高效率。
- 巡检与告警:自动巡检任务执行状态,记录历史并支持导出,帮助及时发现备份异常。
- 备份元数据:每次备份自动生成 JSON 元数据文件,便于识别备份内容。
- 自定义工具路径:允许用户指定 mysqldump 或 xtrabackup 的安装路径,适配不同环境。
- 表过滤与压缩:逻辑备份支持指定表和忽略表,支持 gzip 压缩;物理备份支持 xtrabackup 压缩。
- 还原历史记录:记录每次还原的详细信息,便于审计。
- 前端界面:提供简易 Web 界面,方便操作。
配置说明
- 管理员账号 :默认 admin/admin,可通过环境变量
ADMIN_USER、ADMIN_PASS修改,或通过 API 修改密码。 - 备份根目录 :默认
/data/backup/mysql,可通过环境变量BACKUP_ROOT修改。 - 工具路径 :
MYSQLDUMP_PATH:默认/usr/local/mysql-8.0/bin/mysqldumpXTRABACKUP_PATH:默认/opt/xtrabackup/bin/xtrabackup
依赖项
- mysqldump / xtrabackup 命令行工具
使用示例
启动服务后,访问 http://<服务器IP>:8081 进入 Web 界面,使用管理员账号登录。
通过 Web 界面或 API 可以:
- 创建实例和备份任务
- 设置定时调度
- 手动执行备份
- 查看备份列表、巡检历史
- 执行还原操作
详细 API 接口文档可参考代码中的路由定义。
注意事项
- 请确保运行服务的用户具有备份目录的读写权限。
- 物理备份需要目标数据库主机上安装 xtrabackup,且备份用户需具备相应权限(如
RELOAD、LOCK TABLES、REPLICATION CLIENT等)。 - 请妥善保管管理员密码,建议修改默认密码。









