System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种数据库集群之间的数据同步方法技术_技高网

一种数据库集群之间的数据同步方法技术

技术编号:41112013 阅读:2 留言:0更新日期:2024-04-25 14:04
本发明专利技术公开了一种数据库集群之间的数据同步方法,包括:将数据库集群的浮动地址实时地绑定到数据库主节点上;将数据库集群中有浮动地址的节点上的同步运维进程、变更捕获进程和同步入库进程启动,并将无浮动地址的节点上的上述进程关闭;根据上一次解析的归档日志名称以及归档日志所处位置,解析数据库归档日志,获取数据库变更数据并将该变更数据存储在数据库中;实时监控数据库中变更数据的变化,并将该变更数据报文发送到目的端;目的端启动数据报文接收线程,完成源端和目的端的数据同步;通过数据同步运维监控模块完成数据同步节点和数据同步策略配置,同时实现数据同步状态监控、同步拓扑结构展示和同步事务调看。

【技术实现步骤摘要】

本专利技术涉及一种数据同步方法,特别是一种数据库集群之间的数据同步方法


技术介绍

1、随着指挥信息系统研究的不断深入发展,其应用领域不断扩张,基础数据规模越来越大,高可靠和准实时的数据同步处理成为迫切并且必然的要求。现阶段,一方面传统的基于select(时间戳、标志位、触发器、全表比对、全量抽取)的变更数据捕获方法对数据库的数据结构有特定要求或者对数据库具有侵入性抑或需要对全表进行扫描;另一方面,传统单机数据库的数据同步存在单点故障或不具备轻量化数据库集群切换追踪能力;同时现有数据库同步服务因数据类型的异构映射统一封装还不够完善,无法满足高级别、多样性数据同步处理的发展要求。


技术实现思路

1、专利技术目的:本专利技术所要解决的技术问题是针对现有技术的不足,提供一种数据库集群之间的数据同步方法。

2、为了解决上述技术问题,本专利技术公开了一种数据库集群之间的数据同步方法,包括如下步骤:

3、步骤1,将数据库集群的浮动地址实时地绑定到数据库主节点上,数据库集群的浮动地址随着数据库集群主备节点的切换而切换;

4、步骤2,将数据库集群中有浮动地址的节点上的同步运维进程、变更捕获进程和同步入库进程启动,并将无浮动地址的节点上的同步运维进程、变更捕获进程和同步入库进程关闭;

5、步骤3,根据上一次解析的归档日志名称以及归档日志所处位置,解析数据库归档日志,获取数据库变更数据并将该变更数据存储在数据库中;

6、步骤4,实时监控数据库中变更数据的变化,按照预设的报文格式,将数据库变更数据封装成变更数据报文,并将该变更数据报文发送到目的端;

7、步骤5,目的端启动数据报文接收线程,按照预设的报文格式,先解析数据报文,再根据解析后获取的变更数据构建数据结构体并加入缓存列表,最后将缓存列表中的数据同步入库,完成源端和目的端的数据同步;

8、步骤6,通过数据同步运维监控模块完成数据同步节点和数据同步策略配置,同时实现数据同步状态监控、同步拓扑结构展示和同步事务调看。

9、进一步的,步骤1包括:

10、步骤1-1,在所有的数据库集群节点上安装高可用服务包,用于提供高可用服务;

11、步骤1-2,编写监测脚本程序,运行在数据库集群的每个节点上,用于判断当前节点是数据库集群主节点或备节点;

12、步骤1-3,配置数据库集群各个节点的高可用服务,将运行模式设置成从模式,并重新启动所有节点的高可用服务;

13、步骤1-4,根据各个节点上监测脚本程序的判断结果,使用广播方式将该结果实时发送给数据库集群内的其他节点,并选出主节点。

14、进一步的,步骤2包括:

15、步骤2-1,编写数据同步守护进程代码,运行在数据库集群的每个节点上,用于判断当前节点具有浮动地址后,将该节点上的同步运维进程、变更捕获进程和同步入库进程启动;

16、步骤2-2,编写定时任务,用于每隔预设时间检测数据同步守护进程是否存在,如果不存在则运行数据同步守护进程;

17、步骤2-3,同步守护进程实时判断当前节点是否存在浮动地址,如果当前节点有浮动地址就将该节点的变更捕获、同步入库和同步运维进程启动,否则将该节点的变更捕获、同步入库和同步运维进程关闭。

18、进一步的,步骤3包括:

19、步骤3-1,获取前一次解析的归档日志文件名称和所属日志的scn号;

20、步骤3-2,根据前一次的归档日志名称和scn号,以及当前时间点归档日志中最大的scn号,加载归档日志文件,按scn号范围查询从上一次到当前时间点的变更数据;

