UBackup - 游族异地备份系统


GPL
跨平台
Python

软件简介

此系统解决游族2w+个数据库实例(包括mysql,redis,ssdb)的异地灾备

每天大概40w+个备份文件(99%的数据库实例进行每小时备份策略)

每天40TB+数据量进行异地传输

支持任意备份

  • 此系统只负责备份异地传输,不负责如何备份 具体备份脚本用户自行编写,只要按照要求把备份信息写入对应日志文件即可

    备份脚本规范

    1.每次都是全备的方式 (例如redis通过RDB每次都是全备)

    2.全备+增量 的方式(例如Mysql通过Xtrabackup)

    脚本日志生成规范:

    备份成功:back_log 第一行为ok,第二行为文件名

    备份失败:back_log 第一行为wrong,第二行为错误信息

    如果是第2种方式,则在生成back_log的时候,同时生成一份相同的日志信息在last_all_log 日志中

  • 备份队列优先级控制,重要的备份优先拉取到异地

支持以下报警类型

  • 正常备份脚本出错(脚本退出码非0)

  • 超过规定时间未备份

  • 非法备份

针对报警做了一个chrome插件提醒的功能

支持后端集群线性扩展

  • 集群支持拉取数据调整,权重调整,集群容量可以通过简单的增加节点进行增加

  • 节点根据配置预留空间,超过预留空间自动暂停,暂停后只要集群中还尚有正常工作的节点,整个集群就能继续工作

支持多纬度数据分析

  • 元数据存储在ES,根据需要进行数据分析

一键恢复

  • 配合恢复脚本可以实现查询备份位置,下载,恢复一气呵成

架构介绍

架构图

统计数据页面

static1static2

报警页面

alert

集群管理页面

alert