一种多数据源之间单向数据同步方法与流程

文档序号:17656068发布日期:2019-05-15 22:01阅读:288来源:国知局

本发明涉及数据存储技术领域,尤其涉及一种多数据源之间单向数据同步方法。



背景技术:

经过几十年的信息技术发展,数据库/文件系统已经在各行各业的信息化系统中扮演着重要的数据存储角色,特别是在互联网领域表现尤为突出。然而近几年基础数据体积呈几何级数增长,传统的单点数据存储已经无法满足实际需求,因此衍生了很多分布式数据存储机制和技术。然而如何保证分布式环境下多数据源,尤其是主从数据源之间的数据一致性和时效性成为当前分布式数据存储需要不断解决和完善的问题。

在很多互联网企业,为了提高系统性能一般都采用了数据的读写分离机制,尤其是数据库数据和文件数据的读写分离,这些企业同样面临主(写数据)从(读数据)数据源的单向数据同步问题。

虽然在数据库领域,无论是oracle数据库还是sql server数据库,都提供了相应的数据同步备份工具。然而,由于其软件特有的封闭性,造成很多企业无法灵活的、低成本的实现多数据库之间数据同步工作。

目前,主要采用以下两种方法来解决上述问题:

一种是基于触发器方法。该方法是在源数据库中对复制对象创建增删改操作的触发器,当对复制对象进行修改、插入和删除操作时,触发器将变化的数据序列提取出来。基于触发器方法能够实时捕获数据源的变化数据,效率高。但是,这种方法存在以下缺点:

1、数据库触发器只能应用于数据库(该数据库必须支持触发器),无法满足文件系统数据同步,无法判断文件系统数据是否发生变化,因而也无法实现文件系统数据同步;

2、无法保证每个主数据源产生数据的时序性,由于数据库触发器只对该数据库负责,从而会造成数据同步时时序混乱。如果数据对时序敏感,将会面临数据同步一致性问题;

3、很难应用于分布式环境,各触发器之间无法通信。

另一种是基于API方法。该方法是对不支持触发器机制的小型数据库和非关系型数据库,也可以应用于文件系统数据。在应用程序和数据库/文件系统之间引入一类中间件,提供一系列API。中间件在完成应用程序对数据库/文件系统修改的同时,把复杂对象的变化序列记录下来,从而达到捕获数据变更的目的。但是,这种方法存在以下缺点:

1、针对大数据量的同步,无法并行处理,数据同步调度不完善;

2、无法保证每个主数据源数据产生时序性,由于数据库触发器只对该数据库负责,从而会造成数据同步时时序混乱。如果数据对时序敏感,将会面临数据同步一致性问题。



技术实现要素:

本发明的目的在于提供一种多数据源之间单向数据同步方法,从而解决现有技术中存在的前述问题。

为了实现上述目的,本发明采用的技术方案如下:

一种多数据源之间单向数据同步方法,包括如下步骤:

S1,配置主从数据源之间的数据映射关系;

S2,配置系统参数;

S3,通过分布式任务调度器,根据配置的所述系统参数创建数据传输节点,并监测每个数据传输节点网络状态;

S4,根据所述数据映射关系,在主从数据源中创建一致的数据结构;

S5,利用数据变更触发器检测数据变化,所述数据变更触发器包括数据变更API接口,用于为数据库或文件系统的数据变更提供一套统一的API接口,任何需要同步的数据项均需要调用该API口接进行记录;所述数据变更触发器采用数据项时序一致性机制:在变更数据前,为每一次变更生成时序唯一的标识,用于保证主从多数据源变更数据的时序一致性;所述数据变更触发器与分布式调度器进行通信连接,将具体数据同步传输任务交给具体的数据传输节点完成;

S6,根据配置的所述数据传输节点,并行传输数据到数据同步器;

S7,所述数据同步器接收到数据传输节点传输的数据后,通过查询数据关系映射以及数据标识,将数据写入到相应的从数据源。

