[发明专利]一种基于数据库DML同步的持续数据保护方法及装置有效
申请号: | 201910933462.1 | 申请日: | 2019-09-29 |
公开(公告)号: | CN110727548B | 公开(公告)日: | 2022-03-04 |
发明(设计)人: | 崔梦华;胡军擎;高志会;陈勇铨;崔欢欢 | 申请(专利权)人: | 上海英方软件股份有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F16/25;G06F16/27 |
代理公司: | 上海国智知识产权代理事务所(普通合伙) 31274 | 代理人: | 潘建玲 |
地址: | 201112 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 数据库 dml 同步 持续 数据 保护 方法 装置 | ||
1.一种基于数据库DML同步的持续数据保护方法,包括如下步骤:
步骤S1,导出源端数据库的数据字典,记录每个表的对象号、表的基本属性,包括但不限于表的列信息、索引信息、约束信息、触发器信息,并记录下数据字典的导出时间戳;
步骤S2,启动日志分析进程,监听源端数据库的重做日志文件的变化,于监听到重做日志文件中写入新的数据时,读取并解析出具体的增量DML操作,并进行缓存;步骤S2进一步包括:
步骤S200,从源数据库中查询出当前日志的路径,读取到最新的写入位置;
步骤S201,读取日志文件内容,若解析到新写入的数据时,从中读取新加的内容,并从二进制数据中分析出具体的增量DML操作,其中包含但不限于操作类型,操作对象的id,时间戳及操作产生的数据;
步骤S202,判断解析得到的操作对象是否在所述数据字典中,若该操作对象不在所述数据字典中,则丢弃该操作对象对应的增量DML操作,否则将解析得到的DML操作写入缓存文件中进行保存,记录下该增量DML操作的信息;
步骤S3,在所述日志分析进程启动后,利用步骤S1导出的数据字典将源端数据库的基线导出,并通过数据字典将基线数据装载到备份数据库;
步骤S4,获取步骤S2得到的增量DML操作,根据其操作类型、操作对象及数据结合数据字典将其装载到备份数据库中;
步骤S5,往复循环执行步骤S2的日志分析进程及步骤S4的增量DML同步。
2.如权利要求1所述的一种基于数据库DML同步的持续数据保护方法,其特征在于:于步骤S200中,若日志分析进程无法于在线日志被覆盖之前读取其中的内容,则从归档日志中继续读取,若没有归档日志,则同步失败,并返回步骤S1重新导出数据字典和基线并从新的位置解析当前日志。
3.如权利要求2所述的一种基于数据库DML同步的持续数据保护方法,其特征在于:于步骤S3中,根据先前导出的数据字典拼接出正确的sql语句,以select语句的形式从源端数据库中查询出所需表数据,在导出的基线中记录每个表的基线的导出时间戳。
4.如权利要求3所述的一种基于数据库DML同步的持续数据保护方法,其特征在于:于步骤S202中,将增量DML操作的时间戳和对应操作的表的基线的导出时间戳进行对比,如果该增量操作先于该对象的导出时间戳,则将该增量DML操作丢弃。
5.如权利要求4所述的一种基于数据库DML同步的持续数据保护方法,其特征在于:于步骤S3中,当导出基线后,通过数据字典拼接出正确的装载sql,将数据字典和基线数据以insert的形式装载到所述备份数据库中。
6.如权利要求1所述的一种基于数据库DML同步的持续数据保护方法,其特征在于:于步骤S4中,从缓存文件中读出增量DML的事务操作,根据其操作类型、操作对象及数据结合数据字典还原出sql语句,并装载到所述备份数据库库中。
7.一种基于数据库DML同步的持续数据保护装置,包括:
数据字典导出模块,用于导出源端数据库的数据字典;
日志分析模块,用于启动日志分析进程,监听源端数据库的重做日志文件的变化,于监听到所述重做日志文件中写入新的数据时,读取新写入的内容,从读取的二进制数据中解析出具体的增量DML操作,并进行缓存;所述日志分析模块进一步包括:
日志读取单元,用于从源端数据库中查询出当前日志的路径,读取到最新的写入位置;
解析单元,用于读取日志文件内容,若解析到新写入的数据时,从中读取新加的内容,并从二进制数据中分析出具体的增量DML操作,其中包含但不限于操作类型,操作对象的id,时间戳及操作产生的数据;
判断处理单元,用于判断解析得到的操作对象是否在所述数据字典中,若该操作对象不在所述数据字典中,则丢弃该操作对象对应的增量DML操作,否则将解析得到的DML操作写入缓存文件中进行保存,记录下该增量DML操作的信息;
基线导出装载模块,用于在所述日志分析进程启动后,利用所述数据字典导出模块导出的数据字典将所述源端数据库的基线导出,并通过所述数据字典将基线数据装载到备份数据库中;
增量DML装载模块,用于获取解析到的增量DML操作,根据其操作类型、操作对象及数据结合数据字典将其装载到所述备份数据库中;
循环执行控制模块,用于往复循环执行所述日志分析模块的日志分析进程及所述增量DML装载模块的DML增量同步。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海英方软件股份有限公司,未经上海英方软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910933462.1/1.html,转载请声明来源钻瓜专利网。