CN111737348B - 基于数据库表的时效同步方法及装置 - Google Patents
基于数据库表的时效同步方法及装置 Download PDFInfo
- Publication number
- CN111737348B CN111737348B CN202010540923.1A CN202010540923A CN111737348B CN 111737348 B CN111737348 B CN 111737348B CN 202010540923 A CN202010540923 A CN 202010540923A CN 111737348 B CN111737348 B CN 111737348B
- Authority
- CN
- China
- Prior art keywords
- synchronous
- synchronization
- data
- level
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种基于数据库表的时效同步方法及装置,应用于源数据库基于数据库表的时效同步方法包括:生成表级同步配置表以及表级同步日志表;根据所述表级同步配置表以及所述表级同步日志表配置同步表;源数据库根据所述同步表进行同步数据读操作;目标数据库根据所述同步表进行同步数据写操作;根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态。本发明解决了数据库级同步时效带来的业务影响,缩短了同步周期,可灵活调配同步数据;同时也规避了数据库表发生变化而带来无法同步问题。
Description
技术领域
本发明涉及信息技术领域,特别是涉及数据同步技术领域,具体涉及一种基于数据库表的时效同步方法及装置。
背景技术
随着互联网技术的不断发展、网络业务的数据量激增,传统的单体式服务器在大量的场景下面临运维困难,可靠性低、扩展困难等诸多问题。越来越多的公司对服务器进行了功能模块化、分布式的服务框架演进,甚至是采用高可靠的跨机房、跨园区的服务集群式服务架构。
数据库作为应用***开发中常用的应用软件,用来存储和管理数据的仓库,为应用提供服务。在一些高可用性的应用***中,通常会采用所有服务集群同时进入运行状态,在正常工作时,交易数据根据应用设定的业务规则分流到不同集群的数据库上;当某一园区或某一集群出现故障时,需要另一方完全承接所有继续工作,以保障能够接替全部的工作。这就给应用开发者带来园区级数据同步的问题。目前园区级数据库同步主要的问题有:
1、单一园区仅在进行数据库同步后,才能够完全对外提供服务。跨库同步耗时长,容错性低,无法在短时间内保证数据一致性。
2、数据库同步依赖于数据库表结构,针对源端数据库和目标数据库的表结构,表名词和表的字段名称实现同步数据,这样的***依赖于表结构,表名词和表的字段名称一旦修改表结构,就会影响同步,导致***无法实现单园区承载。
3、服务程序在对业务数据处理时,还需要协调同步数据对业务的影响,维护传输信息资源,管理同步数据的资源,由此带来的服务器程序设计实现复杂,不利于服务程序的业务处理。
4、无法根据业务场景灵活配置表级的同步方式、同步周期、同步时效。从而会出现重要数据同步不及时,无效数据同步存储造成空间浪费的情况。
发明内容
针对现有技术中的问题,本发明提供的基于数据库表的时效同步方法及装置,可根据自身业务需求,自定义数据库表的同步参数,从而实现数据库的时效同步。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种基于数据库表的时效同步方法,包括:
生成表级同步配置表以及表级同步日志表;
根据所述表级同步配置表以及所述表级同步日志表配置同步表;
源数据库根据所述同步表进行同步数据读操作;
目标数据库根据所述同步表进行同步数据写操作;
根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态。
一实施例中,生成所述表级同步日志表的步骤包括:
根据同步信息属性生成所述表级同步日志表,所述同步信息属性包括:同步表名、表所属、源数据库节点标识、目标结点、同步序列号、同步状态、同步开始时间戳、同步完成时间戳、同步读记录数以及同步写记录数;
生成所述表级同步配置表的步骤包括:
根据同步配置表参数属性生成所述表级同步配置表,所述参数属性包括:同步表名、表所属、源数据库节点标识、目标数据库节点、增存量模式、上一次同步时间戳、同步频率、同步开关状态以及同步周期。
一实施例中,所述源数据库根据所述同步表进行同步数据读操作包括:
所述源数据库以预设时间间隔读取所述表级同步配置表中的源数据库节点标识、当前数据的唯一源数据库节点标识ID以及所述同步开关状态;
所述源数据库根据所述源数据库节点标识、所述唯一源数据库节点标识ID、同步开关状态、当前***时间、所述上一次同步时间戳以及所述同步频率判断是否需要进行同步数据读操作;
若获知需要进行同步数据读操作,所述源数据库则根据所述增存量模式获取同步数据,并将所述同步数据写入所述目标数据库中。
一实施例中,所述目标数据库根据所述同步表进行同步数据写操作包括:
所述目标数据库获取并解析消息队列中的同步指令;
所述目标数据库根据所述同步指令解析出内存块对应的数据对象;
所述目标数据库根据所述表级同步配置表中的配置信息,按照增存量模式写入所述数据对象。
一实施例中,基于数据库表的时效同步方法还包括:生成同步信息并注册到消息队列,所述同步信息包括:目标数据库、同步表名、同步序列号以及同步时间戳。
一实施例中,基于数据库表的时效同步方法还包括:将同步日志表写入到共享缓存中,所述表级同步日志表包括:表所属、源节点,目标结点、步序列号、同步开始时间戳、同步读数据量,同步状态为处理中。
第二方面,本发明提供一种基于数据库表的时效同步装置,该装置包括:
表生成单元,用于生成表级同步配置表以及表级同步日志表;
同步表配置单元,用于根据所述表级同步配置表以及所述表级同步日志表配置同步表;
读操作单元,用于源数据库根据所述同步表进行同步数据读操作;
写数据单元,用于目标数据库根据所述同步表进行同步数据写操作;
状态监控单元,用于根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态。
一实施例中,所述表生成单元包括:
日志表生成模块,用于根据同步信息属性生成所述表级同步日志表,所述同步信息属性包括:同步表名、表所属、源数据库节点标识、目标结点、同步序列号、同步状态、同步开始时间戳、同步完成时间戳、同步读记录数以及同步写记录数;
配置表生成模块,用于根据同步配置表参数属性生成所述表级同步配置表,所述参数属性包括:同步表名、表所属、源数据库节点标识、目标数据库节点、增存量模式、上一次同步时间戳、同步频率、同步开关状态以及同步周期。
一实施例中,所述读操作单元:
状态读取模块,用于所述源数据库以预设时间间隔读取所述表级同步配置表中的源数据库节点标识、当前数据的唯一源数据库节点标识ID以及所述同步开关状态;
判断模块,用于所述源数据库根据所述源数据库节点标识、所述唯一源数据库节点标识ID、同步开关状态、当前***时间、所述上一次同步时间戳以及所述同步频率判断是否需要进行同步数据读操作;
数据写入模块,用于若获知需要进行同步数据读操作,所述源数据库则根据所述增存量模式获取同步数据,并将所述同步数据写入所述目标数据库中。
一实施例中,所述写数据单元包括:
同步指令获取模块,用于所述目标数据库获取并解析消息队列中的同步指令;
数据对象解析模块,用于所述目标数据库根据所述同步指令解析出内存块对应的数据对象;
数据写入模块,用于所述目标数据库根据所述表级同步配置表中的配置信息,按照增存量模式写入所述数据对象。
一实施例中,基于数据库表的时效同步装置还包括:消息注册单元,用于生成同步信息并注册到消息队列,所述同步信息包括:目标数据库、同步表名、同步序列号以及同步时间戳。
一实施例中,基于数据库表的时效同步装置还包括:日志写入单元,用于将同步日志表写入到共享缓存中,所述表级同步日志表包括:表所属、源节点,目标结点、步序列号、同步开始时间戳、同步读数据量,同步状态为处理中。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现基于数据库表的时效同步方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现基于数据库表的时效同步方法的步骤。
从上述描述可知,本发明实施例提供的基于数据库表的时效同步方法及装置,首先生成表级同步配置表以及表级同步日志表;接着,根据所述表级同步配置表以及所述表级同步日志表配置同步表;并且源数据库根据所述同步表进行同步数据读操作;目标数据库根据所述同步表进行同步数据写操作;最后根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态。本发明解决数据库级同步时效带来的业务影响,缩短了同步周期,可灵活调配同步数据;也规避了数据库表发生变化而带来无法同步问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例中基于数据库表的时效同步方法流程示意图一;
图2为本发明的实施例中步骤100的流程示意图;
图3为本发明的实施例中步骤200的流程示意图一;
图4为本发明的实施例中步骤200的流程示意图二;
图5为本发明的实施例中步骤300的流程示意图;
图6为本发明的实施例中步骤400的流程示意图;
图7为本发明的实施例中基于数据库表的时效同步方法流程示意图二;
图8为本发明的实施例中基于数据库表的时效同步方法流程示意图三;
图9为本发明的实施例中步骤500的流程示意图;
图10为本发明的具体应用实例中基于数据库表的时效同步方法流程示意图;
图11为本发明的具体应用实例中应用于源数据库的基于数据库表的时效同步方法流程示意图;
图12为本发明的具体应用实例中同步控制表结构示意图;
图13为本发明的具体应用实例中同步日志表结构示意图;
图14为本发明的具体应用实例中步骤S2方法流程示意图;
图15为本发明的具体应用实例中应用于目标数据库的基于数据库表的时效同步方法流程示意图;
图16为本发明的具体应用实例中步骤S2A方法流程示意图;
图17为本发明的具体应用实例中基于数据库表的时效同步装置的结构示意图一;
图18为本发明的具体应用实例中表生成单元的结构框图;
图19为本发明的具体应用实例中读操作单元的结构框图;
图20为本发明的具体应用实例中写数据单元的结构框图;
图21为本发明的具体应用实例中基于数据库表的时效同步装置的结构示意图二;
图22为本发明的具体应用实例中基于数据库表的时效同步装置的结构示意图三;
图23为本发明的实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例提供一种基于数据库表的时效同步方法的具体实施方式,参见图1,该方法具体包括如下内容:
需要说明的是,这里的时效同步也称为时间同步,目前一些高可用性的应用***中,通常会采用所有服务集群同时进入运行状态,在正常工作时,交易数据根据应用设定的业务规则分流到不同集群的数据库上;例如当某一集群出现故障时,需要其他的某一数据集群来接替,这就会产生不同数据集群的时效同步问题。
步骤100:生成表级同步配置表以及表级同步日志表。
具体地,同步配置表用于同步机制中获取表级的同步参数;同步日志表用于同步运行状态的记录。
步骤200:根据所述表级同步配置表以及所述表级同步日志表配置同步表。
可以理解的是,同步表包括同步配置表以及同步日志表,另外,依据步骤200所提供的方法配置同步表可以准确的获取表级的不同参数,并且可以准确记录源数据库与目标数据库之间的同步运行状态。
步骤300:源数据库根据所述同步表进行同步数据读操作。
具体地,基于共享缓存中同步配置表的配置,通过抽象工厂类动态生成源端表、目标端表、源端数据的映射对象,读取源数据库中数据,生成同步信息并注册到消息队列中。步骤300所提供的方法解决了现有技术中,针对源端数据库和目标数据库的表结构不一致时,导致数据无法同步的问题。
步骤400:目标数据库根据所述同步表进行同步数据写操作。
具体地,目标数据库同步配置写,解析消息队列同步信息指令和数据映射对象,基于同步配置表的配置,将数据写入目标数据库。另外,需要指出的是,在步骤300以及步骤400中,源数据库是指在一次数据同步时所起到的角色,即在实际工作中,其既可以作为源数据库,也可以作为目标数据库,同样地,目标数据库在实际工作时,也可以作为源数据库以及目标数据库,本实施例对此不限定。
步骤500:根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态。
同步监控机制是检测数据库同步运行状态的一种方法。包括可靠性检测和运行状态检测,通过步骤500可使得本实施例所提供的方案具有更高的***可靠性、可用性和稳定性和可维护性。
从上述描述可知,本发明实施例提供的基于数据库表的时效同步方法,首先生成表级同步配置表以及表级同步日志表;接着,根据所述表级同步配置表以及所述表级同步日志表配置同步表;并且源数据库根据所述同步表进行同步数据读操作;目标数据库根据所述同步表进行同步数据写操作;最后根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态。本发明解决数据库级同步时效带来的业务影响,缩短了同步周期,可灵活调配同步数据;也规避了数据库表发生变化而带来无法同步问题。
一实施例中,参见图2,步骤100具体包括:
步骤101:根据同步信息属性生成所述表级同步日志表。
所述同步信息属性包括:同步表名、表所属、源数据库节点标识、目标结点、同步序列号、同步状态、同步开始时间戳、同步完成时间戳、同步读记录数以及同步写记录数。
步骤102:根据同步配置表参数属性生成所述表级同步配置表。
所述参数属性包括:同步表名、表所属、源数据库节点标识、目标数据库节点、增存量模式、上一次同步时间戳、同步频率、同步开关状态以及同步周期。
一实施例中,参见图3,步骤200具体包括:
步骤201:根据多个数据库中的节点所预生成的表级同步配置表以及表级同步日志表配置同步表。
可以理解的是,步骤201中的节点包括源数据库节点以及目标数据库节点。另外,表级同步配置表以及表级同步日志表可以应用于一列上,也可以应用在一个表中的多个列上。以表级的同步配置表以及表级的同步日志表配置同步表,并依据该同步表将源数据库与目标数据库进行数据同步可以起到更为精准的效果。
一实施例中,参见图4,步骤200还包括:
步骤202:设置一唯一的源数据库节点标识ID。
具体地,为同步的源端数据库服务器设置一个唯一的“源节点标识ID”。
一实施例中,参见图5,步骤300具体包括:
步骤301:所述源数据库以预设时间间隔读取所述表级同步配置表中的源数据库节点标识、当前数据的唯一源数据库节点标识ID以及所述同步开关状态。
具体地,源数据库以预设时间间隔读取一次共享缓存,读取同步配置表中“源节点标识”与当前数据库“唯一源节点标识ID”相同且“同步开关”是否为开的配置信息。
步骤302:所述源数据库根据所述源数据库节点标识、所述唯一源数据库节点标识ID、同步开关状态、当前***时间、所述上一次同步时间戳以及所述同步频率判断是否需要进行同步数据读操作。
步骤302在实施时,具体为:源数据库根据当前***时间和同步配置表中所配置表的“上一次同步时间戳”和“同步频率”,判断同步表是否满足下一同步执行周期,如果未达到下一同步执行周期,则放弃该表的本次数据同步;如果到达下一执行同步周期,需要进行数据同步。
步骤303:若获知需要进行同步数据读操作,所述源数据库则根据所述增存量模式获取同步数据,并将所述同步数据写入所述目标数据库中。
具体地,源数据库按照同步配置表的“增存量模式”,获取同步数据。动态生成源端数据表,目标数据表,源端同步数据的映射对象。将对象写入目标数据库内存。
步骤301至步骤303可降低一次性大量数据同步带来的风险,可灵活调配同步表的同步周期、同步方式、同步时效,做到重要数据及时同步、次要数据按需同步、无影响数据不同步,从而达到数据符合应用需求的高效同步,压缩了同步时间。
一实施例中,增存量模式包括:增量模式以及存量模式。
所述增量模式为:根据所述上一次同步时间戳,将所述上一次同步时间戳到当前***时间内发生变化的数据以更新的方式写入所述目标数据库,
所述存量模式为:将全表的数据以覆盖的方式写入所述目标数据库。
增存量模式(增量/全量)包括:增量模式以及存量模式,其中,增量模式:源数据库根据同步配置表的“上一次同步时间戳”,将“上一次同步时间戳”到当前***时间内发生变化的数据写入目标数据库内存,目标数据库接收到写入指令后,按照更新的方式写入数据库。
存量模式:源数据库将全表的数据从数据库写入目标数据库内存,目标数据库按照覆盖的方式写入数据库。
一实施例中,参见图6,步骤400具体包括:
步骤401:所述目标数据库获取并解析消息队列中的同步指令。
步骤402:所述目标数据库根据所述同步指令解析出内存块对应的数据对象。
步骤403:所述目标数据库根据所述表级同步配置表中的配置信息,按照增存量模式写入所述数据对象。
在步骤401至步骤403中,首先目标数据库获取并解析消息队列的同步指令。接着,目标数据库根据同步指令,解析出内存块对应的数据对象;并根据同步配置表的配置信息,按照增存量的方式写入数据库。另外,目标数据库写入完成,清理内存、删除消息队列指令。目标数据库更新共享缓存中的同步日志表状态(成功/失败)、同步结束时间、同步写数据量。目标数据库更新同步配置表中的“上一次同步时间戳”。
一实施例中,参见图7,基于数据库表的时效同步方法还包括:
步骤600:生成同步信息并注册到消息队列。
所述同步信息包括:目标数据库、同步表名、同步序列号以及同步时间戳。
一实施例中,参见图8,基于数据库表的时效同步方法还包括:
步骤700:将同步日志表写入到共享缓存中。
源数据库将同步读写入共享缓存的的同步日志表,同步日志表包括:表所属、源节点,目标结点、步序列号、同步开始时间戳、同步读数据量,同步状态为“处理中”。
一实施例中,参见图9,步骤500具体包括:
步骤501:检测同步数据运行可靠性。
具体地,通过检查共享缓存中配置表的“同步周期”,“同步频率”,对照到日志表,从而检测同步运行的可靠性的一个情况。
步骤502:检测同步数据运行状态。
通过检查共享缓存中日志表的状态,从而监控到目前同步数据是否发生异常的情况。
本发明实施例提供的基于数据库表的时效同步方法,首先降低一次性大量数据同步带来的风险,可灵活调配同步表的同步周期、同步方式、同步时效,做到重要数据及时同步、次要数据按需同步、无影响数据不同步,从而达到数据符合应用需求的高效同步,压缩了同步时间;其次通过动态生成源端数据库表、目标数据库表、同步数据的一个映射工厂类对象,解决了针对源端数据库和目标数据库的表结构不一致时,导致数据无法同步的问题;最后同步信息监控机制,使得本发明方案具有更高的***可靠性、可用性和稳定性和可维护性。
另外,本发明可根据自身业务需求,自定义数据库表的同步参数,从而实现数据库的时效同步。
为进一步地说明本方案,本发明以基于园区数据自定义时效同步机制为例,提供基于数据库表的时效同步方法的具体应用实例,该具体应用实例具体包括如下内容。
本具体应用实例目的是提供了一种基于园区数据自定义时效同步机制。通过同步配置表进行参数配置,根据应用自身圈定同步数据范围,将一组数据从一个数据源拷贝到多个数据源的技术,将一份数据发布到多个存储站点上的有效方法,多个站点之间相互拷贝。
如图10所示,本具体应用实例包括同步数据读与同步数据写两部分。同步数据读:源数据库(数据库节点A1以及数据库节点A2)基于共享缓存中同步配置表的配置,通过抽象工厂类动态生成源端表、目标端表、源端数据的映射对象,将对象写入目标数据库内存,生成同步信息并注册到消息队列中。
同步配置写:目标数据库(数据库节点B1以及数据库节点B2)解析消息队列同步信息指令和数据映射对象,基于同步配置表的配置,将数据写入目标数据库。
参见图11,应用于源数据库的基于数据库表的时效同步方法包括:
S1:根据多个数据库中的节点所预生成的表级同步配置表以及表级同步日志表配置同步表。
具体地,同步表包括同步配置表和同步日志表。同步配置表用于同步机制中获取表级的同步参数;同步日志表用于同步运行状态的记录,表信息如图12以及图13所示,描述如下:
1)为同步的源端数据库服务器设置一个唯一的“源节点标识ID”。
2)同步配置表参数进行自定义配置。属性信息包括同步表名、表所属、源节点标识、目标节点、增存量模式(增量/全量)、上一次同步时间戳、同步频率(分钟为单位)、同步开关(开/关)、同步周期(日/月/年/星期)。
3)同步日志表记录同步信息。属性信息包括同步表名、表所属、源节点标识、目标结点、同步序列号、同步状态、同步开始时间戳、同步完成时间戳、同步读记录数、同步写记录数。
4)同步配置表配置信息和同步日志表信息写入共享缓存。
S2:根据所述同步表进行同步数据读操作。
具体地,参见图14,步骤S2又包括:
步骤R1:源数据库每5/分钟读取一次共享缓存,读取同步配置表中“源节点标识”与当前数据库“唯一源节点标识ID”相同且“同步开关”为开的配置信息。
步骤R2:源数据库根据当前***时间和同步配置表中所配置表的“上一次同步时间戳”和“同步频率”,判断同步表是否满足下一同步执行周期,如果未达到下一同步执行周期,则放弃该表的本次数据同步;如果到达下一执行同步周期,需要进行数据同步。
步骤R3:源数据库按照同步配置表的“增存量模式”,获取同步数据。动态生成源端数据表,目标数据表,源端同步数据的映射对象。将对象写入目标数据库内存。
增量方式和存量方式说明:
增量模式:源数据库根据同步配置表的“上一次同步时间戳”,将“上一次同步时间戳”到当前***时间内发生变化的数据写入目标数据库内存,目标数据库接收到写入指令后,按照更新的方式写入数据库。
存量模式:源数据库将全表的数据从数据库写入目标数据库内存,目标数据库按照覆盖的方式写入数据库。
步骤R4:源数据库生成同步信息注册到消息队列,同步信息包括:目标数据库、同步表名、同步序列号、同步时间戳。
步骤R5:源数据库将同步读写入共享缓存的的同步日志表,包括:表所属、源节点,目标结点、步序列号、同步开始时间戳、同步读数据量,同步状态为“处理中”。
S3:根据所述同步配置表以及所述同步日志表监控多个数据库的数据同步状态。
同步监控机制是检测数据库同步运行状态的一种方法。包括可靠性检测和运行状态检测,包括如下:
(1)同步数据运行可靠性检测。通过检查共享缓存中配置表的“同步周期”,“同步频率”,对照到日志表,从而检测同步运行的可靠性的一个情况。
(2)同步数据运行状态检测。通过检查共享缓存中日志表的状态,从而监控到目前同步数据是否发生异常的一个情况。
参见图15,应用于目标数据库的基于数据库表的时效同步方法包括:
S1A:根据多个数据库中的节点所预生成的表级同步配置表以及表级同步日志表配置同步表。
S2A:根据所述同步表进行同步数据写操作。
具体地,参见图16,步骤S2A又包括:
步骤W1:目标数据库获取并解析消息队列的同步指令。
步骤W2:目标数据库根据同步指令,解析出内存块对应的数据对象;并根据同步配置表的配置信息,按照增存量的方式写入数据库。
步骤W3:目标数据库写入完成,清理内存、删除消息队列指令。
步骤W4:目标数据库更新共享缓存中的同步日志表状态(成功/失败)、同步结束时间、同步写数据量。
步骤W5:目标数据库更新同步配置表中的“上一次同步时间戳”。
S3A:根据所述同步配置表以及所述同步日志表监控多个数据库的数据同步状态。
从上述描述可知,本发明实施例提供的基于数据库表的时效同步方法,首先生成表级同步配置表以及表级同步日志表;接着,根据所述表级同步配置表以及所述表级同步日志表配置同步表;并且源数据库根据所述同步表进行同步数据读操作;目标数据库根据所述同步表进行同步数据写操作;最后根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态。本发明解决数据库级同步时效带来的业务影响,缩短了同步周期,可灵活调配同步数据;也规避了数据库表发生变化而带来无法同步问题。
基于同一发明构思,本申请实施例还提供了基于数据库表的时效同步装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于基于数据库表的时效同步装置解决问题的原理与基于数据库表的时效同步方法相似,因此基于数据库表的时效同步装置的实施可以参见基于数据库表的时效同步方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的***较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明的实施例提供一种能够实现基于数据库表的时效同步方法的基于数据库表的时效同步装置的具体实施方式,参见图17,基于数据库表的时效同步装置具体包括如下内容:
表生成单元10,用于生成表级同步配置表以及表级同步日志表;
同步表配置单元20,用于根据所述表级同步配置表以及所述表级同步日志表配置同步表;
读操作单元30,用于源数据库根据所述同步表进行同步数据读操作;
写数据单元40,用于目标数据库根据所述同步表进行同步数据写操作;
状态监控单元50,用于根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态。
一实施例中,参见图18,所述表生成单元10包括:
日志表生成模块101,用于根据同步信息属性生成所述表级同步日志表,所述同步信息属性包括:同步表名、表所属、源数据库节点标识、目标结点、同步序列号、同步状态、同步开始时间戳、同步完成时间戳、同步读记录数以及同步写记录数;
配置表生成模块102,用于根据同步配置表参数属性生成所述表级同步配置表,所述参数属性包括:同步表名、表所属、源数据库节点标识、目标数据库节点、增存量模式、上一次同步时间戳、同步频率、同步开关状态以及同步周期。
一实施例中,参见图19,所述读操作单元30:
状态读取模块301,用于所述源数据库以预设时间间隔读取所述表级同步配置表中的源数据库节点标识、当前数据的唯一源数据库节点标识ID以及所述同步开关状态;
判断模块302,用于所述源数据库根据所述源数据库节点标识、所述唯一源数据库节点标识ID、同步开关状态、当前***时间、所述上一次同步时间戳以及所述同步频率判断是否需要进行同步数据读操作;
数据写入模块303,用于若获知需要进行同步数据读操作,所述源数据库则根据所述增存量模式获取同步数据,并将所述同步数据写入所述目标数据库中。
一实施例中,参见图20,所述写数据单元40包括:
同步指令获取模块401,用于所述目标数据库获取并解析消息队列中的同步指令;
数据对象解析模块402,用于所述目标数据库根据所述同步指令解析出内存块对应的数据对象;
数据写入模块403,用于所述目标数据库根据所述表级同步配置表中的配置信息,按照增存量模式写入所述数据对象。
一实施例中,参见图21,基于数据库表的时效同步装置还包括:消息注册单元60,用于生成同步信息并注册到消息队列,所述同步信息包括:目标数据库、同步表名、同步序列号以及同步时间戳。
一实施例中,参见图22,基于数据库表的时效同步装置还包括:日志写入单元70,用于将同步日志表写入到共享缓存中,所述表级同步日志表包括:表所属、源节点,目标结点、步序列号、同步开始时间戳、同步读数据量,同步状态为处理中。
从上述描述可知,本发明实施例提供的基于数据库表的时效同步装置,首先生成表级同步配置表以及表级同步日志表;接着,根据所述表级同步配置表以及所述表级同步日志表配置同步表;并且源数据库根据所述同步表进行同步数据读操作;目标数据库根据所述同步表进行同步数据写操作;最后根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态。本发明解决数据库级同步时效带来的业务影响,缩短了同步周期,可灵活调配同步数据;也规避了数据库表发生变化而带来无法同步问题。
本发明实施例提供的基于数据库表的时效同步装置,首先降低一次性大量数据同步带来的风险,可灵活调配同步表的同步周期、同步方式、同步时效,做到重要数据及时同步、次要数据按需同步、无影响数据不同步,从而达到数据符合应用需求的高效同步,压缩了同步时间;其次通过动态生成源端数据库表、目标数据库表、同步数据的一个映射工厂类对象,解决了针对源端数据库和目标数据库的表结构不一致时,导致数据无法同步的问题;最后同步信息监控机制,使得本发明方案具有更高的***可靠性、可用性和稳定性和可维护性。
另外,本发明可根据自身业务需求,自定义数据库表的同步参数,从而实现数据库的时效同步。
本申请的实施例还提供能够实现上述实施例中的基于数据库表的时效同步方法中全部步骤的一种电子设备的具体实施方式,参见图23,电子设备具体包括如下内容:
处理器(processor)1201、存储器(memory)1202、通信接口(CommunicationsInterface)1203和总线1204;
其中,处理器1201、存储器1202、通信接口1203通过总线1204完成相互间的通信;通信接口1203用于实现服务器端设备、接口设备以及用户端设备等相关设备之间的信息传输。
处理器1201用于调用存储器1202中的计算机程序,处理器执行计算机程序时实现上述实施例中的基于数据库表的时效同步方法中的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:生成表级同步配置表以及表级同步日志表;
步骤200:根据所述表级同步配置表以及所述表级同步日志表配置同步表;
步骤300:源数据库根据所述同步表进行同步数据读操作;
步骤400:目标数据库根据所述同步表进行同步数据写操作;
步骤500:根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态。
本申请的实施例还提供能够实现上述实施例中的基于数据库表的时效同步方法中全部步骤的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的基于数据库表的时效同步方法的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:生成表级同步配置表以及表级同步日志表;
步骤200:根据所述表级同步配置表以及所述表级同步日志表配置同步表;
步骤300:源数据库根据所述同步表进行同步数据读操作;
步骤400:目标数据库根据所述同步表进行同步数据写操作;
步骤500:根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种基于数据库表的时效同步方法,其特征在于,包括:
生成表级同步配置表以及表级同步日志表;
根据所述表级同步配置表以及所述表级同步日志表配置同步表;
源数据库根据所述同步表进行同步数据读操作;
目标数据库根据所述同步表进行同步数据写操作;
根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态;
所述生成表级同步配置表以及表级同步日志表包括:
根据同步信息属性生成所述表级同步日志表;
根据同步配置表参数属性生成所述表级同步配置表;
所述源数据库根据所述同步表进行同步数据读操作,包括:
基于所述表级同步配置表的配置,通过抽象工厂类动态生成源端表、目标端表、源端数据的映射对象,读取所述源数据库中数据,生成同步信息并注册到消息队列中;
所述目标数据库根据所述同步表进行同步数据写操作包括:
所述目标数据库获取并解析消息队列中的同步指令;
所述目标数据库根据所述同步指令解析出内存块对应的数据对象;
所述目标数据库根据所述表级同步配置表中的配置信息,按照增存量模式写入所述数据对象。
2.根据权利要求1所述的时效同步方法,其特征在于,所述同步信息属性包括:同步表名、表所属、源数据库节点标识、目标数据库节点、同步序列号、同步状态、同步开始时间戳、同步完成时间戳、同步读记录数以及同步写记录数;
所述同步配置表参数属性包括:同步表名、表所属、源数据库节点标识、目标数据库节点、增存量模式、上一次同步时间戳、同步频率、同步开关状态以及同步周期。
3.根据权利要求2所述的时效同步方法,其特征在于,所述源数据库根据所述同步表进行同步数据读操作还包括:
所述源数据库以预设时间间隔读取所述表级同步配置表中的源数据库节点标识、当前数据的唯一源数据库节点标识ID以及所述同步开关状态;
所述源数据库根据所述源数据库节点标识、所述唯一源数据库节点标识ID、同步开关状态、当前***时间、所述上一次同步时间戳以及所述同步频率判断是否需要进行同步数据读操作;
若获知需要进行同步数据读操作,所述源数据库则根据所述增存量模式获取同步数据,并将所述同步数据写入所述目标数据库中。
4.根据权利要求1所述的时效同步方法,其特征在于,还包括:生成同步信息并注册到消息队列,所述同步信息包括:目标数据库节点、同步表名、同步序列号以及同步时间戳。
5.根据权利要求1所述的时效同步方法,其特征在于,还包括:将同步日志表写入到共享缓存中,所述表级同步日志表包括:表所属、源数据库节点标识、目标数据库节点、同步序列号、同步开始时间戳、同步读数据量,同步状态为处理中。
6.一种基于数据库表的时效同步装置,其特征在于,包括:
表生成单元,用于生成表级同步配置表以及表级同步日志表;
同步表配置单元,用于根据所述表级同步配置表以及所述表级同步日志表配置同步表;
读操作单元,用于源数据库根据所述同步表进行同步数据读操作;
写数据单元,用于目标数据库根据所述同步表进行同步数据写操作;
状态监控单元,用于根据所述表级同步配置表以及所述表级同步日志表监控多个数据库的数据同步状态;
所述表生成单元包括:
日志表生成模块,用于根据同步信息属性生成所述表级同步日志表;
配置表生成模块,用于根据同步配置表参数属性生成所述表级同步配置表;
所述读操作单元具体用于:
基于所述表级同步配置表的配置,通过抽象工厂类动态生成源端表、目标端表、源端数据的映射对象,读取所述源数据库中数据,生成同步信息并注册到消息队列中;
所述写数据单元包括:
同步指令获取模块,用于所述目标数据库获取并解析消息队列中的同步指令;
数据对象解析模块,用于所述目标数据库根据所述同步指令解析出内存块对应的数据对象;
数据写入模块,用于所述目标数据库根据所述表级同步配置表中的配置信息,按照增存量模式写入所述数据对象。
7.根据权利要求6所述的时效同步装置,其特征在于,所述同步信息属性包括:同步表名、表所属、源数据库节点标识、目标数据库节点、同步序列号、同步状态、同步开始时间戳、同步完成时间戳、同步读记录数以及同步写记录数;
所述同步配置表参数属性包括:同步表名、表所属、源数据库节点标识、目标数据库节点、增存量模式、上一次同步时间戳、同步频率、同步开关状态以及同步周期。
8.根据权利要求7所述的时效同步装置,其特征在于,所述读操作单元:
状态读取模块,用于所述源数据库以预设时间间隔读取所述表级同步配置表中的源数据库节点标识、当前数据的唯一源数据库节点标识ID以及所述同步开关状态;
判断模块,用于所述源数据库根据所述源数据库节点标识、所述唯一源数据库节点标识ID、同步开关状态、当前***时间、所述上一次同步时间戳以及所述同步频率判断是否需要进行同步数据读操作;
数据写入模块,用于若获知需要进行同步数据读操作,所述源数据库则根据所述增存量模式获取同步数据,并将所述同步数据写入所述目标数据库中。
9.根据权利要求6所述的时效同步装置,其特征在于,还包括:消息注册单元,用于生成同步信息并注册到消息队列,所述同步信息包括:目标数据库节点、同步表名、同步序列号以及同步时间戳。
10.根据权利要求6所述的时效同步装置,其特征在于,还包括:日志写入单元,用于将同步日志表写入到共享缓存中,所述表级同步日志表包括:表所属、源数据库节点标识、目标数据库节点、同步序列号、同步开始时间戳、同步读数据量,同步状态为处理中。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5任一项所述基于数据库表的时效同步方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5任一项所述基于数据库表的时效同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010540923.1A CN111737348B (zh) | 2020-06-15 | 2020-06-15 | 基于数据库表的时效同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010540923.1A CN111737348B (zh) | 2020-06-15 | 2020-06-15 | 基于数据库表的时效同步方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111737348A CN111737348A (zh) | 2020-10-02 |
CN111737348B true CN111737348B (zh) | 2023-10-10 |
Family
ID=72649131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010540923.1A Active CN111737348B (zh) | 2020-06-15 | 2020-06-15 | 基于数据库表的时效同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737348B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380225B (zh) * | 2021-01-15 | 2021-03-30 | 长沙树根互联技术有限公司 | 时序数据同步方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2891994A1 (en) * | 2013-11-04 | 2015-07-08 | Guangdong Electronics Industry Institute Ltd. | Method for achieving automatic synchronization of multisource heterogeneous data resources |
CN108399256A (zh) * | 2018-03-06 | 2018-08-14 | 北京慧萌信安软件技术有限公司 | 异构数据库内容同步方法、装置及中间件 |
CN109101627A (zh) * | 2018-08-14 | 2018-12-28 | 交通银行股份有限公司 | 异构数据库同步方法及装置 |
-
2020
- 2020-06-15 CN CN202010540923.1A patent/CN111737348B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2891994A1 (en) * | 2013-11-04 | 2015-07-08 | Guangdong Electronics Industry Institute Ltd. | Method for achieving automatic synchronization of multisource heterogeneous data resources |
CN108399256A (zh) * | 2018-03-06 | 2018-08-14 | 北京慧萌信安软件技术有限公司 | 异构数据库内容同步方法、装置及中间件 |
CN109101627A (zh) * | 2018-08-14 | 2018-12-28 | 交通银行股份有限公司 | 异构数据库同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111737348A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101627B (zh) | 异构数据库同步方法及装置 | |
US12007956B1 (en) | Time reservations for ensuring consistent reads in a distributed database without logging | |
CN110209726B (zh) | 分布式数据库集群***、数据同步方法及存储介质 | |
US20070255763A1 (en) | Database replication method and system | |
US7899783B1 (en) | Monitoring data integrity | |
CN109933632B (zh) | 一种数据库的数据迁移方法、装置及设备 | |
CN106453297B (zh) | 检测主从延时方法、装置和*** | |
CN112434043B (zh) | 一种数据同步方法、装置、电子设备及介质 | |
WO2016082594A1 (zh) | 数据更新处理方法及装置 | |
CN107040576A (zh) | 信息推送方法及装置、通讯*** | |
CN109101423A (zh) | 一种基于服务端日志回放的自动化测试方法 | |
CN111737348B (zh) | 基于数据库表的时效同步方法及装置 | |
CN112163038A (zh) | 跨集群数据同步方法、装置、设备及存储介质 | |
CN112241437A (zh) | 数据库多主同步的回环控制方法、装置、设备及存储介质 | |
CN113419872B (zh) | 一种应用***接口集成***、集成方法、设备及存储介质 | |
CN111355802A (zh) | 信息推送方法和装置 | |
CN111259066A (zh) | 服务器集群数据同步方法及装置 | |
CN110489491A (zh) | 一种适用于a/b网双集群的全量数据同步装置 | |
CN112800060B (zh) | 数据处理方法、装置、计算机可读存储介质及电子设备 | |
CN115687503A (zh) | 数据库间的数据同步方法、装置、设备及存储介质 | |
CN112559495A (zh) | 一种支持多***标签映射实现统一标签管理的*** | |
CN112416944A (zh) | 一种同步业务数据的方法和设备 | |
CN108900497B (zh) | 一种异构***间的数据同步方法及*** | |
CN114610817B (zh) | 数据同步方法、装置、多活***、电子设备及存储介质 | |
CN115587141A (zh) | 一种数据库同步方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |