# rds-mysql-downloader **Repository Path**: kybeijing/rds-mysql-downloader ## Basic Information - **Project Name**: rds-mysql-downloader - **Description**: 云 数据库 mysql备份创建、下载 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-18 - **Last Updated**: 2022-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### AliMySQL Backup Creater and Downloader > 开发环境 - go version go1.17.9 - Redis 7.0.0 (00000000/0) 64 bit > 运行环境 linux & windows > 接口依赖 - 阿里云接口依赖 CreateBackup:创建rds实例的备份集,返回此备份任务的BackupJobId DescribeBackupTasks:根据InstanceId(实例ID)和BackupJobId,查询当前备份集任务的状态 ```text DescribeBackupTasks的返回主要有: Process string ->任务进度百分比 BackupJobId ->当前的备份任务ID BackupStatus ->备份任务的状态,有: NoStart :未开始 Checking: 检查备份 Preparing: 准备备份 Waiting: 等待备份 Uploading:上传备份 Finished: 完成备份 Failed: 备份失败 JobMode string -> 备份模式,有: Automated: 系统自动备份 Manual: 手动备份 BackupProgressStatus -> 备份程序状态,有: NoStart: 未开始 Preparing: 准备中 Waiting: 等待中 Uploading: 上传中 Checking: 检查中 Finished: 已完成 BakcupId -> 备份任务生成的备份集ID ``` DescribeBackups:根据实例ID和BackupID来查找当前备份集的信息,主要有: BackupStatus: 备份集状态 BackupEnd/StartTine: 任务的结束/开始 时间 BackupIntranetDownloadURL: 备份集内网下载地址 BackupDownloadURL: 备份集公网下载地址 BackupMethod: 备份时的方式 > 基础流程 ![image](https://raw.githubusercontent.com/dustingo/mypicture_store/main/download_normal.png) > 初衷 1. 涉及到所有影响备份创建、下载的参数都于配置文件中体现,同平台不同项目,根据需求更改配置文件即可 2. 根据平台不同,会集成各个平台的创建、下载逻辑,根据各个平台的配置在执行时选择对应平台的下载策略 3. 主要为解决不方便使用常规dump方式来备份或者数据库较大,不方便下载但是平台又限制了备份频率等问题 > 使用方法 ```shell rds-mysql-downloader --help Usage of aliyun: -create run crate backup items -pull run pull backup items -status get backup status example: rds-mysql-downloader aliyun -create rds-mysql-downloader aliyun -pull rds-mysql-downloader aliyun -status # 配置信息详见配配置文件说明 config.toml ``` > To Be Continued - 增加平台支持,目前只完成阿里云rds - 集成备份的传输方式(oss、rsync、scp等,可能需要高度的自由定制,或许不太合适集成) - 集成其他数据库的备份、下载(mongo、redis等)