实战宝典 | 如何让备份数据秒级可用,随时查询历史数据?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 盘活二级数据的方案,从解决方案的角度是成立的,但实施起来面临着许多技术困难。CDM是备份技术领域近几年备受关注的技术方向。业界对于CDM的定义各有一些不同,在数据库领域,我们认为CDM是多项技术组合而成的解决方案,目的是帮助用户更快速、低成本的保存和使用数据库备份数据。阿里云数据库备份产品DBS,运用了业界领先的CDM(Copy Data Management)技术,提供了完全克服以上技术困难的整体解决方案——DBS沙箱,帮助用户全面激活从备份数据到二级数据库业务生态。

1.备份到二级数据库

从数据的生成和管理角度,企业数据可以分为一级和二级数据两类。其中一级数据是系统直接生成的数据,例如存储在线订单的数据库。二级数据的内容来源于一级数据,可能是一级数据的简单复制(例如订单数据库的一个备份副本),也可能是在一级数据的基础上发生格式或内容的变化(例如基于在线订单数据生成的商业分析数据库)。业界通常认为,从数据量看一级数据仅仅是企业需要维护数据“冰山一角”,Gartner报告指出二级数据的数据量达到一级数据的20倍。
通常企业核心的一级数据都使用数据库存储(本文称为在线库),而数据库的备份则是最常见的二级数据。大部分时候,备份数据量会远大于在线库的数据量。传统的备份系统中,这些备份数据会长期占用存储资源,但仅仅在容灾场景下才会使用,也就意味着为备份数据付出的成本很高,但大部分时候无法获得收益。另一方面,如果备份数据只能通过恢复(覆盖)到在线库才能被使用,那么企业使用备份数据本身就变成了一个具有很高风险的操作。
20201117161223.jpg
现代备份系统,通常会给用户将备份数据恢复到非生产数据库的解决方案,我们称之为二级数据库。显然二级数据库也成为了用户的二级数据的一部分。用户可以将二级数据库用于许多场景,举例来说:
开发测试:许多企业的集成测试,依赖真实的在线数据内容和数据量。那么使用备份数据产生的新数据库,可以满足这一需求,并且对在线生产库没有影响。
应急容灾:与传统的恢复到生产库方案不同,生产新的应急容灾库的使用方法更加灵活。既可以在生产库故障期间作为生产库的临时替代(故障结束后切换回生产库),也可以在生产库出现脏数据时作为数据订正的参照对象。
历史分析:如果要分析过去某个时间点的数据,那么查询从历史备份数据产生的新数据库,是最合理的方案。

2. 拷贝和管理数据带来的困难

前面所述盘活二级数据的方案,从解决方案的角度是成立的,但实施起来面临着许多技术困难。
数据拷贝的资源成本:1)同一个备份数据产生可能产生多个二级数据库,这些数据库之间数据完全重复,产生多倍的存储成本,以及数据拷贝产生的带宽成本,2)不同备份集之间也存在大量重复数据,例如在线订单库的一次备份可能相比前一天的备份,只有1%记录发生变化,剩余大量的记录是不变的,然而新增的存储成本则是生产库的100%。
数据拷贝的时间成本:即使用户不在意存储和带宽成本,拷贝数据本身仍然受限于物理设备的IO吞吐限制。例如当生产库的容量达到1TB,拷贝数据的最大吞吐是100MB每秒,需要3个多小时才能完成一个二级数据库所需的数据拷贝。然而前面提到的几个典型二级数据库应用场景,都希望数据准备时间(类似备份领域的RTO概念)尽可能低。特别是应急容灾场景,高于秒级级别的准备时间,一般是不能接受的。
资源管理挑战:一般企业用户通常不具备云服务弹性资源管理能力,对于二级数据库应用场景,需要提前准备软硬件资源,包括主机、系统、软件和网络等配置,无法按需弹性的付出的硬件和人力资源成本。
数据管理挑战:1)新产生的二级数据库也需要管理,例如权限管理、性能监控、后台运维。然而现有的大部分数据库管理系统和人员(如DBA),并没有准备好管理为二级数据库。2)在一些特殊情况下,二级数据库还需要对原始数据加工后才能使用,例如生产库中的敏感数据,在提供给测试或分析系统前,需要对数据进行脱敏处理。

