据说,数据库备份的新时代已经来了……

根据《Boston Computing Network》做过的一项调查,全球约有

  • 34% 的公司没有检查他们的备份是否有效
  • 77% 的公司曾发现过备份失效的问题
  • 60% 的公司在过去六个月内发生过数据丢失的情况

数据库备份仍处于黑暗时代?

我不是文件,你才是文件,你们都是文件!

凡是面向文件备份的产品,无论它使用了多少看似高大上的技术,统统都不适用于数据库。

备份并不是一个新鲜的词,从世界上产生第一个比特开始,人们便意识到数据的重要性。国内外不断有厂商推出自己的备份产品,其技术原理或是基于文件差异比对,或是基于IO复制,广泛运用于操作系统,文件服务器,邮件服务器等领域。 但是这种备份方式照搬到数据库备份领域并不合适,究其原因,是因为其本质均将数据作为冷冰冰的文件来复制。而数据库在实时运行的过程中,并不将数据实时的刷新到硬盘上。也就是说,一条执行成功的事务,它对数据文件所做的修改,将在内存中存在一段时间后才一并刷新(Checkpoint)到硬盘。传统存储厂商的IO复制技术,是基于硬盘上的数据进行同步,因此,由于数据文件极大可能性是处于不一致的状态,备份的数据库并不能打开,自然也无法读取数据。 传统存储厂商也在试图解决这个问题,例如EMC曾推出ProtectPoint技术,要求管理员先手动干预数据库,令数据文件处于一致后再进行备份,之后基于快照增量备份,保持CDP的准实时备份和快速恢复特性。但因其本质上并没有变化,所谓的增量同步仍然存在备份数据库无法打开的问题,不适用于数据库。

图1-1 EMC ProtectPoint 工作流程

不仅仅是EMC,凡是面向文件的通用型备份产品,由于其实现原理的的缺陷,均存在两大严重问题:

  • 可靠性差 备份的数据库文件无法保证一致性,备份的可恢复性未知
  • 强侵入性 多数采取IO复制的方式实现,IO拦截等操作严重影响源数据库的性能及稳定性

数据库原生备份,作用有限

另一种常见的解决方式是数据库原生的备份工具,例如Oracle的rman、MySQL的MySQLdump等,也是当今DBA们日常工作中使用频率最高的备份手段。 原生备份易安装,易学习,因此使用较为广泛,但它同样存在几个严重的问题:

  • 备份窗口 两次备份之间的时间窗口,数据完全处于无保护状态,存在数据丢失风险
  • 耗时较长 无论是备份还是恢复过程,因为都需要导出和导入全库,往往耗费数小时甚至数天的时间
  • 验证困难 总数据量达到数TB以后,每次验证备份耗时数天,实际工作中几乎难以执行
  • 影响性能 每次备份均需要占用源库大量的IO资源,影响源库性能

图1-2 常规数据库恢复流程

什么是基于业务的True-CDP备份

CDP即连续数据保护(continual data protection),要求持续不间断的监控并备份数据变化,可以恢复到过去任意时间点。根据实现的程度,又分为Near-CDP和True-CDP。

Near-CDP实现仍为按照一定的时间周期持续备份数据,因此存在时间窗口,需要数据恢复时仅能恢复到固定的时间点,并不能形成完全意义上的持续保护。

True-CDP相比Near-CDP,可以恢复任意历史时间点的数据,要求更为苛刻,对业务数据的保护也更为严密。

基于文件备份的CDP对数据库毫无意义

EMC的ProtectPoint,是一种比较好的IO复制实现方案,它基于快照增量备份,保持CDP的准实时备份和快速恢复特性,属于看似还不错的Near-CDP备份解决方案。 但基于前文所述,它并不能保证所备份数据库的完整性,所以仅适用于传统的文件备份领域。

基于业务的True-CDP才是王道

如今数据库备份领域存在一种怪现象:一方面市面上备份产品非常多,DBA也在每日进行备份工作;另一方面数据丢失、备份难以验证有效性、恢复时间过长等问题却仍在困扰诸多企业。究其根本原因,是因为存储厂商,数据库厂商等各自为战,每一方仅在自己的领域内寻求解决方案,所以可供选择的技术手段十分有限。

沃趣科技自主研发的QBackup备份容灾云一体机,是为数据库量身定做,综合存储、虚拟化、数据库多种领域各自的特点,创新性的结合起来解决实际业务中的困境,以高效的方式解决了当前数据库备份领域遇到的难题。

QBackup采用零侵入的方式持续、实时地备份源数据库。当数据库出现数据丢失时,可以选择任意历史时间点恢复;并且面向数据库设计的同时,充分的考虑了业务场景,将业务连续性、时效性放在第一位,因此是基于业务的True-CDP解决方案。

