CDP的应用一致性:被动式快照优势及实现原理

对于需要CDP连续备份保护的文件,从理论上说,任何一次的文件数据变化都会被自动记录,因而称之为持续数据保护。由于CDP技术是持续不间断的监控并备份数据变化,故在发生宕机需要进行数据恢复时,数据可以被恢复到过去任意时间点。

虽然CDP技术可以将数据恢复到过去的任意时间点,但不足之处是恢复任意时间点无法保证数据恢复完成后数据库处于一致性状态(数据库一致性是指事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。保证数据库一致性是指当事务完成时,必须使所有数据都具有一致的状态)。而非一致性状态的数据库运行时有可能造成事务的非正常中断,影响数据正确性,重则破坏数据库,造成数据丢失。

具有专利的一致性快照技术,与数据库结合更好

针对某些应用(如Oracle数据库等),并不是每个I/O记录的状态都是应用数据的一致性点,而非一致性状态有可能造成事务的非正常中断,影响数据正确性,重则破坏数据库,造成数据丢失。火星舱CDP采用数据一致性专利技术(专利号:ZL 2011 1 0270306.5、201310334842.6),专门开发了与应用软件相结合的数据一致性代理程序,生成数据一致性快照恢复点。既能够实现单个I/O记录操作的精细颗粒度,又最大限度保证了复杂应用环境下数据的有效恢复。

火星舱CDP数据一致性快照优势

本发明克服了现有存储技术中无法获取数据库一致性状态的缺点,提供一种Oracle数据库一致性点的捕获方法。该方法能够及时捕获Oracle数据库处于一致性状态时的时间点,当处于CDP状态的Oracle数据库需要进行数据恢复时,可以对照被捕获的一致性状态时间点,将数据库数据恢复到最近的一致性时间点,从而保证数据库处于事务一致性状态。

火星舱CDP的数据库一致性技术,属于被动快照记录点。传统的主动式快照/备份一致性代理,在生成快照点之前需要通知数据库将内存中的临时数据(dirty data)写盘,会影响数据库性能,特别是频繁快照时影响更大。而火星舱CDP的被动式快照生成机制对性能没有影响。

火星舱CDP快照实现原理

本方法可以在Oracle数据库相应事务结束后秒级时间内确定事务的一致性时间点。从而使数据库需要进行恢复操作时,可以依据时间点信息恢复到距当前时间最近的事务一致性点。如表1(捕获的一致性点实例)所示,右侧所列每一个被捕获的时间点处,Oracle数据库均处于一致性状态。


 
捕获的一致性点实例

同时,由于本方法采用分析数据库内部表方法捕获数据库一致性点,故适用于8.0版本(由于本方法涉及Oracle增量检查点信息,而Oracle从8i开始引入了增量检查点的概念)以上所有版本Oracle数据库,并支持Windows,Linux,Unix等多操作平台下应用。

确定一致性点流程图

对于MS SQL Server数据库等应用,火星舱CDP也能通过类似技术实现方式,获取被动式一致性“快照”点。在保证应用数据能够有效恢复的同时,避免了影响存储I/O的性能。