CN116244384A - 数据同步方法、数据同步装置、电子设备及存储介质 - Google Patents
数据同步方法、数据同步装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116244384A CN116244384A CN202310284059.7A CN202310284059A CN116244384A CN 116244384 A CN116244384 A CN 116244384A CN 202310284059 A CN202310284059 A CN 202310284059A CN 116244384 A CN116244384 A CN 116244384A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- data synchronization
- synchronization
- incremental
- 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.)
- Pending
Links
Images
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
Abstract
本公开提供了一种数据同步方法、数据同步装置、电子设备及存储介质,可以应用于大数据技术领域。该数据同步方法应用于第一数据库和第二数据库。应用于第一数据库的数据同步方法包括:响应于接收到来自第二数据库的数据同步请求,解析数据同步请求,确定第二数据库的数据表更新情况,数据表更新情况表征主数据库的表结构是否发生变化;获取第一数据库在预设时段内产生的增量数据,预设时段表征第一数据库执行交易操作、且第二数据库未执行交易操作的时段;根据数据表更新情况,确定数据同步方式;以及基于数据同步方式,将增量数据库同步至第二数据库。
Description
技术领域
本公开涉及大数据技术领域,具体涉及一种数据同步方法、数据同步装置、电子设备及存储介质。
背景技术
为了向用户提供7*24小时连续性服务,例如,电话挂失等服务,银行等企业一般通过主数据库向用户提供服务,并将交易数据同步至备用数据库上。在主数据库升级或维护期间,将业务交易请求路由至备用数据库,由备用数据库向用户提供服务,以保证业务服务的连续性。
相关技术中,在主数据库完成升级或维护之后,备用数据库与主数据库之间的数据同步依赖于业务人员的手工同步操作,导致数据同步成本高、操作时间长。此外,手工同步操作还会提高因人工疏漏导致的数据同步错误,导致影响业务连续性。
发明内容
鉴于上述问题,本公开提供了一种数据同步方法、数据同步装置、电子设备及存储介质。
根据本公开的第一个方面,提供了一种数据同步方法,应用于第一数据库,方法包括:
响应于接收到来自第二数据库的数据同步请求,解析数据同步请求,确定第二数据库的数据表更新情况,数据表更新情况表征第二数据库的表结构是否发生变化;
获取第一数据库在预设时段内产生的增量数据,预设时段表征第一数据库执行交易操作、且第二数据库未执行交易操作的时段;
根据数据表更新情况,确定数据同步方式;以及
基于数据同步方式,将增量数据库同步至第二数据库。
根据本公开的实施例,其中,根据数据表更新情况,确定数据同步方式,包括:
在确定第二数据库的表结构发生变化的情况下,确定数据同步方式为第一同步方式,第一同步方式用于将增量数据通过共享磁盘同步至第二数据库;
在确定第二数据库的表结构未发生变化的情况下,确定数据同步方式为第二同步方式,第二同步方式用于将增量数据通过复制工具同步至第二数据库。
根据本公开的实施例,其中,基于数据同步方式,将增量数据库同步至第二数据库,包括:
在确定数据同步方式为第一同步方式的情况下,通过触发器将增量数据存储至临时表;
将临时表以文件形式导出,得到共享文件,共享文件的命名符合预设形式;
将共享文件写入共享磁盘,以便第二数据库从共享磁盘读取共享文件。
根据本公开的实施例,其中,基于数据同步方式,将增量数据库同步至第二数据库,还包括:
在确定数据同步方式为第二同步方式的情况下,获取与增量数据对应的交易日志;
将交易日志发送至复制工具,以便复制工具根据交易日志生成数据回放语句并将数据回放语句传输至第二数据库。
根据本公开的第二个方面,提供了一种数据同步方法,应用于第二数据库,方法包括:
向第一数据库发送数据同步请求,数据同步请求包括第二数据库的数据表更新情况,数据表更新情况表征第二数据库的表结构是否发生变化;
根据数据表更新情况,确定数据同步方式;以及
基于数据同步方式,将第一数据库产生的增量数据同步至第一数据表。
根据本公开的实施例,其中,根据数据表更新情况,确定数据同步方式,包括:
在确定第二数据库的表结构发生变化的情况下,确定数据同步方式为第一同步方式,第一同步方式用于将增量数据通过共享磁盘同步至第二数据库的第一数据表;
在确定第二数据库的表结构未发生变化的情况下,确定数据同步方式为第二同步方式,第二同步方式用于将增量数据通过复制工具同步至第二数据库的第一数据表。
根据本公开的实施例,其中,基于数据同步方式,将第一数据库产生的增量数据同步至第一数据表,包括:
在确定数据同步方式为第一同步方式的情况下,扫描共享磁盘并获取共享文件,共享文件是根据第一数据库在预设时段内产生的增量数据确定的,预设时段表征第一数据库执行交易操作、且第二数据库未执行交易操作的时段;
获取数据库表转换规则,数据表转换规则包括多个类型的数据库操作的转换规则;
根据数据库表转换规则和共享文件,确定与第二数据库的表结构相匹配的第二数据表;以及
将第二数据库表插入第一数据表。
根据本公开的实施例,其中,基于数据同步方式,将第一数据库产生的增量数据同步至第一数据表,还包括:
在确定数据同步方式为第二同步方式的情况下,接收来自复制工具的数据回放语句,数据回放语句用于回放第一数据库生成增量数据的操作;
执行数据回放语句,生成第三数据表;以及
将第三数据表导入第一数据表。
本公开的第三方面提供了一种数据同步装置,应用于第一数据库,装置包括:
解析模块,用于响应于接收到来自第二数据库的数据同步请求,解析数据同步请求,确定第二数据库的数据表更新情况,数据表更新情况表征第二数据库的表结构是否发生变化;
获取模块,用于获取第一数据库在预设时段内产生的增量数据,预设时段表征第一数据库执行交易操作、且第二数据库未执行交易操作的时段;
第一确定模块,用于根据数据表更新情况,确定数据同步方式;以及
第一同步模块,用于基于数据同步方式,将增量数据库同步至第二数据库。
本公开的第四方面提供了一种数据同步装置,应用于第二数据库,装置包括:
发送模块,用于向第一数据库发送数据同步请求,数据同步请求包括第二数据库的数据表更新情况,数据表更新情况表征第二数据库的表结构是否发生变化;
第二确定模块,用于根据数据表更新情况,确定数据同步方式;以及
第二同步模块,用于基于数据同步方式,将第一数据库产生的增量数据同步至第一数据表。
本公开的第五方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述数据同步方法。
本公开的第六方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述数据同步方法。
本公开的第七方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据同步方法。
本公开的实施例通过响应于接收到来自第二数据库的数据同步请求,解析数据同步请求,确定第二数据库的数据表更新情况;获取第一数据库在预设时段内产生的增量数据;根据数据表更新情况,确定数据同步方式;基于数据同步方式,将增量数据库同步至第二数据库,无需业务人员手工进行同步操作实现数据同步,降低了同步成本、减少了数据同步时间。此外,还能够避免因人工疏漏导致的数据同步错误,提高了数据同步效率,从而避免影响业务连续性。由于第一数据库通过确定第二数据库的表结构变更状况,自动确定数据同步方式,然后基于合适的数据同步方式实现数据同步,由此无论表结构是否发生变更,都无需业务人员参与。因此,提高了数据同步效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的数据同步方法的应用场景;
图2示意性示出了根据本公开实施例的应用于第一数据库的数据同步方法的流程图;
图3示意性示出了根据本公开实施例的确定数据同步方式的应用场景;
图4示意性示出了根据本公开实施例的采用第一同步方式进行数据同步的应用场景;
图5示意性示出了根据本公开实施例的采用第二同步方式进行数据同步的应用场景;
图6示意性示出了根据本公开实施例的应用于第二数据库的数据同步方法的流程图;
图7示意性示出了根据本公开实施例的应用于第一数据库的数据同步装置的结构框图;
图8示意性示出了根据本公开实施例的应用于第二数据库的数据同步装置的结构框图;以及
图9示意性示出了根据本公开实施例的适于数据同步方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
需要说明的是,本公开实施例中的数据同步方法和数据同步装置还可以用于金融领域在数据库中的交易数据同步,也可用于除金融领域之外的任意领域,本公开对数据同步方法和数据同步装置的应用领域不做限定。
在本公开的技术方案中,所涉及的数据(如包括但不仅限于用户个人信息)的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
随着人们支付方式的变化以及互联网金融的迅速发展,网上银行客户端可以为用户提供多种服务。例如,对于电话银行挂失等时效性要求非常高的交易需求,银行客户端可以提供7*24小时连续性服务。
针对例如银行客户端等应用软件的开发商,为了提供更好的服务或修复功能缺陷,需要对已经发布的应用软件的数据库进行升级和投产。为了减少应用和系统版本投产期间对客户带来的业务影响,银行等企业一般通过主数据库和备用数据库结合的方式提供服务。
在日常提供服务期间,由主数据库向用户提供服务,并将交易数据同步至备用数据库上。在主数据库升级或维护期间,将业务交易请求路由至备用数据库,由备用数据库向用户提供服务,以保证业务服务的连续性。在完成主数据库的升级或维护之后,将主数据库的升级或维护期间备用数据库产生的数据同步至主数据库,以恢复主数据库的正常服务器。
相关技术中,由于主数据库的升级或维护可能涉及数据结构层面的变更,因此,在主数据库完成升级或维护之后,通过业务人员手工将备用数据库的数据同步至主数据库。然而,由于备用数据库在系统升级或维护期间产生的交易量十分庞大,因此,业务人员需要手工执行大量同步操作以完成数据同步,导致数据同步成本高、操作时间长。
此外,数据同步操作过程中涉及的手工步骤过多,提高了因人工疏漏导致的数据同步错误,导致影响数据同步效率、影响向用户提供的业务服务连续性。
本公开的实施例提供了一种数据同步方法,应用于第一数据库,方法包括:响应于接收到来自第二数据库的数据同步请求,解析数据同步请求,确定第二数据库的数据表更新情况,数据表更新情况表征第二数据库的表结构是否发生变化;获取第一数据库在预设时段内产生的增量数据,预设时段表征第二数据库执行交易操作、且第一数据库未执行交易操作的时段;根据数据表更新情况,确定数据同步方式;以及基于数据同步方式,将增量数据库同步至第二数据库。
图1示意性示出了根据本公开实施例的数据同步方法的应用场景。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、第一数据库102和第二数据库103。终端设备101包括第一终端设备1011、第二终端设备1012和第三终端设备1013。
网络用以在终端设备101、第一数据库102和第二数据库103之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用第一终端设备1011、第二终端设备1012和第三终端设备1013中的至少一个通过网络与第一数据库102或第二数据库103交互,以接收或发送消息等。第一终端设备1011、第二终端设备1012和第三终端设备1013上可以安装有各种通讯客户端应用,例如支付类应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
第一终端设备1011、第二终端设备1012和第三终端设备1013可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
第一数据库102和第二数据库103可以是提供各种服务的服务器,例如对用户利用第一终端设备1011、第二终端设备1012和第三终端设备1013所发起的服务功能提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
例如,在日常运行期间,用户利用终端设备101,例如第一终端设备1011、第二终端设备1012或第三终端设备1013上安装的银行客户端发起业务交易。终端设备101将业务交易路由至第二数据库103,以便第二数据库103响应上述业务交易,并将产生的执行结果返回至终端设备101。与此同时,第二数据库103将执行上述业务交易期间产生的数据同步至第一数据库102。
在第二数据库升级/维护期间,用户利用终端设备101上安装的银行客户端发起业务交易。终端设备101将业务交易路由至第一数据库102,以便第一数据库102响应上述业务交易,并将产生的执行结果返回至终端设备101。此时,由于第二数据库103正处于升级/维护期间,第一数据库102无法将数据同步至第二数据库102。
在第二数据库升级/维护结束的数据同步期间,第一数据库102仍然可以接收来自终端设备101的业务交易,并将产生的执行结果返回终端设备。与此同时,第一数据库102可以将执行上述业务交易期间产生的数据同步至第二数据库103;第一数据库102还可以将第二数据库103处于升级/维护期间,第一数据库102产生的数据同步至第二数据库103。
需要说明的是,本公开实施例所提供的数据同步方法一般可以由第一数据库和第二数据库执行。相应地,本公开实施例所提供的数据同步装置一般可以设置于第一数据库和第二数据库中。本公开实施例所提供的数据同步方法也可以由与第一数据库和第二数据库类似的服务器或服务器集群执行。相应地,本公开实施例所提供的数据同步装置也可以设置于与第一数据库和第二数据库类似的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和数据库的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和数据库。
以下将基于图1描述的场景,通过图2~图5对公开实施例的应用于第一数据库的数据同步方法进行详细描述。
图2示意性示出了根据本公开实施例的应用于第一数据库的数据同步方法的流程图。
如图2所示,该方法200包括操作S210~S240。
根据本公开的实施例,第一数据库可以为主数据库的备用数据库,在主数据库进行系统升级或维护期间,应用软件的业务交易路由至第一数据库,由第一数据库提供服务。第二数据库可以为主数据库,在日常阶段,应用软件的业务交易路由至第二数据库,由第二数据库提供服务。
根据本公开的实施例,第一数据库和第二数据库包括分布式数据库,例如,Mysql数据库、Oracle数据库等。第一数据库或第二数据库可以被实现为一个数据库,也可以被实现为一个数据库集群。
在操作S210,响应于接收到来自第二数据库的数据同步请求,解析数据同步请求,确定第二数据库的数据表更新情况。
根据本公开的实施例,在第二数据库完成系统升级或维护的情况下,第二数据库可以向第一数据库发送数据同步请求,以将在系统升级/维护期间以及数据同步期间,第一数据库产生的交易数据同步至第二数据库。
根据本公开的实施例,数据同步请求中可以包括数据表更新情况。第一数据库在接收到来自第二数据库的数据同步请求之后,通过解析数据同步请求,确定第二数据库的数据表更新情况。
根据本公开的实施例,数据表更新情况表征第二数据库的表结构是否发生变化。表结构变化包括数据表的字段增加或减少、数据表之间调用关系的改变、同一交易类型中数据表数目的变化等。
例如,第二数据库在系统升级期间增加了数据校验功能,由此数据表中新增了校验字段。因此,第二数据库的表结构发生了变化,导致第一数据库的数据表信息无法直接同步至第二数据库中。
根据本公开的实施例,数据同步请求中还可以包括第二数据库开始系统升级/维护的时间,以及结束系统升级/维护的时间,以便第一数据库核对时间。
在操作S220,获取第一数据库在预设时段内产生的增量数据。
根据本公开的实施例,预设时段表征第一数据库执行交易操作、且第二数据库未执行交易操作的时段。预设时段包括第二数据库进行系统升级/维护的时段和系统升级/维护结束后数据同步的时段。
根据本公开的实施例,第二数据库在进行系统升级/维护时,由第一数据库提供服务。此时,由第一数据库接收来自应用软件的交易请求并执行交易操作,第二数据库不接收交易请求也不执行交易操作。系统升级/维护结束后进行数据同步时,由于第二数据库缺失系统升级/维护时段的交易数据,交易数据不具有连续性,因此,第二数据库仍不能提供服务,继续由第一服务器提供服务。在将系统升级/维护时段第一数据库产生的交易数据复制值第二数据库之后,第一数据库停止提供服务,第二数据库开始提供服务。
根据本公开的实施例,在系统升级/维护结束后进行数据同步期间,第一数据库可以将第二数据库进行系统升级/维护时的交易数据、以及当前数据同步期间第一数据库产生的交易数据,同步至第二数据库。在第二数据库与第一数据库的交易数据完全同步之后,将来自应用软件的交易请求切换回第二数据库。
根据本公开的实施例,增量数据可以是第一数据库在预设时段内响应来自应用软件的交易请求所产生的交易数据。
在操作S230,根据数据表更新情况,确定数据同步方式。
根据本公开的实施例,数据表更新情况包括表结构变化和表结构未发生变化。根据表结构是否发生变化对应不同的数据同步方式。具体地,表结构变化可以对应至少一种数据同步方式,表结构未变化可以对应至少一种数据同步方式,且表结构是否发生变化的数据同步方式不同。
在操作S240,基于数据同步方式,将增量数据库同步至第二数据库。
根据本公开的实施例,在根据表结构是否发生变化确定数据同步方式之后,第一数据库通过确定的数据同步方式将增量数据同步至第二数据库内。
根据本公开的实施例,将增量数据同步至第二数据库表明备用数据库内的交易数据已经全部同步到主数据库,可以将应用软件的交易请求由第一数据库切换回第二数据库,由第二数据库提供服务。
本公开的实施例通过响应于接收到来自第二数据库的数据同步请求,解析数据同步请求,确定第二数据库的数据表更新情况;获取第一数据库在预设时段内产生的增量数据;根据数据表更新情况,确定数据同步方式;基于数据同步方式,将增量数据库同步至第二数据库,无需业务人员手工进行同步操作实现数据同步,降低了同步成本、减少了数据同步时间。此外,还能够避免因人工疏漏导致的数据同步错误,提高了数据同步效率,从而避免影响业务连续性。由于第一数据库通过确定第二数据库的表结构变更状况,自动确定数据同步方式,然后基于合适的数据同步方式实现数据同步,由此无论表结构是否发生变更,都无需业务人员参与。因此,提高了数据同步效率。
图3示意性示出了根据本公开实施例的确定数据同步方式的应用场景。
如图3所示,应用场景300包括操作S330~操作S332,可以作为操作S230的一个具体实施例。
在操作S330,确定第二数据库的表结构是否发生变化。
在操作S331,确定数据同步方式为第一同步方式,第一同步方式用于将增量数据通过共享磁盘同步至第二数据库。
在操作S332,确定数据同步方式为第二同步方式,第二同步方式用于将增量数据通过复制工具同步至第二数据库。
根据本公开的实施例,第一数据库通过解析来自第二数据库的数据同步请求,可以得到第二数据库的数据表更新情况。根据数据表更新情况,可以确定第二数据库的表数据是否发生变化。
根据本公开的实施例,数据表更情况包括以下至少一种:升级日志、维护日志、配置文件或者说明文档。
根据本公开的实施例,在操作S330之后,在确定第二数据库的表结构发生变化的情况下,进入操作S331,确定数据同步方式为第一同步方式,第一同步方式用于将增量数据通过共享磁盘同步至第二数据库。在确定第二数据库的表结构未发生变化的情况下,进入操作S332,确定数据同步方式为第二同步方式,第二同步方式用于将增量数据通过复制工具同步至第二数据库。
根据本公开的实施例,共享磁盘可以被两个或多个数据库/系统访问,以获取共享磁盘内的数据。
根据本公开的实施例,共享磁盘内的文件仅由单个数据库或系统更新和写入数据,其他数据库或系统仅有读取数据的权限,不能写入数据。通过共享磁盘可以实现增量数据在第一数据库和第二数据或其他数据库之间的实时共享。
根据本公开的实施例,在第一数据库向第二数据库发送数据,以便第二数据库实现数据同步的情况下,第一数据库拥有对共享磁盘内共享数据的更新和写入权限,第二数据库仅具有实时读取共享磁盘内共享数据的权限。
根据本公开的实施例,在表结构发生变化的情况下,第二数据库和第一数据库的表结构不一致,在第二数据库正常提供服务期间,可以将与第二数据库的表结构一致的第三数据库作为备用数据库,以便同步正常提供服务期间第二数据库产生的交易数据。
根据本公开的实施例,第三数据库可以为新构建的数据库,还可以为对第一数据库进行表结构改造之后的数据库。
根据本公开的实施例,在第二数据库未进行系统维护/升级之前,由第二数据库正常提供服务,此时,第二数据库向第一数据库进行数据同步方式与第二同步方式类似,由第一数据库通过复制工具从第二数据库复制数据。
在第二数据库已经完成系统维护/升级、以及数据同步之后,由第二数据库正常提供服务,此时,与第二同步方式类似,由第三数据库通过复制工具从第二数据库复制数据,以减少数据同步期间由于表结构不一致导致的计算资源浪费。
根据本公开的实施例,基于数据同步方式,将增量数据库同步至第二数据库包括以下步骤。
在确定数据同步方式为第一同步方式的情况下,通过触发器将增量数据存储至临时表。
将临时表以文件形式导出,得到共享文件,共享文件的命名符合预设形式。
将共享文件写入共享磁盘,以便第二数据库从共享磁盘读取共享文件。
根据本公开的实施例,增量数据可以包括插入、删除和更新。在确定数据同步方式为第一同步方式的情况下,可以通过一个或多个触发器获取插入、删除和更新的数据。
根据本公开的实施例,触发器包括多个类型。例如,插入触发器、删除触发器、更新触发器。
例如,通过插入触发器提取插入(insert)数据,通过删除触发器获取删除(delete)数据,通过更新触发器获取更新(update)数据。或者,将插入触发器、删除触发器、更新触发器合并为一个触发器,以获取增量数据。
根据本公开的实施例,第一数据库可以建立临时表和基本服务更新表。触发器通过自身的Trigger功能捕获预设时段内第一数据库产生的涉及基本服务的数据,并将其存储至基本服务更新表内。然后根据基本服务更新表内基本服务的更新前后值插入临时表。
根据本公开的实施例,增量数据包括基本服务产生的交易数据,不包括非基本服务产生的数据。
根据本公开的实施例,基本服务包括面向应用软件的服务,例如,用户通过应用软件产生的交易数据、查询数据、账户创建操作等。非基本服务包括数据库内部的数据回滚等操作。
根据本公开的实施例,第一数据库将非基本服务更新表设置为SOFTFENCE保护,以保证应用软件不能更新上述非基本服务数据。
根据本公开的实施例,第一数据库可以将共享文件写入共享磁盘,第二数据库仅能从共享磁盘读取共享文件。
根据本公开的实施例,预设形式包括:共享文件的文件名开头为固定字符串。
例如,第一数据库的标识为B,第二数据库的标识为A,第一数据库B可以向共享磁盘写入共享文件,固定字符串可以为TRSBTOA,表明共享磁盘内的文件由第一数据库写入,被第二数据库读取。
根据本公开的实施例,为了避免共享磁盘内出现数据更新错乱的情况,共享文件在第一数据库内建立有第一类文件和第二类文件,第一类文件用于管理预设文件名开头的文件,第二类文件用于管理第一类文件。
例如,第一类文件可以为ALIAS,用于管理文件名开头为TRSBTOA的文件,第二类文件可以为UCAT形式的文件。
根据本公开的实施例,将共享文件以预设形式命名,保证以固定字符串为文件名开头的共享文件可以被资源访问控制程序(Resource Access Control Facility,RACF)授权,避免共享磁盘内出现更新错乱的现象,影响开发效率。
根据本公开的实施例,第二类文件与共享文件一起存储至共享磁盘内,且第二类文件与第二数据库连接,保证第一数据库和第二数据的日志准确一致。例如,第二数据库仅能对共享磁盘进行只读访问,其UCAT与文件一同存放在共享卷上,并将其CONNECT到系统A,保证CATALOG的准确一致。
以上实施例仅作示意性说明,第一同步方式包括多种实现方式,只要是通过共享磁盘实现的数据同步即可。例如,将临时表存储至共享磁盘,从共享磁盘中获取临时表进行数据同步。
图4示意性示出了根据本公开实施例的采用第一同步方式进行数据同步的应用场景。
如图4所示,该应用场景400包括增量数据401、触发器402、临时表403、共享文件404、共享磁盘405和第二数据库406。
根据本公开的实施例,第一数据库获取增量数据401,利用触发器402将增量数据401存储至临时表403,并将临时表以预设形式的文件进行到导出,得到共享文件404。
根据本公开的实施例,在生成共享文件404之后,第一数据库将共享文件404写入共享磁盘405,以便第二数据库406从共享磁盘内读取共享文件404。
本公开的实施例通过共享磁盘,保证由两个(或多个)系统共享同一份数据。由于共享磁盘采用单个数据库负责写入和更新,其他数据库只读的共享方式,因此,针对数据同步这种时效性要求高、更新频繁的共享数据场景,通过共享磁盘可以提高数据同步效率,减少数据交互次数。
根据本公开的实施例,基于数据同步方式,将增量数据库同步至第二数据库,还包括以下步骤。
在确定数据同步方式为第二同步方式的情况下,获取与增量数据对应的交易日志。
将交易日志发送至复制工具,以便复制工具根据交易日志生成数据回放语句并将数据回放语句传输至第二数据库。
根据本公开的实施例,在表结构未发生变化的情况下,复制工具可以直接将第一数据库中未发生表结构变化的增量数据同步至第二数据库,在此过程中无需进行表数据转换。
根据本公开的实施例,复制工具本质上是基于日志读取、交易回放的异步复制技术。由此,在确定表结构未发生变化的情况下,第一数据库确定与增量数据对应的交易日志,并将交易直至传输至复制工具。复制工具可以根据交易日志生成数据回放语句,并将数据回放语句传输至第二数据库,以便第二数据库根据数据回放语句复现交易数据,实现数据同步。
根据本公开的实施例,复制工具包括Q-REP工具,在“同城双活”体系中扮演着十分重要的角色,Q-REP的正常运行是保证数据一致性及完整性的必要条件之一。
以上实施例仅作示意性说明,第二同步方式包括多种实现方式,只要是通过数据回放技术实现的数据同步即可。
图5示意性示出了根据本公开实施例的采用第二同步方式进行数据同步的应用场景。
如图5所示,该应用场景500包括增量数据501、交易日志502、复制工具503和第二数据库504。
根据本公开的实施例,第一数据库获取增量数据501,并确定与增量数据501对应的交易日志502。在确定交易日志502之后,将并将交易日志502传输至复制工具503。复制工具503根据交易日志生成数据回放语句,并将数据回放语句传输至第二数据库504。
根据本公开的实施例,第二数据库504通过执行数据回放语句实现异步复制。
以下将基于图1描述的场景,通过图6对公开实施例的应用于第二数据库的数据同步方法进行详细描述。
图6示意性示出了根据本公开实施例的应用于第二数据库的数据同步方法的流程图。
如图6所示,该方法600包括操作S610~操作S630。
在操作S610,向第一数据库发送数据同步请求,数据同步请求包括第二数据库的数据表更新情况。
在操作S620,根据数据表更新情况,确定数据同步方式。
在操作S630,基于数据同步方式,将第一数据库产生的增量数据同步至第一数据表。
根据本公开的实施例,数据表更新情况表征第二数据库的表结构是否发生变化。
根据本公开的实施例,第二数据库在完成系统维护/升级之后,可以通过向第一数据库发送数据同步请求,以便第一数据库开始向第二数据库进行数据同步。
根据本公开的实施例,第二数据库根据系统维护/升级所产生的数据表更新情况确定数据同步方式,以确定如何从第一数据库获取增量数据。
根据本公开的实施例,增量数据是第一数据库在预设时段内产生的。预设时段表征第一数据库执行交易操作、且第二数据库未执行交易操作的时段。预设时段包括第二数据库进行系统升级/维护的时段和系统升级/维护结束后数据同步的时段。
本公开的实施例通过向第一数据库发送数据同步请求,数据同步请求包括第二数据库的数据表更新情况,数据表更新情况表征第二数据库的表结构是否发生变化;根据数据表更新情况,确定数据同步方式;基于数据同步方式,将第一数据库产生的增量数据同步至第一数据表,无需业务人员手工进行同步操作,即可实现数据同步,降低了同步成本、减少了数据同步时间;避免了因人工疏漏导致的数据同步错误,提高了数据同步效率,避免影响业务连续性。
此外,第二数据库根据自身的表结构变更状况,自动确定数据同步方式,然后基于合适的数据同步方式从不同的途径获取增量数据,以实现数据同步。无论表结构是否发生变更,第二数据库侧的数据同步都无需业务人员参与,因此,提高了数据同步效率。
根据本公开的实施例,根据数据表更新情况,确定数据同步方式,包括以下步骤。
在确定第二数据库的表结构发生变化的情况下,确定数据同步方式为第一同步方式,第一同步方式用于将增量数据通过共享磁盘同步至第二数据库的第一数据表;
在确定第二数据库的表结构未发生变化的情况下,确定数据同步方式为第二同步方式,第二同步方式用于将增量数据通过复制工具同步至第二数据库的第一数据表。
作为一种具体实施例,共享磁盘内可以存储与增量数据对应的共享文件。
根据本公开的实施例,共享磁盘可以被两个或多个数据库系统访问,以获取共享磁盘内的数据。由于第二数据库为待进行数据同步的数据库,因此,第二数据库仅能从共享磁盘内获取与增量数据对应的共享文件。
根据本公开的实施例,共享磁盘可以在两个或多个数据库之间实现55KM文件的实时共享。
根据本公开的实施例,基于数据同步方式,将第一数据库产生的增量数据同步至第一数据表包括以下步骤。
在确定数据同步方式为第一同步方式的情况下,扫描共享磁盘并获取共享文件,共享文件是根据第一数据库在预设时段内产生的增量数据确定的,预设时段表征第一数据库执行交易操作、且第二数据库未执行交易操作的时段;
获取数据库表转换规则,数据表转换规则包括多个类型的数据库操作的转换规则;
根据数据库表转换规则和共享文件,确定与第二数据库的表结构相匹配的第二数据表;以及
将第二数据库表插入第一数据表。
根据本公开的实施例,在确定数据同步方式为通过共享磁盘的第一同步方式时,第二数据库可以定时扫描共享磁盘,以确定共享磁盘内是否已经存入共享文件。
例如,第二数据库可以通过轮询线程定时扫描共享磁盘,在扫描到共享磁盘内存在共享文件的情况下,获取共享文件。
或者,第二数据库可以通过启动检测组件,实时检测共享磁盘,在扫描到共享磁盘内存在共享文件的情况下,获取共享文件。
根据本公开的实施例,共享文件是第一数据库通过第一同步方式向共享磁盘内写入的。其中,共享文件是根据第一数据库在预设时段内产生的增量数据确定的,例如共享文件可以为预设文件名形式的增量数据。
根据本公开的实施例,增量数据是在预设时段内产生的,预设时段表征第一数据库执行交易操作、且第二数据库未执行交易操作的时段。例如,预设时段为第二数据库系统升级/维护期间、以及系统升级/维护结束后进行数据同步期间。
根据本公开的实施例,由于第二数据库的表结构发生变化,因此,第一数据库和第二数据库之间的表结果不同,无法直接进行数据同步,需要通过数据库表转换规则进行表数据的转换。
根据本公开的实施例,数据表转换规则包括多个类型的数据库操作的转换规则。其中,数据库操作的操作类型包括新增字段、删除字段、修改字段和重命名字段。
对于修改字段的操作,数据库表内对应的数据值的字段名可能发生变化;对于新增字段的操作,第一数据库的数据表未发生改变,数据表内不存在新增字段,也不存在新增字段的数据值;对于删除字段的操作,第一数据库的数据表未发生改变,数据表内仍然存在删除字段,在进行数据同步时,删除字段无法插入值第二数据库的数据表内;对于重命名字段,数据表内的重命名的数据值虽然没有改变,但是第一数据库无法从数据表内确定哪一个为第二数据库修改前的字段。
根据本公开的实施例,数据表转换规则可以根据第二数据库的数据表更新情况确定。数据表更新情况包括数据类型,以及发生变更的具体字段名,可以根据数据类型和具体字段名调用数据表转换规则。
根据本公开的实施例,数据表转换规则包括数据库的操作类型,操作类型具体可以细分为一个或多个处理类型,每个处理类型对应一种处理方式。
例如,操作类型为新增字段时,处理类型包括表结构新增字段、新增字段赋常值和新增字段赋表内其他字段值。
操作类型为删除字段时,处理类型包括表结构删除字段。
操作类型为修改字段时,处理类型包括表结构修改字段类型、表结构修改字段长度变长和表结构修改字段长度变短。
操作类型为重命名字段时,处理类型字段重命名、重命名字段赋常值和重命名字段赋表内其他字段值。
根据本公开的实施例,针对处理类型为表结构新增字段,处理方式为:将新增字段导出时,直接写WITH DEFAULT字段。例如,针对第一数据库的数据表A,仅包括字段COL1和COL2。在确定表结构变化为新增字段COL3 CHAR(8)NOT NULL,导出文件时选择“SELECTCOL1,COL2,CHAR(REPEAT(”,8))AS COL3 FROM A”;COL3相当于写入8个空格。
针对处理类型为新增字段赋常值,处理方式为:将新增字段导出时,直接赋常值。例如,新增字段COL3 DECIMAL(7,0)NOT NULL WITH DEFAULT 0,“SELECT COL1,COL2,COL3FROM A”;新增COL3都赋值为默认值0。
针对处理类型为新增字段赋表内其他字段值,处理方式为:将新增字段导出时,将其他字段作为新增字段。例如,新增字段COL3,将COL2赋值给COL3,导出文件时选择“SELECTCOL1,COL2,COL2 AS COL3FROM A”。
针对处理类型为表结构修改字段类型,处理方式为:通过数据库转换函数将原来的字段修改为目标字段,如,利用SQL函数。例如,将COL2修改为DATE型,“SELECT COL1,DATE(COL2)AS COL2 FROM A”。
针对处理类型为表结构修改字段长度变长,处理方式为:修改字段长度变长,则根据需要的规则左右补齐。例如,COL2变长,左边补0,“SELECT COL1,RIGHT('00000'+CAST(COL2)FROM A”。
针对处理类型为表结构修改字段长度变短,处理方式为:修改字段长度变短,则使用substr等函数截断需要字段。例如,COL2从第三位开始截取一位。“SELECT COL1,SUBSTR(COL2,3,1)FROM A”。
针对处理类型为表结构删除字段,处理方式为:选择记录表字段时候直接将删除字段丢弃。例如,删除COL2,语句为“SELECT COL1 FROM A”。
针对处理类型为字段重命名,处理方式为:将旧表导出时,直接把老的字段名修改为新的字段名。例如,将COL2重命名为COL3,将COL2赋值给COL3,导出文件时选择“SELECTCOL1,COL2 AS COL3 FROM A”。
针对处理类型为重命名字段赋常值,处理方式为:将旧表导出时,直接把老的字段名修改为新的字段名,直接赋常值。例如,将COL2重命名为COL3,且赋值8个空格,“SELECTCOL1,CHAR(REPEAT(”,8))AS COL3 FROM A”。
针对处理类型为重命名字段赋表内其他字段值,处理方式为:将旧表导出时,直接把老的字段名修改为新的字段名,直接赋其他字段值。例如,将COL2重命名为COL3,且将COL1赋值给COL3,导出文件时选择“SELECT COL1,COL1 AS COL3 FROM A”。
根据本公开的实施例,在获取数据库表转换规则和共享文件之后,利用数据库表转换规则内的处理方式对共享文件进行表结构转换,即生成与第二数据库的表结构相匹配的第二数据库表。
根据本公开的实施例,第二数据库在进行表结构变化后,将历史数据转换为适应转换后的表结构的数据,生成了第一数据表。在生成第二数据库表之后,将第二数据库表插入第一数据表,即可实现第二数据库内历史数据和第二数据库停止交易期间增量数据的同步。
根据本公开的实施例,基于数据同步方式,将第一数据库产生的增量数据同步至第一数据表,还包括以下步骤。
在确定数据同步方式为第二同步方式的情况下,接收来自复制工具的数据回放语句,数据回放语句用于回放第一数据库生成增量数据的操作;
执行数据回放语句,生成第三数据表;以及
将第三数据表导入第一数据表。
根据本公开的实施例,在确定数据同步方式为通过复制工具的第二同步方式时,第二数据库可以通过接口接收来自复制工具产生的数据回放语句。
根据本公开的实施例,数据回放语句包括第一数据库生成增量数据库的全部操作。例如,第一数据库中生成增量数据的操作顺序为“查询-创建用户-与用户S交易-与用户T交易”。根据上述操作顺序,生成数据回放语句包括“查询操作的数据库语句-创建用户的数据库语句-与用户S交易的数据库语句-与用户T交易的数据库语句”,按照上述数据回放语句的顺序执行之后,第二数据库内生成与上述数据回放语句对应的第三数据表。将第三数据表插入第一数据表即可实现第二数据库内的数据同步。
根据本公开的实施例,由于在系统维护/升级的期间,第一数据库产生的交易数据的数据量十分庞大,为了提高数据同步效率。在将交易请求由第一数据库切换回第二数据库之前的预定时长,第二数据库开始从复制工具获取执行语句,以便开始数据同步。例如,提前40min,启动反向复制工具,以便第二数据库从第一数据库复制数据。在数据追过停基本服务交易时间点时,将交易请求由第一数据库切换回第二数据库。
图7示意性示出了根据本公开实施例的应用于第一数据库的数据同步装置的结构框图。
如图7所示,该实施例的应用于第一数据库的数据同步装置700包括解析模块710、获取模块720、第一确定模块730和第一同步模块740。
解析模块710,用于响应于接收到来自第二数据库的数据同步请求,解析数据同步请求,确定第二数据库的数据表更新情况,数据表更新情况表征第二数据库的表结构是否发生变化。在一实施例中,解析模块710,可以用于执行前文描述的操作S210,在此不再赘述。
获取模块720,用于获取第一数据库在预设时段内产生的增量数据,预设时段表征第一数据库执行交易操作、且第二数据库未执行交易操作的时段。在一实施例中,获取模块720可以用于执行前文描述的操作S220,在此不再赘述。
第一确定模块730,用于根据数据表更新情况,确定数据同步方式。在一实施例中,第一确定模块730可以用于执行前文描述的操作S230,在此不再赘述。
第一同步模块740,用于基于数据同步方式,将增量数据库同步至第二数据库。在一实施例中,第一同步模块740可以用于执行前文描述的操作S240,在此不再赘述。
根据本公开的实施例,第一确定模块730包括第一确定单元和第二确定单元。
第一确定单元用于在确定第二数据库的表结构发生变化的情况下,确定数据同步方式为第一同步方式,第一同步方式用于将增量数据通过共享磁盘同步至第二数据库。在一实施例中,第一确定单元可以用于执行前文描述的操作S331,在此不再赘述。
第二确定单元用于在确定第二数据库的表结构未发生变化的情况下,确定数据同步方式为第二同步方式,第二同步方式用于将增量数据通过复制工具同步至第二数据库。在一实施例中,第二确定单元可以用于执行前文描述的操作S332,在此不再赘述。
根据本公开的实施例,第一同步模块740包括第一同步单元、第二同步单元和第三同步单元。
第一同步单元用于在确定数据同步方式为第一同步方式的情况下,通过触发器将增量数据存储至临时表。
第二同步单元用于将临时表以文件形式导出,得到共享文件,共享文件的命名符合预设形式。
第三同步单元用于将共享文件写入共享磁盘,以便第二数据库从共享磁盘读取共享文件。
根据本公开的实施例,第一同步模块740包括第四同步单元和第五同步单元。
第四同步单元用于在确定数据同步方式为第二同步方式的情况下,获取与增量数据对应的交易日志。
第五同步单元用于将交易日志发送至复制工具,以便复制工具根据交易日志生成数据回放语句并将数据回放语句传输至第二数据库。
根据本公开的实施例,解析模块710、获取模块720、第一确定模块730和第一同步模块740中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
根据本公开的实施例,解析模块710、获取模块720、第一确定模块730和第一同步模块740中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,解析模块710、获取模块720、第一确定模块730和第一同步模块740中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的应用于第二数据库的数据同步装置的结构框图。
如图8所示,该实施例的应用于第二数据库的数据同步装置800包括发送模块810、第二确定模块820和第二同步模块830。
发送模块810,用于向第一数据库发送数据同步请求,数据同步请求包括第二数据库的数据表更新情况,数据表更新情况表征第二数据库的表结构是否发生变化。在一实施例中,发送模块810,可以用于执行前文描述的操作S610,在此不再赘述。
第二确定模块820,用于根据数据表更新情况,确定数据同步方式。在一实施例中,第二确定模块820可以用于执行前文描述的操作S620,在此不再赘述。
第二同步模块830,用于基于数据同步方式,将第一数据库产生的增量数据同步至第一数据表。在一实施例中,第二同步模块830可以用于执行前文描述的操作S630,在此不再赘述。
根据本公开的实施例,第二确定模块820包括第三确定单元和第四确定单元。
第三确定单元用于在确定第二数据库的表结构发生变化的情况下,确定数据同步方式为第一同步方式,第一同步方式用于将增量数据通过共享磁盘同步至第二数据库的第一数据表。
第四确定单元用于在确定第二数据库的表结构未发生变化的情况下,确定数据同步方式为第二同步方式,第二同步方式用于将增量数据通过复制工具同步至第二数据库的第一数据表。
根据本公开的实施例,第二同步模块830包括第六同步单元、第七同步单元、第八同步单元和第九同步单元。
第六同步单元用于在确定数据同步方式为第一同步方式的情况下,扫描共享磁盘并获取共享文件,共享文件是根据第一数据库在预设时段内产生的增量数据确定的,预设时段表征第一数据库执行交易操作、且第二数据库未执行交易操作的时段。
第七同步单元用于获取数据库表转换规则,数据表转换规则包括多个类型的数据库操作的转换规则。
第八同步单元用于根据数据库表转换规则和共享文件,确定与第二数据库的表结构相匹配的第二数据表。
第九同步单元用于将第二数据库表插入第一数据表。
根据本公开的实施例,第二同步模块830还包括第十同步单元、第十一同步单元和第十二同步单元。
第十同步单元用于在确定数据同步方式为第二同步方式的情况下,接收来自复制工具的数据回放语句,数据回放语句用于回放第一数据库生成增量数据的操作。
第十一同步单元用于执行数据回放语句,生成第三数据表。
第十二同步单元用于将第三数据表导入第一数据表。
根据本公开的实施例,发送模块810、第二确定模块820和第二同步模块830中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
根据本公开的实施例,发送模块810、第二确定模块820和第二同步模块830中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,发送模块810、第二确定模块820和第二同步模块830中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图9示意性示出了根据本公开实施例的适于数据同步方法的电子设备的方框图。
如图9所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。电子设备900还可以包括连接至输入/输出I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供上述方法。
在该计算机程序被处理器901执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (13)
1.一种数据同步方法,应用于第一数据库,所述方法包括:
响应于接收到来自第二数据库的数据同步请求,解析所述数据同步请求,确定所述第二数据库的数据表更新情况,所述数据表更新情况表征所述第二数据库的表结构是否发生变化;
获取所述第一数据库在预设时段内产生的增量数据,所述预设时段表征所述第一数据库执行交易操作、且所述第二数据库未执行交易操作的时段;
根据所述数据表更新情况,确定数据同步方式;以及
基于所述数据同步方式,将所述增量数据库同步至所述第二数据库。
2.根据权利要求1所述的方法,其中,所述根据所述数据表更新情况,确定数据同步方式,包括:
在确定所述第二数据库的表结构发生变化的情况下,确定数据同步方式为第一同步方式,所述第一同步方式用于将所述增量数据通过共享磁盘同步至所述第二数据库;
在确定所述第二数据库的表结构未发生变化的情况下,确定数据同步方式为第二同步方式,所述第二同步方式用于将所述增量数据通过复制工具同步至所述第二数据库。
3.根据权利要求2所述的方法,其中,所述基于所述数据同步方式,将所述增量数据库同步至所述第二数据库,包括:
在确定所述数据同步方式为第一同步方式的情况下,通过触发器将所述增量数据存储至临时表;
将所述临时表以文件形式导出,得到共享文件,所述共享文件的命名符合预设形式;
将所述共享文件写入共享磁盘,以便所述第二数据库从所述共享磁盘读取所述共享文件。
4.根据权利要求2所述的方法,其中,所述基于所述数据同步方式,将所述增量数据库同步至所述第二数据库,还包括:
在确定所述数据同步方式为第二同步方式的情况下,获取与所述增量数据对应的交易日志;
将所述交易日志发送至所述复制工具,以便所述复制工具根据所述交易日志生成数据回放语句并将所述数据回放语句传输至所述第二数据库。
5.一种数据同步方法,应用于第二数据库,所述方法包括:
向第一数据库发送数据同步请求,所述数据同步请求包括所述第二数据库的数据表更新情况,所述数据表更新情况表征所述第二数据库的表结构是否发生变化;
根据所述数据表更新情况,确定数据同步方式;以及
基于所述数据同步方式,将所述第一数据库产生的增量数据同步至第一数据表。
6.根据权利要求5所述的方法,其中,所述根据所述数据表更新情况,确定数据同步方式,包括:
在确定所述第二数据库的表结构发生变化的情况下,确定数据同步方式为第一同步方式,所述第一同步方式用于将所述增量数据通过共享磁盘同步至所述第二数据库的第一数据表;
在确定所述第二数据库的表结构未发生变化的情况下,确定数据同步方式为第二同步方式,所述第二同步方式用于将所述增量数据通过复制工具同步至所述第二数据库的第一数据表。
7.根据权利要求6所述的方法,其中,所述基于所述数据同步方式,将所述第一数据库产生的增量数据同步至第一数据表,包括:
在确定所述数据同步方式为第一同步方式的情况下,扫描共享磁盘并获取共享文件,所述共享文件是根据所述第一数据库在预设时段内产生的增量数据确定的,所述预设时段表征所述第一数据库执行交易操作、且所述第二数据库未执行交易操作的时段;
获取数据库表转换规则,所述数据表转换规则包括多个类型的数据库操作的转换规则;
根据所述数据库表转换规则和所述共享文件,确定与所述第二数据库的表结构相匹配的第二数据表;以及
将所述第二数据库表插入所述第一数据表。
8.根据权利要求6所述的方法,其中,所述基于所述数据同步方式,将所述第一数据库产生的增量数据同步至第一数据表,还包括:
在确定所述数据同步方式为第二同步方式的情况下,接收来自复制工具的数据回放语句,所述数据回放语句用于回放所述第一数据库生成所述增量数据的操作;
执行所述数据回放语句,生成第三数据表;以及
将所述第三数据表导入所述第一数据表。
9.一种数据同步装置,应用于第一数据库,所述装置包括:
解析模块,用于响应于接收到来自第二数据库的数据同步请求,解析所述数据同步请求,确定所述第二数据库的数据表更新情况,所述数据表更新情况表征所述第二数据库的表结构是否发生变化;
获取模块,用于获取所述第一数据库在预设时段内产生的增量数据,所述预设时段表征所述第一数据库执行交易操作、且所述第二数据库未执行交易操作的时段;
第一确定模块,用于根据所述数据表更新情况,确定数据同步方式;以及
第一同步模块,用于基于所述数据同步方式,将所述增量数据库同步至所述第二数据库。
10.一种数据同步装置,应用于第二数据库,所述装置包括:
发送模块,用于向第一数据库发送数据同步请求,所述数据同步请求包括所述第二数据库的数据表更新情况,所述数据表更新情况表征所述第二数据库的表结构是否发生变化;
第二确定模块,用于根据所述数据表更新情况,确定数据同步方式;以及
第二同步模块,用于基于所述数据同步方式,将所述第一数据库产生的增量数据同步至第一数据表。
11.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~8中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~8中任一项所述的方法。
13.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310284059.7A CN116244384A (zh) | 2023-03-22 | 2023-03-22 | 数据同步方法、数据同步装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310284059.7A CN116244384A (zh) | 2023-03-22 | 2023-03-22 | 数据同步方法、数据同步装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116244384A true CN116244384A (zh) | 2023-06-09 |
Family
ID=86626102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310284059.7A Pending CN116244384A (zh) | 2023-03-22 | 2023-03-22 | 数据同步方法、数据同步装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116244384A (zh) |
-
2023
- 2023-03-22 CN CN202310284059.7A patent/CN116244384A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920698B (zh) | 一种数据同步方法、装置、系统、介质及电子设备 | |
CN110647579A (zh) | 数据同步方法及装置、计算机设备与可读介质 | |
CA2831381C (en) | Recovery of tenant data across tenant moves | |
CN103514223A (zh) | 一种数据仓库数据同步方法和系统 | |
CN105472045A (zh) | 数据库迁移的方法和装置 | |
CN112699151B (zh) | 数据处理方法、装置、设备以及介质 | |
CN114356921A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN115757616A (zh) | 一种基于二进制日志的数据一致性校验方法、装置及介质 | |
US20200364241A1 (en) | Method for data synchronization between a source database system and target database system | |
CN114281803A (zh) | 数据迁移方法、装置、设备、介质和程序产品 | |
US11522975B2 (en) | Double persistence layer using an in-memory map | |
CN115687503A (zh) | 数据库间的数据同步方法、装置、设备及存储介质 | |
US10545952B2 (en) | Multitenant architecture for prior period adjustment processing | |
US20180165339A1 (en) | Delta Replication | |
US11556519B2 (en) | Ensuring integrity of records in a not only structured query language database | |
CN110852701A (zh) | 产品需求管理方法、装置和系统 | |
CN116069725A (zh) | 文件迁移方法、装置、设备、介质和程序产品 | |
CN116244384A (zh) | 数据同步方法、数据同步装置、电子设备及存储介质 | |
CN115269352A (zh) | 数据库性能确定方法及装置、电子设备和存储介质 | |
CN113568892A (zh) | 一种基于内存计算对数据源进行数据查询的方法和设备 | |
CN112308508A (zh) | 一种信息统一管理系统 | |
CN113971007B (zh) | 信息处理方法、装置、电子设备及介质 | |
CN115033573A (zh) | 数据核对方法、装置、电子设备和介质 | |
Utama et al. | E-Government Integration of Sidoarjo Regency using Service Oriented Architecture (SOA) | |
CN117971804A (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 |