图1-3 QBackup数据库恢复流程

基于业务的True-CDP有什么样的优势呢?举个例子:某公司源数据库因人为失误,于10:00 AM覆盖某表现有数据。当11: 00 AM 管理员发现后,他有如下三种解决方案:

  • 使用最近的备份集,他需要放弃最后一次备份到当前时间的所有数据,并且恢复时间长达数小时甚至数天
  • 使用Near-CDP备份产品,由于是每小时备份一次,他将会丢失部分数据
  • 使用QBackup True-CDP产品,3分钟即创建出基于09:59:59 AM时刻的镜像数据库,导出需要的历史表数据进行恢复,数据无丢失

结论是明确的,无论是时效性,还是数据完整性,使用面向数据库的True-CDP产品都是最优解。

QBackup 具备以下特性:

  • 实时备份 无备份时间窗口,源数据库的每一次提交均处于保护状态
  • 秒级恢复 相比于rman,mysqldump的“冷备份”,历史数据随时处于可用状态,秒级读取
  • 极简验证 由于历史数据秒级可用,备份的验证再也不用耗时数天才能完成。
  • 无侵入性 对源数据库无侵入性,性能几乎无影响

来自用户的声音

场景一:某证券行业客户

“我们的业务经过多年运行,数据量已达20TB,并且仍有其他业务在不断并入。数据库使用原生rman备份,通过现有千兆网络全备一次需60小时以上,工作难以推进。 使用QBackup备份容灾云一体机之后,数据库备份变的极为简单,不仅实时,持续的备份了源库数据,而且对源库性能几乎没什么影响。”

场景二:杭州某医院DBA

“操作人员在做报表时,一不小心覆盖掉了生产数据。当时情况十分紧急,我们马上使用QBackup创建误操作时间点前的历史数据库,并使用报表工具导出恢复该报表,整个过程仅仅消耗不超过五分钟时间。当时选择QBackup就是看中它秒级恢复的特性,没想到这么快就用上了。”

原文发布于微信公众号 - 沃趣科技(woqutech)

原文发表时间:2018-03-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能计算时代

Salesforce架构师的网络最佳实践

对于在Salesforce平台上实现应用程序的架构师或开发人员来说,在分析应用程序性能时,网络性能测试变得越来越重要。本指南涵盖了帮助您识别风险并找到网络相关挑...

12820
来自专栏技术翻译

理解分布式系统的8个谬误

你在分布式系统上工作吗?微服务,Web API,SOA,Web服务器,应用服务器,数据库服务器,缓存服务器,负载均衡器 - 如果这些描述了系统设计中的组件,那么...

16320
来自专栏CSDN技术头条

微博热点事件背后数据库运维的“功守道”

【导语】 微博拥有超过3.76亿月活用户,是当前社会热点事件传播的主要平台。而热点事件往往具有不可预测性和突发性,较短时间内可能带来流量的翻倍增长,甚至更大。如...

289100
来自专栏非著名程序员

Android开发者注意了,是时候陆续停止使用Eclipse开发了

谷歌宣布Android Studio将取代Eclipse 非著名程序员 ? 我相信大家都听说过或者部分开发者已经在使用Android Studio开发了,在...

219100
来自专栏即时通讯技术

IM群聊消息究竟是存1份(即扩散读)还是存多份(即扩散写)?

上一篇文章《IM群聊消息的已读回执功能该怎么实现?》是说,“很容易想到,是存一份”,被网友们骂了,大家争论的很激烈(见下图)。

16220
来自专栏章鱼的慢慢技术路

游戏服务器存储系统设计

data——>file(database)——>file system——>hard driver

49730
来自专栏数据和云

恒丰银行 I MySQL MGR与Galera性能测试买家秀

作者介绍: 赵守斌,十年银行业数据库管理经验,熟悉各种Oracle数据库系统方案,对MySQL开源数据库也有涉猎。目前牵头负责恒丰银行数据库管理和各类数据库服务...

56560
来自专栏我是攻城师

Google证实下个版本的Android将不使用甲骨文的Java API

31560
来自专栏NetCore

对于大数据大流量情况下微软架构的水平扩展的遐想(瞎想)

最近回顾SAAS的书籍,书中的扩展架构都有点让我痴迷,但书中介绍的都是以Java,Apache,JBoss,Hadloop等技术实现负载均衡,大数据处理,对于微...

23280
来自专栏一名叫大蕉的程序员

分布式架构的套路No.74

今天小蕉跟大伙一起聊聊分布式系统的架构的套路。在开始说套路之前,大家先思考一个问题,为什么要进行分布式架构? 大多数的开发者大多数的系统可能从来没接触过分布式...

22670

扫码关注云+社区

领取腾讯云代金券