企业业务部署在云上,借助云平台的能力,企业几乎“零”成本拥有同地域数据备份的能力。即使云平台在建设数据中心之前,会遵循机房建设标准来选址,但是对于极端情况自然灾害,例如地震,台风等等,对同地域备份安全能力有非常大的风险,因此本文重点阐述腾讯云对异地数据冷备解决方案。
1. 异地数据备份挑战
相对同城数据备份,异地数据冷备主要挑战是成本,主要是跨地域之数据传输带宽成本。对于同城数据备份,对企业来说“零”成本,企业可以把所有数据都进行备份;而跨地域数据备份,需要对业务进行梳理,尤其数据量比较大的业务,来决策哪些业务需要异地数据备份。如果涉及到一个库只需要同步其中几张表,可能还会涉及到业务改造;由此可见相当于“零”成本,“零”投入同城数据备份而言,异地数据备份会带来一些复杂度。
2. 异地数据冷备方案
2.1 API实现方案
- 数据备份:云平台的数据库数据备份均为同地域,因此需要将该备份数据上传到异地COS存储桶。以mysql数据库为例,主要操作步骤:
1)调用mysql备份查询api(DescribeBackups),获取备份连接url。
2)通过url将备份下载到本地
3)调用cos上传api,将本地的备份文件上传到异地cos桶
4)按照备份业务规则,周期性的执行上面1-3步骤,将备份存储到异地COS存储桶。
- 数据管理:通过COS生命周期管理,对备份数据,按照业务需求定时删除或者转入低频或者归档存储,来节约成本。
2.2 云函数和存储桶复制结合实现方案
- 数据备份:目前存储桶通过云函数集成了数据备份能力,通过云函数自动拉取备份文件,同时将数据备份到存储桶。目前云函数支持备份产品如下:
- 跨地域复制:目前云函数只支持同地域备份,即备份数据库和cos需要同地域,因此通过存储桶的跨地域复制能力,将对应的备份文件复制到异地的存储桶。
2.3 数据库备份服务
数据库备份服务拥有一套完整的数据备份和数据恢复解决方案,具备实时增量备份以及快速的数据恢复能力,同时具备异地容灾能力。当前数据库服务支持数据库种类主要是mySQL、mariaDB、Percona、TDSQL。以mysql为例说明,主要步骤如下:
1)购买数据库备份服务,这里注意选择备份地,例如业务在广州,备份在北京,备份地选择北京;根据数据量的大小选择对应的规格。
2)配置数据库备份服务,主要包括备份数据源,备份规则配置。
3)在北京地域新购同等规格的mysql数据库。
4) 使用备份服务恢复在新购数据库恢复数据。注意恢复数据库要求为空库。
3. 异地数据冷备案例
3.1 异地冷备方案
以某在线商城为例,涉及数据产品为mysql,reids以及cos,结合云平台的能力,具体方案架构如下:
方案要点说明:
- 数据备份:基于数据恢复的rto时长,mysql采用数据库备份服务;当前数据库备份服务暂不支持redis,采用api方式进行备份;cos采用异地存储桶的复制进行数据备份。
- 数据一致性:方案不涉及数据读写,对业务数据一致性无影响。
- 实施周期:redis备份进行需要api进行调用会涉及到简单脚本编写,对于mysql和cos数据备份均可以在控制台完成操作。
- 业务改造:对业务没有入侵,不需要改造。
- 资源成本:主要涉及带宽,存储以及服务费用。带宽和存储主要依赖于redis和cos业务规模,服务费用主要为数据库备份服务。
3.2 业务恢复及回切
如果云平台自愈能力超出预期,业务在北京地域进行资源1:1的部署恢复。对于数据恢复方式如下:
- cos数据恢复:cos存储桶异地复制,数据无需恢复。
- redis数据恢复:redis通过购买云redis使用之前备份数据进行人工恢复。
- mysql数据恢复:使用数据库恢复服务进行恢复,详见本文的2.3节。
当原先地域恢复后,这里要评估业务是否回切,通常恢复业务和之前可用区业务耦合性较低,企业一般都不会选择切回。如果企业有业务切回需求,数据库依赖于dts数据同步工具,cos通过日志进行人工补录,待两端数据一致后,在业务低峰期将业务切回之前地域。
4.本章小结
方案实现方式 | rpo/rto | 资源费用 | 业务改造 | 数据备份 | 业务恢复 |
---|---|---|---|---|---|
api方式实现 | 小时计 | 带宽和存储 | "零"改造 | 人工实现 | 数据和业务恢复均人工实现 |
云函数与存储桶复制联动 | 小时计 | 带宽、存储和云函数费用 | "零"改造 | 自动实现 | 同上 |
数据库备份服务 | 小时计 | 带宽、存储和数据库备份服务 | "零"改造 | 自动实现 | 数据恢复自动实现,业务恢复人工实现 |