MySQL数据库备份管理系统新增备份任务巡检功能

项目简介

本项目是一个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_USERADMIN_PASS 修改,或通过 API 修改密码。
  • 备份根目录 :默认 /data/backup/mysql,可通过环境变量 BACKUP_ROOT 修改。
  • 工具路径
    • MYSQLDUMP_PATH:默认 /usr/local/mysql-8.0/bin/mysqldump
    • XTRABACKUP_PATH:默认 /opt/xtrabackup/bin/xtrabackup

依赖项

  • mysqldump / xtrabackup 命令行工具

使用示例

启动服务后,访问 http://<服务器IP>:8081 进入 Web 界面,使用管理员账号登录。

通过 Web 界面或 API 可以:

  • 创建实例和备份任务
  • 设置定时调度
  • 手动执行备份
  • 查看备份列表、巡检历史
  • 执行还原操作

详细 API 接口文档可参考代码中的路由定义。

注意事项

  • 请确保运行服务的用户具有备份目录的读写权限。
  • 物理备份需要目标数据库主机上安装 xtrabackup,且备份用户需具备相应权限(如 RELOADLOCK TABLESREPLICATION CLIENT 等)。
  • 请妥善保管管理员密码,建议修改默认密码。










相关推荐
奇树谦2 小时前
Ubuntu 24 常用截图工具一键安装脚本+自定义快捷键配置指南
linux·运维·ubuntu
吠品2 小时前
Docker Desktop部署Weaviate向量数据库:从配置到生产环境全流程
数据库·oracle·eureka
tuokuac2 小时前
什么情况下type为index
mysql
吕司2 小时前
Linux的ELF文件与虚拟地址空间
linux·运维·服务器
倔强的石头1062 小时前
【Linux指南】基础IO系列(三):Linux 系统 IO 接口 —— 深入内核的文件操作
linux·数据库
biubiubiu07062 小时前
Ubuntu 22.04 中 cron 和 systemd timer 的区别与使用
linux·运维·ubuntu
Agent产品评测局2 小时前
医药行业合规自动化平台选型,核心要点详解:企业级智能体驱动的合规化演进与实测分析
运维·网络·人工智能·ai·chatgpt·自动化
六义义2 小时前
Linux 安装 Redis 详细教程
linux·运维·服务器
147API2 小时前
Claude Code 新增「计算机使用」能力:架构解析、自动化场景与安全风险避坑
运维·安全·自动化·claude