[发明专利]一种基于数据库DML同步的持续数据保护方法及装置有效
申请号: | 201910933462.1 | 申请日: | 2019-09-29 |
公开(公告)号: | CN110727548B | 公开(公告)日: | 2022-03-04 |
发明(设计)人: | 崔梦华;胡军擎;高志会;陈勇铨;崔欢欢 | 申请(专利权)人: | 上海英方软件股份有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F16/25;G06F16/27 |
代理公司: | 上海国智知识产权代理事务所(普通合伙) 31274 | 代理人: | 潘建玲 |
地址: | 201112 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 数据库 dml 同步 持续 数据 保护 方法 装置 | ||
本发明公开了一种基于数据库DML同步的持续数据保护方法及装置,该方法包括:步骤S1,导出源端数据库的数据字典;步骤S2,启动日志分析进程,监听源端数据库的重做日志文件的变化,于监听到重做日志文件中写入新的数据时,读取新写入的内容,从读取的二进制数据中解析出具体的增量DML操作,并进行缓存;步骤S3,在日志分析进程启动后,利用步骤S1导出的数据字典将源端数据库的基线导出,并通过数据字典将基线数据装载到备份数据库;步骤S4,获取步骤S2得到的DML操作,根据其操作类型、操作对象及数据结合数据字典将其装载到备份数据库中;步骤S5,往复循环执行步骤S2的日志分析进程及步骤S4的DML增量同步。
技术领域
本发明涉及计算机数据备份容灾技术领域,特别是涉及一种基于数据库DML同步的持续数据保护(CDP,Continuous Data Protection)方法及装置。
背景技术
在计算机领域,为了保护重要的数据信息,通常采用数据备份技术,在数据不可用时从备份介质中恢复数据。但是在恢复数据时,两次备份之间的数据可能会丢失,对于一些关键的信息系统,所能容忍的数据丢失量,即恢复点目标(RPO,Recovery Point Object)要尽可能地低,这就需要应用连续数据保护(CDP,Continuous Data Protection)技术。
Oracle数据库是一种市面上被广泛使用的高性能关系数据库,大量企业的核心数据都保存在Oracle数据库系统中。一旦生产系统出现软硬件失效,数据丢失甚至无法恢复,造成的损失将是巨大的,因此对核心数据库进行备份是必不可少的。
由于数据库内部数据逻辑的复杂性,一般的物理层面基于数据块的或者针对文件系统的数据备份和CDP系统无法保护Oracle的数据,其复制出的数据往往无法被Oracle识别和使用,更无法实现将数据变化立即同步到备份机并查询的功能。数据库提供的定期的数据库备份任务无法实现实时的、细粒度的数据同步和保护。针对数据库系统的保护必须从逻辑层面将库中的数据取出并通过数据库接口将数据装载到备份库中。
目前的数据库同步软件从原理上大致分为两类,一类是在数据库的表上添加触发器,另一类是通过分析数据库的redolog获取增量数据。其中触发器的方式需要修改表结构,在需要同步的表上对每个字段添加触发器从而捕获到对表数据的修改,对数据库性能等方面影响太大。而基于redolog的方式则只需要读取日志文件,从文件系统直接获取数据,极大的减少了与数据库的交互,对系统性能影响降到最小。
根据数据库的先写日志(WAL,Write-Ahead Logging)原则,数据库的所有操作都会写入重写日志文件(redolog)中,通过解析重写日志文件redolog就可以获取数据库中表数据的所有变化,然后将这些变化数据还原为sql语句装载入备份库中,即可实现对数据库的高效的连续性数据保护(CDP)。
数据库日志也分为两种,一种是直接记录操作的sql,一种是记录具体的数据变化,并以特定的格式写入二进制的文件中。直接记录sql的方式看似简单直接,但对于某些操作无法反映其真实数据,比如时间日期类型的列中直接使用sysdate,对于update操作也无法记录update操作之前的值。
Oracle的redolog(重做日志文件)是二进制的,其中详细记录了每个操作的类型及其数据,通过分析可以从redolog的记录格中解析出每个操作的时间戳(scn)、事务id、操作对象、原始数据(old)和变化后的数据(new)。数据库的修改操作大致分为增(irp)、删(drp)、改(urp)三种,不同的操作在日志中以不同的格式进行记录,并用不同的操作码进行标识。
Oracle的redolog分为在线日志和归档日志,其中归档日志只有在开启归档的模式下才会保存。在线日志则是几个固定的文件,循环写入,在非RAC(real applicationcluster,实时应用集群)的情况下只有一个是当前(current)正在写入的日志。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海英方软件股份有限公司,未经上海英方软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910933462.1/2.html,转载请声明来源钻瓜专利网。