用python写了一个MySQL 备份管理系统,真好用啊
·
以下是 MySQL 备份管理系统的 README 文件,涵盖了项目简介、功能特性、安装部署、使用说明及 API 参考。
MySQL 备份管理系统
一个基于 Flask 的 MySQL 数据库备份管理工具,提供 Web 界面和 RESTful API,支持全量/增量备份、定时任务、批量备份、数据还原等功能,并针对 GTID 环境进行了优化。
功能特性
- Web 管理界面:直观的仪表板,支持实例管理、定时任务、手动备份、批量备份、备份列表查看、数据还原。
- 全库/单库备份:支持备份整个 MySQL 实例或指定数据库,备份目录按
{db}_YYYYMMDD_HHMMSS或all_YYYYMMDD_HHMMSS命名。 - 增量备份:基于 binlog 的增量备份,支持与全量备份关联。
- 定时任务:通过 cron 表达式调度备份任务,支持启用/停用。
- 批量备份:支持通过 Excel 模板导入批量备份任务。
- 数据还原:支持全库还原和单库还原,并记录还原历史。
- 日志轮转:自动管理备份和还原日志,超过 10MB 自动轮转。
使用说明
登录
默认用户名/密码:admin/admin(可通过环境变量修改)。
登录后进入主界面,左侧菜单包含六个模块。
1. 数据库实例信息
- 管理备份实例(主机、端口、用户名、密码、数据库名)。
- 数据库名留空表示备份整个实例。
- 支持测试连接。
2. 定时任务调度
- 为指定实例创建定时备份任务(支持全量/增量)。
- 使用 cron 表达式(如
0 2 * * *表示每天凌晨2点执行)。 - 可启动/停止/手动运行/删除任务。
3. 手动备份
- 支持手动填写连接信息或从已有实例选择。
- 支持全量/增量备份。
- 可指定表过滤、清理天数、压缩等选项。
- 增量备份需选择对应的全量备份目录。
4. 批量备份
- 下载 Excel 模板,填写多个备份任务。
- 上传 Excel 文件后预览任务列表,一键执行。
- 支持全库和单库混合。
5. 备份任务列表
- 查看所有已生成的备份目录。
- 显示数据库名、主机、目录名、备份时间、大小、状态(成功/失败)。
- 支持查看备份日志、查看表列表(单库)、删除备份。
6. 备份数据还原
- 选择备份目录(全库或单库)和目标数据库。
- 全库备份时无需填写目标数据库名,自动还原所有库。
- 可指定增量目录、表过滤、覆盖表等。
- 执行后自动记录还原历史(时间、结果、耗时等)。
认证
POST /do_login- 登录(JSON 格式,username/password)POST /logout- 登出GET /login- 登录页面
- 权限:数据库用户需要具有
SELECT、SHOW VIEW、LOCK TABLES、RELOAD、PROCESS等权限,还原时需CREATE、DROP权限。 - GTID:若数据库开启了 GTID,备份脚本已添加
--set-gtid-purged=OFF,还原时无需特殊处理。。 - 存储空间:请确保备份目录有足够磁盘空间,建议定期清理旧备份(可配置
clean_days)。 - 定时任务:目前仅提供 API 接口管理定时任务,实际调度需依赖外部工具(如系统 crontab)或集成 Celery 等。本系统当前版本仅将任务定义存储在 JSON 文件中,未实现实际调度器。







更多推荐


所有评论(0)