2.jpg
以上的各种技术问题,使得备份数据到二级数据库的实际实施难度非常高,大部分企业用户都只能望而却步。阿里云数据库备份产品DBS,运用了业界领先的CDM(Copy Data Management)技术,提供了完全克服以上技术困难的整体解决方案——DBS沙箱,帮助用户全面激活从备份数据到二级数据库业务生态。

3. 阿里云DBS沙箱技术

CDM是备份技术领域近几年备受关注的技术方向。业界对于CDM的定义各有一些不同,在数据库领域,我们认为CDM是多项技术组合而成的解决方案,目的是帮助用户更快速、低成本的保存和使用数据库备份数据,具体来说就是解决前面所述的备份数据到二级数据库各项技术困难。
3.jpg

3.1 物理备份技术

物理备份技术,是DBS沙箱技术的前提。相比逻辑备份技术,物理备份不需要解析数据库中的内容,而是直接拷贝数据库的文件,因此相比逻辑备份,占用的计算、存储、带宽资源更少。物理备份技术的主要难点在于,不干扰在线库的正常读写前提下,实现对数据库文件PIT(Point-in-Time)拷贝。举个例子,如果在不锁表情况下,一遍拷贝MySQL数据文件,一遍对MySQL写入数据,最后拷贝完成的数据文件很有可能是错误的,因为这个文件先拷贝的部分与后拷贝的部分,并不属于同一个时刻。实际上,数据库物理文件的PIT拷贝,是数据库专业备份软件的核心技术门槛之一,不同类型的数据库的具体技术方案完全不同。DBS的物理备份功能,支持对主流的MySQL、Oracle、SQLServer、MongoDB等数据库。
进一步,我们将对数据库物理文件的PIT拷贝称作物理全量备份,另一种称为物理增量备份的技术,仅拷贝从上一次备份时间点到当前备份时间点的增量变化,从而大幅降低产生新的备份集的带宽和存储开销。最理想情况下,仅需要第一次采用物理全量备份,后续每次备份都可以采用物理增量。要实现这个目标,需要克服以下两个技术难点:
• 增量数据不能独立存在,它在恢复时,必须与全量可以合并为新的全量数据。如果选择在用户端实现全量与增量的合并,那么会消耗大量用户资源,以及使得RTO大幅增加。因此更友好的解决方案是,在恢复前,服务端完成全量与增量的合并。
• 如何提取数据库增量变化的数据,业界称为数据库CBT(Changed Block Tracking)技术,这同样是专业数据库备份产品的核心技术门槛之一。DBS同样对主流的MySQL、Oracle、SQLServer数据库都支持了CBT能力。
关于阿里云DBS产品针对各种主流数据库,如何实现物理全量和增量备份,由于技术点十分繁杂,并且不是本文介绍沙箱功能的核心技术点,本文暂不展开论述。另外DBS的物理备份功能,还结合了传输层的源端重删和压缩技术,进一步降低备份带宽开销。

3.2 存储虚拟化技术

存储虚拟化技术,是解决备份数据到二级数据库的拷贝问题的关键技术,也是业界各种CDM解决方案必不可少的技术点。秒级快照和克隆,是存储虚拟化技术的核心能力。将存储虚拟化技术运用到数据库备份,分为2个阶段:
生成只读快照:对于同一个生产库产生的不同时间的备份集,使用存储虚拟化技术的备份系统,不再将这些备份集区分在不同文件路径存储,而是按时间覆盖备份数据,每当完成新数据的写入覆盖,则创建一个新的快照。产生新的快照并写入数据,不会触发数据拷贝,因此新旧快照之间的重复数据是共享的。
生成可写克隆:当备份系统需要从一个备份集恢复数据时,需要选择一个快照,然后创建基于该快照的克隆。克隆是可写的,对克隆的写入不会影响已创建的快照数据,也不会影响其他克隆的数据。
业界领先的存储系统实现快照和克隆能力,主要的理论基础都是CoW(Copy-on-Write)和RoW(Redirect-on-Write),这两种设计各有利弊,工业界也有不少对这两项技术的改进实现,本文不展开论述。阿里云DBS产品针对不同的场景,综合采用了CoW和RoW两种的存储解决方案。

