CN112559546B - 数据库同步方法、装置、计算机设备及可读存储介质 - Google Patents

数据库同步方法、装置、计算机设备及可读存储介质 Download PDF

Info

Publication number
CN112559546B
CN112559546B CN202011537934.0A CN202011537934A CN112559546B CN 112559546 B CN112559546 B CN 112559546B CN 202011537934 A CN202011537934 A CN 202011537934A CN 112559546 B CN112559546 B CN 112559546B
Authority
CN
China
Prior art keywords
data
database
target
original
synchronized
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
Application number
CN202011537934.0A
Other languages
English (en)
Other versions
CN112559546A (zh
Inventor
董青松
梁海涛
张广智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Bank Co Ltd
Original Assignee
Ping An Bank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Bank Co Ltd filed Critical Ping An Bank Co Ltd
Priority to CN202011537934.0A priority Critical patent/CN112559546B/zh
Publication of CN112559546A publication Critical patent/CN112559546A/zh
Application granted granted Critical
Publication of CN112559546B publication Critical patent/CN112559546B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本发明涉及大数据的数据处理技术领域,公开了一种数据库同步方法、装置、计算机设备及可读存储介质,包括:识别目标数据库和原始数据库;从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据;对比所述目标数据和原始数据之间的差异得到差异数据;将所述差异数据载入预置的公式程序中获得同步脚本,通过所述同步脚本将所述差异数据同步到所述目标数据库或原始数据库中,使所述目标数据和所述原始数据中的数据同步。本发明还涉及区块链技术,信息可存储于区块链节点中。本发明自动实现目标数据库和原始数据库的同步操作,极大的提高了数据库同步效率,降低了人工查找并同步数据所造成的人力成本投入过大,效率较低的情况发生。

Description

数据库同步方法、装置、计算机设备及可读存储介质
技术领域
本发明涉及大数据的数据处理技术领域,尤其涉及一种数据库同步方法、装置、计算机设备及可读存储介质。
背景技术
在IT系统的建设过程中,伴随设计和需求的不断迭代,数据库结构以及配置文件不断升级更新,对于同一个应用,代码在进化,数据库元数据信息在进化,配置文件在进化;代码进化目前有比较成熟的代码管理工具GIT、SVN,对与配置文件进化有成熟的配置中心系统(Apollo等),但是,在数据库结构进化方面行业内无简单易用的工具。
因此,发明人发现一旦某一数据库中的数据出现迭代、更新等情况时,需要投入大量的人工识别与所述数据库关联的待更新数据库,并将迭代、更新的数据添加至所述待更新数据库中,不仅投入的人力成本较高,而且还导致数据库同步的效率极大的降低。
发明内容
本发明的目的是提供一种数据库同步方法、装置、计算机设备及可读存储介质,用于解决现有技术存在的投入大量的人工识别与所述数据库关联的待更新数据库,并将迭代、更新的数据添加至所述待更新数据库中,所导致的人力成本高,数据库同步的效率低的问题。
为实现上述目的,本发明提供一种数据库同步方法,包括:
识别目标数据库和原始数据库;
从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据;
对比所述目标数据和原始数据之间的差异得到差异数据;
将所述差异数据载入预置的公式程序中获得同步脚本,通过所述同步脚本将所述差异数据同步到所述目标数据库或原始数据库中,使所述目标数据和所述原始数据中的数据同步。
上述方案中,所述识别目标数据库和原始数据库之前,所述方法还包括:
所述数据库同步方法被设置为,响应于预置的触发周期或接收到控制端发送的同步信号。
上述方案中,所述识别目标数据库和原始数据库的步骤,包括:
若响应于所述触发周期,则通过预置的同步库表中,获取具有对应关系的待同步数据库,获取所述待同步数据库更新时间,将更新时间最接近当前时间的待同步数据库设为目标数据库,将除所述目标数据库外的待同步数据库设为原始数据库;
若响应于所述控制端发送的同步信号,则获取所述同步信号中的库编号,并根据所述库编号识别系统中的待同步数据库;判断所述同步信号中是否具有目标指令;若是,则将与所述目标指令对应的待同步数据库设为目标数据库,并将其他的待同步数据库设为原始数据库;若否,则获取所述待同步数据库更新时间,将更新时间最接近当前时间的待同步数据库设为目标数据库,将除所述目标数据库外的待同步数据库设为原始数据库。
上述方案中,所述从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据的步骤,包括:
识别所述目标数据库中保存的目标存储数据,镜像所述目标存储数据得到目标数据,并从所述目标数据库中提取所述目标数据;识别所述原始数据库中保存的原始存储数据,镜像所述原始存储数据得到原始数据,并从所述原始数据库中提取所述原始数据;其中,所述镜像是指磁盘镜像,其为将一个存储装置里的数据,在另一个装置或以另一种格式制作的完整复制品。
上述方案中,所述从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据之后,所述方法还包括:
判断所述目标数据和所述原始数据的数据结构是否一致;若是,则判定所述目标数据和所述原始数据为同类数据;若否,则将所述原始数据的数据类型转为所述目标数据的数据结构,使所述原始数据与所述目标数据成为同类数据。
上述方案中,所述将所述差异数据载入预置的公式程序中获得同步脚本之前,所述方法还包括:
与控制端之间构建加密信道;
所述通过所述同步脚本将所述差异数据同步到所述目标数据库或原始数据库中,使所述目标数据和所述原始数据中的数据同步之前,所述方法还包括:
将所述同步脚本通过所述加密信道发送至所述控制端,接收所述控制端根据所述同步脚本发送的执行信号;
所述将所述差异数据载入预置的公式程序中获得同步脚本之后,所述方法还包括:
将所述同步脚本上传至区块链中。
上述方案中,所述通过所述同步脚本将所述差异数据同步到所述目标数据库或原始数据库中,使所述目标数据和所述原始数据中的数据同步之后,所述方法还包括:
提取所述目标数据库中的目标数据及所述原始数据库中的原始数据,验证所述目标数据和原始数据是否一致;若是,则判定所述目标数据库和所述原始数据库完成同步;若否,则生成报错报文,并将所述报错报文发送至所述控制端。
为实现上述目的,本发明还提供一种数据库同步装置,包括:
数据库识别模块,用于识别目标数据库和原始数据库;
数据获取模块,用于从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据;
差异对比模块,用于对比所述目标数据和原始数据之间的差异得到差异数据;
数据同步模块,用于将所述差异数据载入预置的公式程序中获得同步脚本,通过所述同步脚本将所述差异数据同步到所述目标数据库或原始数据库中,使所述目标数据和所述原始数据中的数据同步。为实现上述目的,本发明还提供一种计算机设备,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述计算机设备的处理器执行所述计算机程序时实现上述数据库同步方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,所述可读存储介质存储的所述计算机程序被处理器执行时实现上述数据库同步方法的步骤。
本发明提供的数据库同步方法、装置、计算机设备及可读存储介质,通过从目标数据库中提取目标数据及从原始数据库中提取原始数据,并对比所述目标数据和所述原始数据之间的差异得到差异数据,将差异数据载入公式程序中以对公式程序中的变量数据进行赋值,使所述公式程序成为同步脚本的可执行文件,以便于控制端调用所述同步脚本使目标数据库和原始数据库进行同步,以自动实现目标数据库和原始数据库的同步操作,极大的提高了数据库同步效率,降低了人工查找并同步数据所造成的人力成本投入过大,效率较低的情况发生。
附图说明
图1为本发明数据库同步方法实施例一的流程图;
图2为本发明数据库同步方法实施例二中数据库同步方法的环境应用示意图;
图3是本发明数据库同步方法实施例二中数据库同步方法的具体方法流程图;
图4为本发明数据库同步装置实施例三的程序模块示意图;
图5为本发明计算机设备实施例四中计算机设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的数据库同步方法、装置、计算机设备及可读存储介质,适用于大数据的数据处理技术领域,为提供一种基于数据库识别模块、数据获取模块、差异对比模块、数据同步模块、触发模块、结构调整模块、信道构建模块、同步验证模块的数据库同步方法。本发明通过识别目标数据库和原始数据库,从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据,对比所述目标数据和原始数据之间的差异得到差异数据,将所述差异数据载入预置的公式程序中获得同步脚本。
实施例一:
请参阅图1,本实施例的一种数据库同步方法,包括:
S102:识别目标数据库和原始数据库;
S103:从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据;
S105:对比所述目标数据和原始数据之间的差异得到差异数据;
S107:将所述差异数据载入预置的公式程序中获得同步脚本,通过所述同步脚本将所述差异数据同步到所述目标数据库或原始数据库中,使所述目标数据和所述原始数据中的数据同步。
在示例性的实施例中,通过预置的同步库表中,获取具有对应关系的待同步数据库,获取所述待同步数据库更新时间,将更新时间最接近当前时间的待同步数据库设为目标数据库,将除所述目标数据库外的其他待同步数据库设为原始数据库。不仅精准的识别出需要同步的数据库,而且,由于更新时间最接近当前时间的待同步数据库存储的数据信息是最新、也可能是最全面的,并且其数据类型也是最符合当前系统的使用需要的,因此,将所述待同步数据库设为目标数据库,并将其他待同步数据库设为原始数据库,并使其在大概率上以所述目标数据库(尤其是目标数据库的数据类型)为准,是最有利于数据库同步操作开展的方式。
识别所述目标数据库中保存的目标存储数据,镜像所述目标存储数据得到目标数据,并从所述目标数据库中提取所述目标数据;识别所述原始数据库中保存的原始存储数据,镜像所述原始存储数据得到原始数据,并从所述原始数据库中提取所述原始数据;其中,所述镜像是指磁盘镜像,其为将一个存储装置里的数据,在另一个装置或以另一种格式制作的完整复制品。
通过提取目标数据中任一目标子数据,遍历所述原始数据中的原始子数据,并判断所述原始数据中是否具有与所述目标子数据一致的原始子数据,若否,则将所述目标子数据设为差异数据;同理,提取原始数据中任一原始子数据,遍历所述目标数据中的目标子数据,并判断所述目标数据中是否具有与所述原始子数据一致的目标子数据,若否,则将所述原始子数据设为差异数据。
通过将差异数据载入公式程序中以对公式程序中的变量数据进行赋值,使所述公式程序成为同步脚本的可执行文件,以便于控制端调用所述同步脚本使目标数据库和原始数据库进行同步。其中,所述可执行文件(executable file)指的是可以由操作系统进行加载执行的文件,其用于自动实现目标数据库和原始数据库的同步操作,极大的提高了数据库同步效率,降低了人工查找并同步数据所造成的人力成本投入过大,效率较低的情况发生。
实施例二:
本实施例为上述实施例一的一种具体应用场景,通过本实施例,能够更加清楚、具体地阐述本发明所提供的方法。
下面,以在运行有数据库同步方法的服务器中,对其中的缓存器和数据库进行信息同步及返回口令识别对比所述目标数据和原始数据之间的差异得到差异数据,并将所述差异数据载入预置的公式程序中获得同步脚本为例,来对本实施例提供的方法进行具体说明。需要说明的是,本实施例只是示例性的,并不限制本发明实施例所保护的范围。
图2示意性示出了根据本申请实施例二的数据库同步方法的环境应用示意图。
在示例性的实施例中,数据库同步方法所在的服务器2通过网络3分别连接控制端4;所述服务器2可以通过一个或多个网络3提供服务,网络3可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络3可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络3可以包括无线链路,例如蜂窝链路,卫星链路,Wi-Fi链路和/或类似物;所述控制端4可为智能手机、平板电脑、笔记本电脑、台式电脑等计算机设备。
图3是本发明一个实施例提供的一种数据库同步方法的具体方法流程图,该方法具体包括步骤S201至S208。
S201:响应于预置的触发周期或接收到控制端发送的同步信号。
为实现数据库的实时同步,以及根据控制端的需求有针对性地同步,本步骤通过将所述数据库同步方法设置为响应于预置的触发周期以根据所述触发周期实时地对数据库进行同步,以及响应于控制端发送的同步信号,以根据控制端的需求进行有针对性的数据库同步。
于本实施例中,所述触发周期可根据需要设置,例如:1分钟,1小时,12小时等。
S202:识别目标数据库和原始数据库。
本步骤中,若响应于所述触发周期,则通过预置的同步库表中,获取具有对应关系的待同步数据库,获取所述待同步数据库更新时间,将更新时间最接近当前时间的待同步数据库设为目标数据库,将除所述目标数据库外的待同步数据库设为原始数据库。
若响应于所述控制端发送的同步信号,则获取所述同步信号中的库编号,并根据所述库编号识别系统中的待同步数据库;
判断所述同步信号中是否具有目标指令;若是,则将与所述目标指令对应的待同步数据库设为目标数据库,并将其他的待同步数据库设为原始数据库;若否,则获取所述待同步数据库更新时间,将更新时间最接近当前时间的待同步数据库设为目标数据库,将除所述目标数据库外的待同步数据库设为原始数据库;
于本实施例中,由于更新时间最接近当前时间的待同步数据库存储的数据信息是最新、也可能是最全面的,并且其数据类型也是最符合当前系统的使用需要的,因此,将所述待同步数据库设为目标数据库,并将其他待同步数据库设为原始数据库,并使其在大概率上以所述目标数据库(尤其是目标数据库的数据类型)为准,是最有利于数据库同步操作开展的方式。
需要说明的是,所述同步库表保存了系统中数据库之间的对应关系所述对应关系表达了保存的信息应当一致的数据库对或数据库集合,例如:系统中包括数据库A、数据库B、数据库C和数据库D,如果数据库A和数据库B在同步库表中之间具有对应关系,则表达数据库A和数据库B中保存的数据应当一致;其中,所述对应关系可根据需要设置。
S203:从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据。
本步骤中,识别所述目标数据库中保存的目标存储数据,镜像所述目标存储数据得到目标数据,并从所述目标数据库中提取所述目标数据;识别所述原始数据库中保存的原始存储数据,镜像所述原始存储数据得到原始数据,并从所述原始数据库中提取所述原始数据;其中,所述镜像是指磁盘镜像,其为将一个存储装置里的数据,在另一个装置或以另一种格式制作的完整复制品。
S204:判断所述目标数据和所述原始数据的数据结构是否一致;若是,则判定所述目标数据和所述原始数据为同类数据;若否,则将所述原始数据的数据类型转为所述目标数据的数据结构,使所述原始数据与所述目标数据成为同类数据。
由于目标数据和原始数据的在所述目标数据库和原始数据库中的数据结构是不一致的,那么,如果将数据结构不一致的目标数据和原始数据进行直接比对,将会导致比对的结果是不准确的,例如:由于因数据结构不一致,导致目标数据中的子数据无法在原始数据中找到与其对应的子数据;为保证目标数据和原始数据对比的准确性,
本步骤通过识别所述目标数据的数据结构及所述原始数据的数据结构,判断所述目标数据的数据结构及所述原始数据的数据结构是否一致;
若是,则判定所述目标数据和所述原始数据为同类数据;
若否,则从预置的结构转换规则集合中,获取以目标数据的数据结构为转换目标,以所述原始数据的数据结构为转换来源的结构转换规则,通过所述结构转换规则将所述原始数据的数据结构转换为所述目标数据的数据结构,使所述原始数据的数据结构与所述目标数据的数据结构一致,进而是所述原始数据和所述目标数据成为同类数据。
示例性地,如果目标数据的数据结构是链表,原始数据的数据结构是数组,则判定链表为转换目标,数组为转换来源,调用预置的结构转换规则集合中的数组转链表规则对原始数据的数据结构进行转换,使原始数据的数据结构变为链表,例如:
root=new LinkNode(s[0]);//生成链表的根节点,并将数组的第一个元素的值赋给链表的根节点;
LinkNode other=root;//生成另一个节点,并让other指向root节点,other在此作为一个临时变量,other和root指向同一地址;
for(inti=1;i<s.length;i++){//由于已给root赋值,所以i从1开始;
LinkNode temp=new LinkNode(s[i]);//每循环一次生成一个新的节点,并给当前节点赋值;
other.setNext(temp);//将other的下一个节点指向生成的新的节点;
other=temp;//将other指向最后一个节点(other的下一个节点)。
}
于所述图3中,所述S204采用以下标注展示:
S41:判断所述目标数据和所述原始数据的数据结构是否一致;
S42:若是,则判定所述目标数据和所述原始数据为同类数据;
S43:若否,则将所述原始数据的数据类型转为所述目标数据的数据结构,使所述原始数据与所述目标数据成为同类数据。
S205:对比所述目标数据和原始数据之间的差异得到差异数据。
为识别所述目标数据和原始数据之间的差异,本步骤通过提取目标数据中任一目标子数据,遍历所述原始数据中的原始子数据,并判断所述原始数据中是否具有与所述目标子数据一致的原始子数据,若否,则将所述目标子数据设为差异数据;同理,提取原始数据中任一原始子数据,遍历所述目标数据中的目标子数据,并判断所述目标数据中是否具有与所述原始子数据一致的目标子数据,若否,则将所述原始子数据设为差异数据。其中,所述目标子数据是组成所述目标数据的数据单元,于本实施例中,可将链表结构的目标数据中具有同一标题的数据集合设为一个目标子数据;同理,所述原始子数据是组成所述原始数据的数据单元,于本实施例中,可将链表结构的原始数据中具有同一标题的数据集合设为一个原始子数据。
具体地,使用GET函数提取目标数据中的目标子数据,并将其带入原始数据中以遍历所述原始数据中的原始子数据;判断所述原始数据中是否具有与所述目标子数据一致的原始子数据;若是,则判定所述目标子数据与所述原始子数据一致;若否,则判定所述目标子数据为差异数据。
使用GET函数提取原始数据中的原始子数据,并将其带入目标数据中以遍历所述目标数据中的目标子数据;判断所述目标数据中是否具有与与所述原始子数据一致的目标子数据;若是,则判定所述原始子数据与所述目标子数据一致;若否,则判定所述原始子数据为差异数据。
S206:与所述控制端之间构建加密信道。
为避免同步脚本被非法终端窃取,本步骤通过与控制端之间构建加密信道后,将所述同步脚本发送至所述控制端,以保证同步脚本的信息安全;
于本实施例中,采用设置有加密保护协议的通信信道作为所述加密信道,基于所述加密保护协议的加密信道的工作原理是:在系统认证过程中,运行有数据库同步方法的服务器发送一个消息到控制端,控制端以进行自认证的消息响应所述服务器。控制端和服务器完成额外的会话密钥交换,结束整个认证会话过程。当认证完成后,在服务器与控制端使用在认证过程中建立的对称密钥的安全通信作为所述加密信道。
具体的,采用TLS和/或SSL作为加密保护协议,其中,SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。TLS:(Transport LayerSecurity,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。
S207:将所述差异数据载入预置的公式程序中获得同步脚本,将所述同步脚本通过所述加密信道发送至所述控制端,接收所述控制端根据所述同步脚本发送的执行信号,根据所述执行信号通过所述同步脚本将所述差异数据同步到所述目标数据库或原始数据库中,使所述目标数据和所述原始数据中的数据同步。
为自动实现目标数据库和原始数据库的自动同步,本步骤通过将差异数据载入公式程序中以对公式程序中的变量数据进行赋值,使所述公式程序成为同步脚本的可执行文件,以便于控制端调用所述同步脚本使目标数据库和原始数据库进行同步;其中,所述同步脚本是用于将差异数据同步到不具有所述差异数据的目标数据库或原始数据库中,使所述目标数据和所述原始数据同步的可执行文件;所述可执行文件(executable file)指的是可以由操作系统进行加载执行的文件。
示例性地,原始数据包括原始子数据A、原始子数据B、原始子数据C,目标数据包括目标子数据A、目标子数据B和目标子数据D,依次提取原始子数据A、原始子数据B、原始子数据C并遍历所述目标数据,得到差异数据:原始子数据C;依次提取目标子数据A、目标子数据B和目标子数据D并遍历所述原始子数据,得到差异数据:目标子数据D;因此,得到差异数据:原始子数据C和目标子数据D。假设公式程序表达了:将差异数据赋值给变量A,再将所述变量A载入除所述差异数据来源外的数据库中;将原始子数据C赋值给变量A,识别除原始子数据C来源(即:原始数据库)外的其他数据表(即:目标数据库),将所述原始子数据C载入所述目标数据库中;将目标子数据D赋值给变量A,识别除目标子数据D的来源(即:目标数据库)外的数据库(即:原始数据库),将所述目标子数据D载入所述原始数据库中。
优选的,所述将所述差异数据载入预置的公式程序中获得同步脚本之后,所述方法还包括:
将所述同步脚本上传至区块链中。
需要说明的是,基于同步脚本得到对应的摘要信息,具体来说,摘要信息由同步脚本进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证同步脚本是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
S208:提取所述目标数据库中的目标数据及所述原始数据库中的原始数据,验证所述目标数据和原始数据是否一致;若是,则判定所述目标数据库和所述原始数据库完成同步;若否,则生成报错报文,并将所述报错报文发送至所述控制端。
为保证目标数据库和原始数据库的同步准确度,本步骤在生成同步脚本之后直接执行所述同步脚本,或经过预置的等待期间根据所述控制端发送的执行信号执行完所述同步脚本后,再提取所述目标数据库中的目标数据及所述原始数据库中的原始数据,验证所述目标数据和原始数据是否一致;若是,则判定所述目标数据库和所述原始数据库完成同步;若否,则生成报错报文,并将所述报错报文发送至所述控制端,以保证目标数据库和原始数据库的目标数据和原始数据同步的可靠性和准确度。
于本实施例中,采用哈希算法对所述目标数据进行运算得到哈希值,及对所述原始数据进行哈希运算得到原始哈希值;判断所述目标哈希值和所述原始哈希值是否一致;若是,则判定所述目标数据和所述原始数据一致;若否,则判定所述目标数据和所述原始数据不一致。
需要说明的是,所述哈希算法是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出的散列值即为哈希值。哈希算法产生的哈希值的长度是固定且有限的。例如,本实施例可采用MD5,其输出的哈希值是固定的128位二进制串,能表示的数据是有限的,最多能表示2^128个数据。由于采用哈希算法对数据库中的数据进行运算得到哈希值的方式,因此,只要目标哈希值和原始哈希值一致,就可以认为目标数据和原始数据一致,保证了数据库同步验证的准确性,还因无需将原始数据和目标数据进行一一比对,极大的提高了同步验证的效率。
于所述图3中,所述S208采用以下标注展示:
S81:提取所述目标数据库中的目标数据及所述原始数据库中的原始数据;
S82:验证所述目标数据和原始数据是否一致;
S83:若是,则判定所述目标数据库和所述原始数据库完成同步;
S84:若否,则生成报错报文,并将所述报错报文发送至所述控制端。
实施例三:
请参阅图4,本实施例的一种数据库同步装置1,包括:
数据库识别模块12,用于识别目标数据库和原始数据库;
数据获取模块13,用于从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据;
差异对比模块15,用于对比所述目标数据和原始数据之间的差异得到差异数据;
数据同步模块17,用于将所述差异数据载入预置的公式程序中获得同步脚本,通过所述同步脚本将所述差异数据同步到所述目标数据库或原始数据库中,使所述目标数据和所述原始数据中的数据同步。可选的,所述数据库同步装置1还包括:
触发模块11,用于响应于预置的触发周期或控制端发送的同步信号。
可选的,所述数据库同步装置1还包括:
结构调整模块14,用于判断所述目标数据和所述原始数据的数据结构是否一致;若是,则判定所述目标数据和所述原始数据为同类数据;若否,则将所述原始数据的数据类型转为所述目标数据的数据结构,使所述原始数据与所述目标数据成为同类数据。
可选的,所述数据库同步装置1还包括:
信道构建模块16,用于与所述控制端之间构建加密信道。
可选的,所述数据库同步装置1还包括:
同步验证模块18,用于提取所述目标数据库中的目标数据及所述原始数据库中的原始数据,验证所述目标数据和原始数据是否一致;若是,则判定所述目标数据库和所述原始数据库完成同步;若否,则生成报错报文,并将所述报错报文发送至所述控制端。
本技术方案应用于大数据的数据处理领域,通过识别目标数据库和原始数据库,从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据,对比所述目标数据和原始数据之间的差异得到差异数据,将所述差异数据载入预置的公式程序中获得同步脚本,通过所述同步脚本实现各数据库之间的差异同步,进而实现各数据库之间的数据同步。
实施例四:
为实现上述目的,本发明还提供一种计算机设备5,实施例三的数据库同步装置的组成部分可分散于不同的计算机设备中,计算机设备5可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个应用服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器51、处理器52,如图5所示。需要指出的是,图5仅示出了具有组件-的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器51(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器51可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器51也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器51还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器51通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例三的数据库同步装置的程序代码等。此外,存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器52在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制计算机设备的总体操作。本实施例中,处理器52用于运行存储器51中存储的程序代码或者处理数据,例如运行数据库同步装置,以实现实施例一和实施例二的数据库同步方法。
实施例五:
为实现上述目的,本发明还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器52执行时实现相应功能。本实施例的计算机可读存储介质用于存储数据库同步装置,被处理器52执行时实现实施例一和实施例二的数据库同步方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (7)

1.一种数据库同步方法,其特征在于,包括:
响应于预置的触发周期或接收到控制端发送的同步信号;
识别目标数据库和原始数据库;其中,若响应于所述触发周期,则通过预置的同步库表中,获取具有对应关系的待同步数据库,获取所述待同步数据库更新时间,将更新时间最接近当前时间的待同步数据库设为目标数据库,将除所述目标数据库外的待同步数据库设为原始数据库;若响应于所述控制端发送的同步信号,则获取所述同步信号中的库编号,并根据所述库编号识别系统中的待同步数据库;判断所述同步信号中是否具有目标指令;若是,则将与所述目标指令对应的待同步数据库设为目标数据库,并将其他的待同步数据库设为原始数据库;若否,则获取所述待同步数据库更新时间,将更新时间最接近当前时间的待同步数据库设为目标数据库,将除所述目标数据库外的待同步数据库设为原始数据库;从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据;
对比所述目标数据和原始数据之间的差异得到差异数据;
与控制端之间构建加密信道,将所述差异数据载入预置的公式程序中获得同步脚本,将所述同步脚本通过所述加密信道发送至所述控制端,接收所述控制端根据所述同步脚本发送的执行信号,通过所述同步脚本将所述差异数据同步到所述目标数据库或原始数据库中,使所述目标数据和所述原始数据中的数据同步,将所述同步脚本上传至区块链中。
2.根据权利要求1所述的数据库同步方法,其特征在于,所述从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据的步骤,包括:
识别所述目标数据库中保存的目标存储数据,镜像所述目标存储数据得到目标数据,并从所述目标数据库中提取所述目标数据;识别所述原始数据库中保存的原始存储数据,镜像所述原始存储数据得到原始数据,并从所述原始数据库中提取所述原始数据;其中,所述镜像是指磁盘镜像,其为将一个存储装置里的数据,在另一个装置或以另一种格式制作的完整复制品。
3.根据权利要求1所述的数据库同步方法,其特征在于,所述从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据之后,所述方法还包括:
判断所述目标数据和所述原始数据的数据结构是否一致;若是,则判定所述目标数据和所述原始数据为同类数据;若否,则将所述原始数据的数据类型转为所述目标数据的数据结构,使所述原始数据与所述目标数据成为同类数据。
4.根据权利要求1所述的数据库同步方法,其特征在于,所述通过所述同步脚本将所述差异数据同步到所述目标数据库或原始数据库中,使所述目标数据和所述原始数据中的数据同步之后,所述方法还包括:
提取所述目标数据库中的目标数据及所述原始数据库中的原始数据,验证所述目标数据和原始数据是否一致;若是,则判定所述目标数据库和所述原始数据库完成同步;若否,则生成报错报文,并将所述报错报文发送至控制端。
5.一种数据库同步装置,其特征在于,包括:
触发模块,用于响应于预置的触发周期或控制端发送的同步信号;
数据库识别模块,用于识别目标数据库和原始数据库;其中,若响应于所述触发周期,则通过预置的同步库表中,获取具有对应关系的待同步数据库,获取所述待同步数据库更新时间,将更新时间最接近当前时间的待同步数据库设为目标数据库,将除所述目标数据库外的待同步数据库设为原始数据库;若响应于所述控制端发送的同步信号,则获取所述同步信号中的库编号,并根据所述库编号识别系统中的待同步数据库;判断所述同步信号中是否具有目标指令;若是,则将与所述目标指令对应的待同步数据库设为目标数据库,并将其他的待同步数据库设为原始数据库;若否,则获取所述待同步数据库更新时间,将更新时间最接近当前时间的待同步数据库设为目标数据库,将除所述目标数据库外的待同步数据库设为原始数据库;
数据获取模块,用于从所述目标数据库中获取目标数据,从所述原始数据库中获取原始数据;
差异对比模块,用于对比所述目标数据和原始数据之间的差异得到差异数据;
数据同步模块,用于与控制端之间构建加密信道,将所述差异数据载入预置的公式程序中获得同步脚本,将所述同步脚本通过所述加密信道发送至所述控制端,接收所述控制端根据所述同步脚本发送的执行信号,通过所述同步脚本将所述差异数据同步到所述目标数据库或原始数据库中,使所述目标数据和所述原始数据中的数据同步,将所述同步脚本上传至区块链中。
6.一种计算机设备,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机设备的处理器执行所述计算机程序时实现权利要求1至4任一项所述数据库同步方法的步骤。
7.一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,其特征在于,所述可读存储介质存储的所述计算机程序被处理器执行时实现权利要求1至4任一项所述数据库同步方法的步骤。
CN202011537934.0A 2020-12-23 2020-12-23 数据库同步方法、装置、计算机设备及可读存储介质 Active CN112559546B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011537934.0A CN112559546B (zh) 2020-12-23 2020-12-23 数据库同步方法、装置、计算机设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011537934.0A CN112559546B (zh) 2020-12-23 2020-12-23 数据库同步方法、装置、计算机设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN112559546A CN112559546A (zh) 2021-03-26
CN112559546B true CN112559546B (zh) 2024-03-19

Family

ID=75030954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011537934.0A Active CN112559546B (zh) 2020-12-23 2020-12-23 数据库同步方法、装置、计算机设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112559546B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113779141A (zh) * 2021-08-10 2021-12-10 携程商旅信息服务(上海)有限公司 商旅酒店信息同步存储方法、电子设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10117349A (ja) * 1996-04-30 1998-05-06 Texas Instr Inc <Ti> 通信インタフェースで受信されたパケットデータからの制御情報の抽出方法ならびにビデオデータパケット制御回路
CN101291339A (zh) * 2007-04-20 2008-10-22 索尼株式会社 数据通信系统、托架装置、服务器装置、数据通信方法和数据通信程序
WO2011134231A1 (zh) * 2010-04-26 2011-11-03 中兴通讯股份有限公司 一种数据库间数据同步的方法、系统及设备
CN106503216A (zh) * 2016-11-03 2017-03-15 用友网络科技股份有限公司 支持分层的元数据同步方法及元数据同步装置
CN108153784A (zh) * 2016-12-06 2018-06-12 北京京东尚科信息技术有限公司 同步数据处理方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827138B2 (en) * 2006-10-02 2010-11-02 Salesforce.Com, Inc. Method and system for synchronizing a server and an on-demand database service
US20120101987A1 (en) * 2010-10-25 2012-04-26 Paul Allen Bottorff Distributed database synchronization

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10117349A (ja) * 1996-04-30 1998-05-06 Texas Instr Inc <Ti> 通信インタフェースで受信されたパケットデータからの制御情報の抽出方法ならびにビデオデータパケット制御回路
CN101291339A (zh) * 2007-04-20 2008-10-22 索尼株式会社 数据通信系统、托架装置、服务器装置、数据通信方法和数据通信程序
WO2011134231A1 (zh) * 2010-04-26 2011-11-03 中兴通讯股份有限公司 一种数据库间数据同步的方法、系统及设备
CN106503216A (zh) * 2016-11-03 2017-03-15 用友网络科技股份有限公司 支持分层的元数据同步方法及元数据同步装置
CN108153784A (zh) * 2016-12-06 2018-06-12 北京京东尚科信息技术有限公司 同步数据处理方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
异构数据库间主动式差异数据同步模型研究;王辉;李贤敏;周英梅;;河南科技大学学报(自然科学版);20080615(第03期);全文 *

Also Published As

Publication number Publication date
CN112559546A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
US20210209373A1 (en) Media authentication using distributed ledger
CN107396360B (zh) 区块验证方法及装置
US11556247B2 (en) Secure and transparent pruning for blockchains
CN111163182B (zh) 基于区块链的设备注册方法、装置、电子设备和存储介质
WO2019032891A1 (en) SYSTEM AND METHOD FOR VERIFYING INTERACTIONS
CN103067363B (zh) 一种用于公开数据完整性校验的索引转换方法
CN110851748A (zh) 短链接的生成方法、服务器、存储介质及计算机设备
CN111737227B (zh) 数据修改方法及系统
CN113905038A (zh) 数据上报方法、装置、设备及存储介质
CN111984735A (zh) 一种数据归档方法、装置、电子设备和存储介质
CN113273163A (zh) 文件上传方法、文件下载方法和文件管理装置
CN111262822A (zh) 文件存储方法、装置、区块链节点和系统
CN110737719A (zh) 数据同步方法、装置、设备及计算机可读存储介质
CN112559546B (zh) 数据库同步方法、装置、计算机设备及可读存储介质
CN112307504A (zh) 一种安全多方计算方法、装置、电子设备及存储介质
CN113704569A (zh) 信息的处理方法、装置及电子设备
CN112887451A (zh) 域名解析方法、装置及计算机设备
CN111291001A (zh) 计算机文件的读取方法、装置、计算机系统及存储介质
CN110618989A (zh) 信息处理方法、信息处理装置及相关产品
CN111698227B (zh) 信息同步管理方法、装置、计算机系统及可读存储介质
CN114143308A (zh) 文件上传信息处理方法、装置、计算机设备及存储介质
CN113900990A (zh) 文件分片存储方法、装置、设备及存储介质
CN112732789A (zh) 基于区块链的可搜索加密方法和电子设备
CN112434231A (zh) 一种数据处理方法、装置及电子设备
CN112989404A (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