优选地,所述数据源包括:数据库和文件系统;所述数据映射关系包括:数据库用户映射关系、数据库表映射关系和数据库表字段映射关系,或,文件系统用户映射关系和文件系统数据存储目录映射关系。

优选地,所述系统参数包括:主从数据源网络地址、数据变更触发器频率、并行传输策略和数据库类型。

优选地,所述数据库类型包括主数据库类型和从数据库类型,所述主数据库类型和从数据库类型相同,所述数据库类型包括oracle数据库,mysql数据库和sql server数据库。

优选地,S3具体为:根据配置的并行传输策略的参数创建数据传输节点,并监测每个数据传输节点网络状态。

优选地,所述数据结构包括用户、表空间和文件系统目录。

本发明的有益效果是:本发明实施例提供的多数据源之间单向数据同步方法,通过对主从数据源数据映射管理;主从数据源单向数据同步配置管理,分布式数据传输任务调度管理,传输节点并行传输数据,以及对主从数据源数据变更采集,实现了数据同步,解决了现有分布式数据存储主从数据源之间的数据一致性和时效性问题。具有以下优点:

1)容错性强。当有部分传输节点发生异常终止传输后,分布式任务调度器能够监测传输节点状态,并重新创建数据传输节点继续传输发生异常的数据;

2)操作简单。正确配置系统参数之后,无须人工参与,系统自动实现数据同步;

3)数据变更时序一致性。通过全局数据变更标识,保证数据源数据变更的时序一致性。

附图说明

图1是本发明实施例提供的多数据源之间单向数据同步方法流程示意图;

图2是本发明实施例提供的多数据源之间单向数据同步方法的实现过程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。

本发明实施例提供的一种在多数据源之间单向数据同步方法,包括如下步骤:

S1,配置主从数据源之间的数据映射关系;

S2,配置系统参数;

S3,通过分布式任务调度器,根据配置的所述系统参数创建数据传输节点,并监测每个数据传输节点网络状态;

S4,根据所述数据映射关系,在主从数据源中创建一致的数据结构;

S5,利用数据变更触发器检测数据变化,所述数据变更触发器包括数据变更API接口,用于为数据库或文件系统的数据变更提供一套统一的API接口,任何需要同步的数据项均需要调用该API口接进行记录;所述数据变更触发器采用数据项时序一致性机制:在变更数据前,为每一次变更生成时序唯一的标识,用于保证主从多数据源变更数据的时序一致性;所述数据变更触发器与分布式调度器进行通信连接,将具体数据同步传输任务交给具体的数据传输节点完成;

S6,根据配置的所述数据传输节点,并行传输数据到数据同步器;

S7,所述数据同步器接收到数据传输节点传输的数据后,通过查询数据关系映射以及数据标识,将数据写入到相应的从数据源。

上述方法中,主要包括:

1、数据源:文件系统和数据库;

2、数据变更触发器;

3、数据映射管理;

4、配置管理;

5、分布式任务调度;

6、数据传输节点;

7、数据同步器。

其实现过程可参见图2。

其中,所述数据源可以包括:数据库和文件系统;所述数据映射关系包括:数据库用户映射关系、数据库表映射关系和数据库表字段映射关系,或,文件系统用户映射关系和文件系统数据存储目录映射关系。

所述系统参数可以包括:主从数据源网络地址、数据变更触发器频率、并行传输策略和数据库类型。

所述数据库类型可以包括主数据库类型和从数据库类型,所述主数据库类型和从数据库类型相同,所述数据库类型包括oracle数据库,mysql数据库和sql server数据库。

S3具体可以为:根据配置的并行传输策略的参数创建数据传输节点,并监测每个数据传输节点网络状态。

所述数据结构可以包括用户、表空间和文件系统目录。

具体实施例一:主从oracle数据源之间单向数据同步。

前提条件:分别建立两套oracle数据源作为主从数据源,假设主数据源编号:S1和S2;从数据源编号D1和D2。主数据源oracle用户为SU,从数据源oracle用户为DU。并为SU和DU分配同样的权限。在S1里创建表TS1,S2创建表TS2;在D1里创建表TD1,D2创建表TD2;TS1与TD1结构一致,TS2与TD2结构一致。

第一步,配置数据映射:

1)配置主从数据库用户映射关系:SU-S1,SU-S2,DU-D1,DU-D2;

2)配置数据库表映射关系:TS1-TD1,TS2-TD2;

3)数据库表字段映射关系:配置步骤2)中涉及的表字段对应关系。

第二步,配置系统参数:

1)主从数据源网络地址:配置数据源的访问URL;

2)数据变更触发器频率:可以配置为2秒;

3)并行传输策略,比如单次数据同步最大并行数;

4)数据源类型:配置为oracle数据源。

第三步,分布式任务调度:

自动根据并行传输策略配置的参数创建数据传输节点,并监测每个数据传输节点状态。

第四步,创建主从数据源结构:

根据第一步配置的数据映射关系,在主从数据源创建一致的数据结构,包括用户、权限、表空间等。

第五步,数据变更触发器检测数据变化:

1)业务系统向TS1和TS2插入、删除、更新数据时,调用数据变更API;

2)系统为每次数据库操作创建唯一标识,封装数据变化;

3)每2秒启动一起数据同步,与分布式任务调度器通信,将封装后的数据交给数据传输节点完成传输。

第六步,数据传输:

并行传输数据到数据同步器。

第七步,数据同步:

对封装的数据解包,并根据数据映射关系,按照数据标识序列将数据变更同步到从数据源D1和D2。

具体实施例二:主从文件系统数据源之间单向数据同步。

前提条件:分别两个网络主机上创建系统用户和分配权限。假设主数据源为FS1,从数据源为FD1;主数据源系统用户FSU1,从数据源系统用户为FDU1;主数据源根目录为SP1,从数据源根目录为DP1。

第一步,配置数据映射:

1)配置主从数据源用户映射关系:FSU1-FDU1;

2)配置主从根目录映射关系:SP1-DP1。

第二步,配置系统参数:

5)主从数据源网络地址:配置数据源的访问URL;

6)数据变更触发器频率:可以配置为2秒;

7)并行传输策略,比如单次数据同步最大并行数;

8)数据源类型:配置为文件系统数据。

第三步,分布式任务调度:

自动根据并行传输策略配置的参数创建数据传输节点,并监测每个数据传输节点状态。

第四步,创建主从数据源结构

根据第一步配置的数据映射关系,在主从数据源创建一致的数据结构,包括用户、权限、数据源根目录等。

第五步,数据变更触发器检测数据变化:

1)业务系统向FS1创建、修改和删除文件数据时,调用数据变更API;

2)系统为每次数据操作创建唯一标识,封装数据变化;

3)每2秒启动一起数据同步,与分布式调度器通信,将封装后的数据交给数据传输节点完成传输。

第六步,数据传输:

并行传输数据到数据同步器。

第七步,数据同步:

对封装的数据解包,并根据数据映射策略,按照数据标识序列将数据变更同步到从数据源FD1。

通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明实施例提供的多数据源之间单向数据同步方法,通过对主从数据源数据映射管理;主从数据源单向数据同步配置管理,分布式数据传输任务调度管理,传输节点并行传输数据,以及对主从数据源数据变更采集,实现了数据同步,解决了现有分布式数据存储主从数据源之间的数据一致性和时效性问题。具有以下优点:

4)容错性强。当有部分传输节点发生异常终止传输后,分布式任务调度器能够监测传输节点状态,并重新创建数据传输节点继续传输发生异常的数据;

5)操作简单。正确配置系统参数之后,无须人工参与,系统自动实现数据同步;

数据变更时序一致性。通过全局数据变更标识,保证数据源数据变更的时序一致性。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域人员应该理解的是,上述实施例提供的方法步骤的时序可根据实际情况进行适应性调整,也可根据实际情况并发进行。

上述实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,例如:个人计算机、服务器、网络设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,例如:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1