技术点 RTO RPO 资源
逻辑全量 小时级 天级
逻辑全量+逻辑日志 小时级 秒级
物理全量 小时级 天级
物理全量+物理增量 小时级 小时级
物理全量+物理增量+逻辑日志 小时级 秒级
物理全量+物理增量+逻辑日志+存储虚拟化(DBS解决方案) 秒级 秒级

3.3 云原生沙箱实例

在秒级生成备份数据克隆的基础上,阿里云DBS产品还进一步提供了二级数据库实例托管功能——DBS沙箱实例。目前DBS支持为MySQL数据库(包括阿里云RDS)创建沙箱实例,未来将进一步支持Oracle、SQL Server和MongoDB。对无论数据源来自RDS、ECS自建,还是线下环境,只要通过DBS备份到云端,都可以按用户需要在DBS云端创建沙箱实例。该实例是DBS云服务的一部分,用户不需要操心的资源弹性调度和高可用问题。
除了生成沙箱实例,DBS还为用户考虑了管理数据库的需求
数据管理:DBS沙箱功能对接了阿里云数据管理服务DMS。DMS是一种集数据管理、结构管理、用户授权、安全审计、数据趋势、数据追踪、BI图表、性能与优化和服务器管理于一体的数据管理服务。DBS沙箱功能创建的DMS任务,默认使用DMS免费版功能,用户可在DMS控制台自行配置其它付费功能。
监控管理:DBS沙箱功能对接了阿里云数据库自治服务DAS。DAS是一种基于机器学习和专家经验实现数据库自感知、自修复、自优化、自运维及自安全的云服务,帮助用户消除数据库管理的复杂性及人工操作引发的服务故障,有效保障数据库服务的稳定、安全及高效。DBS沙箱功能创建的DAS任务,默认使用DAS免费版功能,用户可在DAS控制台自行配置其它付费功能。

4. 定制您的DBS沙箱解决方案

无论您的数据库部署在哪里,DBS的备份和沙箱功能都提供了对应的接入方案:
• ECS上的自建数据库(创建DBS物理备份)
• 线下数据库(创建专线和DBS物理备份)
• RDS数据库(通过DBS控制台导入)
目前已经多个知名企业参与了DBS沙箱功能的内测,覆盖了以上各种接入类型。目前沙箱功能内测已经进行了7个月,我们已经在国内多个地域,包括北京、上海、杭州、深圳等正式发布沙箱功能,未来会发布到包括海外站在内的更多阿里云站点。
DBS沙箱功能提供了非常灵活的售卖模式,包括免费试用、付费商用两种模式。其中免费模式默认有一定的限制,例如存储容量不超过100G,以及单个备份计划的沙箱实例个数不超过1个等。用户完全可以先从免费试用模式开始,探索DBS沙箱功能带来的二级数据各种可能的业务玩法。付费模式的计费项,包含存储计费和实例计费2项(类似阿里云ECS产品的实例,包含按云盘容量计费,以及ECS实例规格计费),这两项计费项都是按照使用时长按量计算,未来也会推出预付费的资源包,具体单价近日将正式公布。

这里我们定义一个典型DBS用户,估算其开启沙箱功能前后的成本。
• 采购DBS middem规格实例(单价224元/月)
• 每天产生全量备份集,每个备份集数据量为100G,保留最近3个月的备份数据(单价0.12元/GB月)
参考DBS的按量付费单价(暂不考虑存储资源包和数据压缩对存储费用的影响),那么该用户的初始成本为
244元/月 + 0.12元/GB月100GB/份3月*30份/月 = 1304元/月

回顾本文第一段提到的各种二级数据应用场景:开发测试、应急容灾、历史分析,用户通常不需要为所有的历史备份数据集创建快照。DBS支持为沙箱功能设置独立的生命周期管理策略
• 最近1天的备份数据作为沙箱存储(参考单价1元/GB月)
• 每个月发生一次应急容灾,每次需要创建一个中等规格的沙箱实例,持续12小时(参考单价0.395元/天)
用户开启沙箱功能的新增成本
150GB1元/月+0.5天/月*0.395元/天 = 50.2元/月

