日志备份项目针对集群中MySQL, PostgreSQL, MongoDB日志进行备份, 从数据库实例日志所在的主机copy到专门用于放置日志备份的目录。对于数据 库集群,只备份客户实际使用的那台主机上的数据库实例日志
- MySQL 从/pacloud/mybackup/<instance>/archlog/ 到 /pacloud/dbbackup/mongodb/<instance>/dblog/<datetime>/
- PostgreSQL 从/pacloud/pgbackup/<instance>/archlog/ 到 /pacloud/dbbackup/mongodb/<instance>/dblog/<datetime>/
- MongoDB 从/pacloud/mgbackup/<instance>/archlog/ 到 /pacloud/dbbackup/mongodb/<instance>/dblog/<datetime>/
flask + celery + sqlalchemy
celery beat 每隔n秒从数据库中获取active状态的调度信息,然后从中二次过滤出实践需要备份的调度
信息发起调度,每个instance产生一个异步任务,更新next—_run_time字段。
每隔instance异步任务会调salt接口查询增量的文件,然后通过celery work flows调下一个异步任务
备份增量文件
- flask 开发web api, 对外提供接口
- celery 做异步任务,主要开发实际备份及删除过期日志逻辑
- sqlalchemy 使用线程池方式,防止大量数据库session频繁建立及释放
log_backup项目目录下有以下文件
- bin/ 目录: 存放一些命令及脚本
- docs/ 目录: 存放说明及接口文档
- logBackup/ 目录: 主程序目录
- celerySchedule/ 目录: celery相关,task:备份及删除的主要逻辑
- utils/ 目录: 工具
- webApp/ 目录: web api
- 其他文件... :配置文件,model,异常类
- test/ 目录: 单元测试代码
- README.md 本文件
- requirement.txxt :本项目依赖的库
暂无