21、步骤3-3,按照预设格式,解析变更数据,结合预设的统一数据类型进行数据类型转换,构建数据结构体并将变更数据存储在数据库中。

22、进一步的,步骤4中所述的将数据库变更数据封装成变更数据报文,具体包括:

23、先对数据库变更数据进行异构映射统一封装,再构建传输待发送缓存链表并批量构建报文体。

24、进一步的,步骤5包括:

25、步骤5-1,调用数据传输的初始化接口,完成数据同步的传输初始化设置,启动报文发送线程和报文接收线程;

26、步骤5-2,调用统一收发接口进行包括节点状态报文和节点启动报文在内的同步状态报文收发,完成源端和目的端的状态确认;

27、步骤5-3,将变更数据报文从源端发送到目的端。

28、进一步的,步骤6包括:

29、步骤6-1,目的端的接收线程实时接收源端发送过来的报文信息,并按照约定方式进行解析,解析后的数据用于构建数据结构体并加入入库缓存列表;

30、步骤6-2,接收端审核线程开始工作,将通过审核的报文数据更新到相应数据库表中,完成数据库之间的增量数据同步。

31、进一步的,步骤7包括:

32、步骤7-1,数据同步运维监控模块添加数据同步节点,完成源端和目的端数据同步节点创建;

33、步骤7-2,数据同步运维监控模块添加数据同步策略,包括同构表策略和异构表策略配置;

34、步骤7-3,数据同步运维监控模块用于监控同步节点状态、展示同步拓扑结构和调看同步事务。

35、进一步的,步骤1-3中所述的配置数据库集群各个节点的高可用服务,至少包括:配置数据库集群的真实地址、浮动地址、权重和优先级。

36、进一步的,步骤1-3中所述的选出主节点,具体方法为:

37、根据预设的竞选机制,通过高可用服务完成选择主节点的过程。

38、有益效果:

39、(1)本专利技术采用轻量化高可用框架,动态监测数据库集群切换,提供用户无感的数据库集群之间的数据同步能力,有效提升了数据同步处理的高可用性。

40、(2)本专利技术采用cdc日志解析技术,实时解析完整归档日志,提供准实时的增量变更数据捕获能力,有效提升了数据同步处理的准确性。

41、(3)本专利技术采用数据类型异构映射统一封装设计,满足多源异构数据库之间的数据同步,有效提升了数据同步处理的多样性。

42、(4)本专利技术提供基于捕获-传输-入库的三层架构体系,三层结构彼此互相独立又互相依赖,有效提升了数据同步处理的适应性。

43、(5)本专利技术同步运维监控的各功能单元之间通过api接口方式调用,便于后续拓展开发,提高了系统的执行效率。

本文档来自技高网...

【技术保护点】

1.一种数据库集群之间的数据同步方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种数据库集群之间的数据同步方法,其特征在于,步骤1包括:

3.根据权利要求2所述的一种数据库集群之间的数据同步方法,其特征在于,步骤2包括:

4.根据权利要求3所述的一种数据库集群之间的数据同步方法,其特征在于,步骤3包括:

5.根据权利要求4所述的一种数据库集群之间的数据同步方法,其特征在于,步骤4中所述的将数据库变更数据封装成变更数据报文,具体包括:

6.根据权利要求5所述的一种数据库集群之间的数据同步方法,其特征在于,步骤5包括:

7.根据权利要求6所述的一种数据库集群之间的数据同步方法,其特征在于,步骤6包括:

8.根据权利要求7所述的一种数据库集群之间的数据同步方法,其特征在于,步骤7包括:

9.根据权利要求8所述的一种数据库集群之间的数据同步方法,其特征在于,步骤1-3中所述的配置数据库集群各个节点的高可用服务,至少包括:配置数据库集群的真实地址、浮动地址、权重和优先级。

>10.根据权利要求9所述的一种数据库集群之间的数据同步方法,其特征在于,步骤1-3中所述的选出主节点,具体方法为:

...

【技术特征摘要】

1.一种数据库集群之间的数据同步方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种数据库集群之间的数据同步方法,其特征在于,步骤1包括:

3.根据权利要求2所述的一种数据库集群之间的数据同步方法,其特征在于,步骤2包括:

4.根据权利要求3所述的一种数据库集群之间的数据同步方法,其特征在于,步骤3包括:

5.根据权利要求4所述的一种数据库集群之间的数据同步方法,其特征在于,步骤4中所述的将数据库变更数据封装成变更数据报文,具体包括:

6.根据权利要求5所述的一种数据库集群之间的数...

【专利技术属性】
技术研发人员:万峰华周铖辉焦涌王成余臻柯正祥陆保国
申请(专利权)人:中国电子科技集团公司第二十八研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1