11月10日,由Actifio中国区服务总监廖良茂老师在“DBA+上海群”进行了一次关于“通过Copy Data Virtualization实现数据库备份和容灾一体化解决方案”的线上主题分享。小编特别整理出其中精华内容,供大家学习交流。
DBA+原创专家团成员;
Oracle9iOCP、10gOCM、Exadata认证专家;
超过10年的Oracle数据库管理经验,曾在Oracle ACS工作5年,期间在Exadata白金服务工作一年;
在微软工作两年,担任客户技术战略顾问,是微软Azure云平台认证专家;
目前在Actifio(中国)负责服务工作,Actifio是一家专注于Copy Data Virtualization的公司,为Oracle数据库和VMware虚机提供备份容灾一体化解决方案,实现快速的备份和恢复。
复制数据虚拟化,顾名思义,复制数据就是从生产系统复制出来的各种用途的数据。
复制数据的用途包括备份、容灾、开发测试环境、数据的合规性、数据分析等,生产系统的复制数据可能多达10-20份,因此也带来了不少问题:
首先,这些数据通过不同的接口从生产系统获取数据,导致生产系统负载不断增加,对生产系统的影响很大。
其次,这些数据存储在各自独立的介质上,冗余度很高,管理很复杂,存储成本也逐年上升。
再次,使用这些数据很不灵活,某些数据甚至不可用,最近频繁听到生产系统出现故障后不能快速恢复的案例。
复制数据虚拟化出现就是要解决以上三大难题, 这些问题都是DBA们很熟知但却难以解决的问题。
最近十年,IT基础架构领域出现了重大的变革,主机虚拟化、网络虚拟化、存储虚拟化都日趋成熟,而数据虚拟化还是一个比较前沿性的课题,复制数据虚拟化的出现,让数据中心虚拟化更加的完整。
另外,随着大数据库,大存储池的出现,如何保护这些数据,也是IT manager困扰已久的难题,而复制数据虚拟化的出现,就是为了解决这些难题。
复制数据虚拟化给我们带来了那些变革?
首先是数据获取架构的改变,通过复制数据虚拟化(Copy Data Virtualization)平台,使用唯一的接口从生产系统获取数据。
通过该平台获取数据有个重要的特点,就是初次全量同步后,永远增量,最大程度的减轻生产系统的压力;而数据获取的频率,则取决于数据保护SLA策略的设定。
其次,该平台中的数据可以用于各种不同的用途,包括备份、快照、容灾、开发测试、数据分析。
下面我将为大家介绍一下复制数据虚拟化的原理:
数据获取:有IN-BAND和OUT-OF-BAND两种方式,我们推荐使用OUT-OF-BAND,这样方式对生产系统的影响最小。
数据获取的格式为原始格式,比如Oracle为Datafile、Controfile、Spfile和Archivelog,通过调用RMAN接口来获取。
VMware 为vmdk文件,同样是调用VMware的vStoreage API来获取。
数据存储: 共有两个存储池 : 快照池和重删池。
快照池中存放近期快照数据,快照数据是如何产生的呢?每次增量备份后会和存量数据合成一份新的全量数据,并生成快照保存储在快照池中;重删池中存放重删和压缩后的快照数据,用于保存远期数据。
异地复制: 如果有容灾的需求,可以在灾机房也搭建一套复制数据虚拟化平台,通过内部机制进行同步或者异步复制,实现数据容灾保护。
数据使用:快照池中的任何快照都可以直接mount使用,实现快速恢复,这是该平台最强大的地方。
比如,Oracle数据库增量备份会合成一份全量快照,任何快照都可以mount在原机或者异机上直接打开,无论数据库大小,都可以在分钟级内完成。
重删池中的快照也可以直接mount使用,但需要先和快照池中的数据进行合成,所以速度相对会慢一些。
复制数据虚拟化:对于快照池中的快照数据,只有一份物理拷贝,但却可以有任意多份的虚拟拷贝,用于不同的目的,这就是复制数据的“虚拟化”。
举个例子,对于Oracle数据库,同一份快照可以mount到不同的主机,用于不用的用途,每份数据都是可读写的,而且不会修改原始的快照。
这也是该平台另一个强大的功能,该功能在做数据库Point-In-Time恢复时特别有用,日志前滚过头了也不要紧,重新指定一个新的时间点,通过mount实现快速的恢复。
而对于传统的数据库恢复,如果日志前滚过头,数据文件已经被修改且无法回退,需要重新restore数据文件后才能做恢复,耗时将非常漫长。
大家可能会比较关注Oracle数据库的备份,我再详细描述一下数据获取的过程:
1、从复制数据虚拟化平台挂载一个卷作为Staging Disk到数据库服务器上;
2、通过Oracle RMAN Image Copy获取全量数据存储到Staging Disk上,并进行增量的Merge操作;
3、从数据库服务上unmount Staging Disk;
4、在复制数据虚拟化平台上对Staging Disk做快照保存在快照池中。
注意,这个快照可以保证数据库一致性,而传统的存储快照无法保证应用或者数据库的一致性。
对于数据库归档日志,LogSmart可谓非常的智能,只要开启LogSmart,定义备份间隔,日志备份即自动运行。
归档日志备份完成后,可以指定任意时间点(到分钟)进行mount操作,后台自动完成日志应用。
有了这个强大的功能,DBA就可以轻松的准备任意时间点的数据库用于开发/测试环境了。
对于VMware虚机的保护,和Oracle数据库的原理是一样,只是调用的是VMware的API。
大致的原理已经介绍完毕。
以下是对Copy Data Virtualization的小结:
数据获取:一次增量,永远增量,对生产系统的影响降低到最小。
数据管理:一份黄金物理拷贝,任意多份虚拟拷贝,每份虚拟拷贝都是可读写的,可用于不通过的用途。
数据使用:通过Mount,即时读写快照数据,能在分钟级实现故障恢复,能快速搭建开发/测试环境。
管理界面:彻底简单(Radically Simple),备份和恢复基本都是一键操作。
结合Copy Data Virtualizaton的特点,我总结了几个比较典型的应用场景
1、大数据库备份(比如单库超过20TB)
优势:初次全量后永远增量,减少备份时间,并能通过mount即时恢复。
2、 VMware虚机资源池备份
优势:应对存储级故障,并能通过mount即时恢复应用服务器数据。
3、数据库应急系统
优势:分钟级恢复数据库,保证业务的连续性。
4、开发/测试环境
优势:快速搭建开发/测试环境,仿真生产系统数据,缩短业务上线时间。
5、 数据库备份容灾一体化解决方案
优势:在一个平台同时实现数据库备份和容灾。
最后,我给大家分享一个国内某运营商的案例,该案例通过Copy Data Virtualization平台,同时实现了数据库备份、容灾和开发测试环境。
数据库备份:通过Copy Data Virtualization来备份数据库,增量备份每天一次,归档日志每15分钟一次。
数据库容灾:Copy Data Virtualization搭建在容灾机房,如果生产系统出现存储故障,通过该平台直接将数据库快照mount到生产主机,实现快速恢复;如果生产系统出现站点故障,将数据库快照mount到容灾主机上,实现快速恢复。
开发测试环境: 容灾主机日常用于仿真测试环境,将数据库快照同时mount至四台不同的主机,用于四个不同应用系统的仿真测试。
通过Copy Data Virtualization平台,不仅实现了备份容灾一体化,同时用于仿真测试,缩短了业务上线时间。
1、生产数据坏了,切换到快照 中间会丢失多久的数据?解决方案能做到的最短时间呢?
答:取决于你备份的SLA要求。如果是数据库,就看归档日志能不能及时备份。
2、这种技术,灾备系统io性能应该比主端有较大损失吧?
答:如果容灾存储在200km以外,主机还在生产,那肯定io会慢。
3、这里的容灾和dataguard,ogg在丢失数据上有多大差异呢?
答:其实只要有归档日志,都不存在丢失的问题
4、带内主机需要安装代理吗?
答:如果是数据库需要,vmware不需要。
5、那个CBT,针对NAS的非结构化数据怎么做?
答:对于NAS,Actifio Agent有CBT的功能。
6、Merge操作耗费的时间怎么评估?
答:看数据量大小,Rman日志里面有记录详细的merge时间。
7、Agent是在driver驱动层还是在文件系统层捕获数据?
答:文件系统层。
8、这个功能对链路有啥要求?能做到同步么?
答:链路可以是IP网络,也可以是FC,FC的速度跟快。同步可以做,要用IN-Band方式。
9、一端mount到数据库,只做只读的查询吗?
答:mount的数据库是可读写的,而且可以mount多分。
10、Copy Data Virtualization平台,这是讲的一种备份容灾的工具吗?
答:备份容灾一体化,还可以当作开发测试环境等用途。
本文来自云栖社区合作伙伴"DBAplus",原文发布时间:2015-11-11