也就是说对于这个典型用户,开启DBS沙箱功能后,付出的额外成本仅相当于原有备份成本的3.8%,而获得的收益则是在原有的备份恢复能力基础上,使得在线数据库具备了秒级容灾能力(成功抵抗每月12小时的生产库的高故障率)。需要注意,截止本文发稿,DBS沙箱实例计费单价还未正式公布,因此以上参考单价仅作为参考,真实价格请以阿里云官网发布的价格为准。

5. 如何快速入门,免费试用沙箱功能?

DBS沙箱功能,可以让您从目标备份集快速创建新的数据库实例,让您的备份数据秒级可用。多个沙箱实例之间的读写不会互相影响,也不会影响原数据库。

如需了解如何快速掌握创建、免费试用DBS沙箱的操作,请点击:https://help.aliyun.com/document_detail/185577.html

直播预告

11月18日 14:00-15:00


邀您一起见证

云原生数据库备份DBS新版本发布

扫描下图二维码或点击


https://yqh.aliyun.com/live/detail/21077


预约观看直播发布会

800-云原生数据库备份DBS新版本发布会.jpg

目录
相关文章
|
5月前
|
NoSQL 关系型数据库 Redis
DMS问题之归档后数据量和大小没变化如何解决
DMS(Data Management Service)是阿里云提供的一站式数据管理服务,支持数据开发、维护、治理等多种功能;本合集着重于介绍DMS的功能特点、操作流程和最佳实践,帮助用户高效进行数据管理和维护。
|
5月前
|
JavaScript 关系型数据库 MySQL
在线文档频繁故障不稳定,其实可以自己搭一个Etherpad在线文档
在线文档频繁故障不稳定,其实可以自己搭一个Etherpad在线文档
|
2月前
|
SQL 安全 测试技术
【数据守护者必备】SQL数据备份与恢复策略全解析:从全量到日志备份,手把手教你确保企业信息万无一失的实战技巧!
【8月更文挑战第31天】数据库是企业核心业务数据的基石,为防止硬件故障、软件错误或人为失误导致的数据丢失,制定可靠的备份与恢复策略至关重要。本文通过一个在线购物平台的案例,详细介绍了使用 SQL Server 进行全量备份、差异备份及事务日志备份的方法,并演示了如何利用 SQL Server Agent 实现自动化备份任务。此外,还提供了数据恢复的具体步骤和测试建议,确保数据安全与业务连续性。
82 0
|
2月前
|
缓存 数据库 索引
实时数仓 Hologres产品使用合集之需要定期更新一张线上频繁查询的表,该如何操作
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
2月前
|
存储 SQL 缓存
实时数仓 Hologres产品使用合集之如何查看每个表的文件数和占用磁盘大小
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
4月前
|
运维 关系型数据库 分布式数据库
PolarDB产品使用问题之表更新频繁,读取频繁,导致有很多慢日志,时间还很高,该怎么办
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
4月前
|
存储 监控 物联网
时间序列数据库:处理时间数据的利器
【6月更文挑战第16天】时间序列数据库(TSDB)是处理按时间顺序排列数据的专用工具,优化了数据压缩、查询性能和可扩展性,适合高并发写入与实时查询。TSDB在存储成本、查询效率和实时分析上具优势,广泛应用在物联网、金融、能源和制造业等领域,随着技术发展,其重要性日益凸显。
|
4月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用合集之诊断内核问题时,除了增加日志还有什么诊断手段
PolarDB是阿里云推出的一种云原生数据库服务,专为云设计,提供兼容MySQL、PostgreSQL的高性能、低成本、弹性可扩展的数据库解决方案,可以有效地管理和优化PolarDB实例,确保数据库服务的稳定、高效运行。以下是使用PolarDB产品的一些建议和最佳实践合集。
|
5月前
|
运维 Cloud Native 数据管理
数据管理DMS产品使用合集之数据归档功能可以在 DMS 上自动分批次执行吗
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
运维 安全 数据库
使用NineData构建任意时间点(PITR)数据恢复能力
使用 NineData (www.ninedata.cloud/backup),快速简单的实现任意时间点数据恢复的能力。另外,NineData 推出的备份数据查询(全量、按时间点)和 数据变更轨迹查询 功能,也能很好的解决数据误删恢复的问题,有效保护企业的核心数据,为企业在数据安全上构筑起最后一道防线。
267 0
使用NineData构建任意时间点(PITR)数据恢复能力