System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据库,特别是涉及一种基于定时调度的数据同步方法和设备。
技术介绍
1、在基于软件的数据库数据复制技术中,对于基于分析日志文件的数据实时同步技术,因其具备对源端数据库影响小、支持异构系统复制、复制系统备机可读写等特点,在应急灾备、多业务中心、实时异构资源整合、数据迁移与滚动升级、数据仓库架构改进等多种场景下应用广泛。
2、基于分析日志文件的数据实时同步,其主要技术原理是:在源端数据库,数据同步进程实时读取数据库的在线或归档日志文件以获取数据库的插入(insert)、删除(delete)以及更新(update)的事务操作,然后将这些事务操作转换为内部特定格式的消息,直接通过传输控制协议(transmission control protocol,简写为:tcp)/互联网协议(internetprotocol,简写为:ip)网络传输到目标端数据库的数据同步进程;目标端数据库的数据同步进程接收到源端发送过来的消息后,进行消息的分析并将源端的事务操作恢复成结构化查询语言(structured query language,简写为:sql)操作语句,使用数据库本地接口在目标端数据库上执行,实现源端和目标数据库的数据同步。
3、对于数据库上的数据操作语言(data manipulation language,简写为:dml)操作,数据库都会在日志文件中直接记录事务操作信息,如操作对象、修改的数据等内容,基于此,第三方工具可以通过实时读取物理日志文件中的增量日志数据,并进行解析来实现数据库上的增、删、改操
4、鉴于此,如何克服现有技术所存在的缺陷,解决上述数据库日志中没有记录相关信息的情况下,将ddl操作进行同步的技术问题,是本
待解决的难题。
技术实现思路
1、针对现有技术的缺陷或改进需求:如何在数据库日志中没有记录相关信息的情况下,将ddl操作进行同步。本专利技术提供一种基于定时调度的数据同步方法和设备,基于定时调度模块,借助数据同步的数据初始化装载功能来实现新增表的数据同步。
2、本专利技术实施例采用如下技术方案:
3、第一方面,本专利技术提供了一种基于定时调度的数据同步方法,包括:
4、源端的数据捕获模块捕获ddl新增表,并发送ddl新增表的表id信息到源端的定时调度模块;
5、源端的数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的ddl新增表同步到目的端;
6、源端的数据捕获模块在解析归档日志时,筛选出与ddl新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步。
7、进一步的,所述源端的数据捕获模块捕获ddl新增表,并发送ddl新增表的表id信息到源端的定时调度模块具体包括:
8、源端的数据捕获模块在解析数据库日志时,捕获到满足过滤条件表的insert操作信息;
9、判断本地字典文件中有没有记录该满足过滤条件表的对应信息,若没有则记录该满足过滤条件表为ddl新增表;
10、将记录的ddl新增表的相应表id信息发送到定时调度模块。
11、进一步的,所述满足过滤条件表的判断包括:根据模式名和表名判断是否满足过滤条件。
12、进一步的,所述判断本地字典文件中有没有记录该满足过滤条件表的对应信息时,若有则跳过。
13、进一步的,所述定时调度模块设置有调度策略、生效时间和结束时间,其中,所述调度策略包括:设置调度频率,用来设置向数据捕获模块发送信息的时间间隔;所述生效时间和结束时间用于约束调度策略在某时间段内生效。
14、进一步的,所述定时调度模块在指定的定时执行时间点正常执行,若在定时周期内接收到了数据捕获模块发来的表id信息,则将表id信息进行整合过滤,向数据捕获模块发送相应表的数据装载命令。
15、进一步的,所述将表id信息进行整合过滤具体包括:判断此表id是否之前已经发送过,若已发送则丢弃。
16、进一步的,所述源端的数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的ddl新增表同步到目的端具体包括:
17、源端的数据捕获模块接收到定时调度模块发来的数据装载命令,基于数据装载命令携带的表id信息确定需要装载的ddl新增表;
18、源端的数据捕获模块查询需要装载的ddl新增表在源端的数据,并记录此时装载时的装载lsn;
19、将需要装载的ddl新增表的存量数据发送到目的端数据库进行同步,同时将该需要装载的ddl新增表的数据字典缓存在本地文件中。
20、进一步的,所述源端的数据捕获模块在解析归档日志时,筛选出与ddl新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步具体包括:
21、源端的数据捕获模块根据本地数据字典文件进行筛选,在读源端数据库归档日志时筛选出记录的装载lsn之后涉及到的对应ddl新增表的日志信息;
22、对筛选出的日志信息进行解析;
23、将解析出来的操作发送到目的端数据库进行执行,以完成对应ddl新增表的增量数据的同步。
24、另一方面,本专利技术提供了一种基于定时调度的数据同步设备,具体为:包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接,存储器存储能被至少一个处理器执行的指令,指令在被处理器执行后,用于完成第一方面中的基于定时调度的数据同步方法。
25、与现有技术相比,本专利技术的有益效果在于:本专利技术提供一种基于定时调度的数据同步方法和设备,源端的数据捕获模块捕获ddl新增表,并发送ddl新增表的表id信息到源端的定时调度模块;数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的ddl新增表同步到目的端;通过该方法完成ddl新增表的存量同步,然后源端的数据捕获模块在解析归档日志时,筛选出与ddl新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步;至此完成ddl新增表的所有同步,也即实现现有技术中对ddl操作进行同步的需求和目的。
本文档来自技高网...【技术保护点】
1.一种基于定时调度的数据同步方法,其特征在于,包括:
2.根据权利要求1所述的基于定时调度的数据同步方法,其特征在于,所述源端的数据捕获模块捕获DDL新增表,并发送DDL新增表的表id信息到源端的定时调度模块具体包括:
3.根据权利要求2所述的基于定时调度的数据同步方法,其特征在于,所述满足过滤条件表的判断包括:根据模式名和表名判断是否满足过滤条件。
4.根据权利要求2所述的基于定时调度的数据同步方法,其特征在于,所述判断本地字典文件中有没有记录该满足过滤条件表的对应信息时,若有则跳过。
5.根据权利要求1所述的基于定时调度的数据同步方法,其特征在于,所述定时调度模块设置有调度策略、生效时间和结束时间,其中,所述调度策略包括:设置调度频率,用来设置向数据捕获模块发送信息的时间间隔;所述生效时间和结束时间用于约束调度策略在某时间段内生效。
6.根据权利要求5所述的基于定时调度的数据同步方法,其特征在于,所述定时调度模块在指定的定时执行时间点正常执行,若在定时周期内接收到了数据捕获模块发来的表id信息,则将表id信息进行整
7.根据权利要求5所述的基于定时调度的数据同步方法,其特征在于,所述将表id信息进行整合过滤具体包括:判断此表id是否之前已经发送过,若已发送则丢弃。
8.根据权利要求1所述的基于定时调度的数据同步方法,其特征在于,所述源端的数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的DDL新增表同步到目的端具体包括:
9.根据权利要求8所述的基于定时调度的数据同步方法,其特征在于,所述源端的数据捕获模块在解析归档日志时,筛选出与DDL新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步具体包括:
10.一种基于定时调度的数据同步设备,其特征在于:
...【技术特征摘要】
1.一种基于定时调度的数据同步方法,其特征在于,包括:
2.根据权利要求1所述的基于定时调度的数据同步方法,其特征在于,所述源端的数据捕获模块捕获ddl新增表,并发送ddl新增表的表id信息到源端的定时调度模块具体包括:
3.根据权利要求2所述的基于定时调度的数据同步方法,其特征在于,所述满足过滤条件表的判断包括:根据模式名和表名判断是否满足过滤条件。
4.根据权利要求2所述的基于定时调度的数据同步方法,其特征在于,所述判断本地字典文件中有没有记录该满足过滤条件表的对应信息时,若有则跳过。
5.根据权利要求1所述的基于定时调度的数据同步方法,其特征在于,所述定时调度模块设置有调度策略、生效时间和结束时间,其中,所述调度策略包括:设置调度频率,用来设置向数据捕获模块发送信息的时间间隔;所述生效时间和结束时间用于约束调度策略在某时间段内生效。
6.根据权利要求5所述的基于定时调度的...
【专利技术属性】
技术研发人员:孙峰,董文昊,彭青松,刘启春,
申请(专利权)人:武汉达梦数据库股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。