CN112231409A - 数据库同步的初始化装载方法、装置、设备和存储介质 - Google Patents
数据库同步的初始化装载方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112231409A CN112231409A CN202011144072.5A CN202011144072A CN112231409A CN 112231409 A CN112231409 A CN 112231409A CN 202011144072 A CN202011144072 A CN 202011144072A CN 112231409 A CN112231409 A CN 112231409A
- Authority
- CN
- China
- Prior art keywords
- data
- synchronization
- source
- service
- 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.)
- Granted
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 45
- 238000003860 storage Methods 0.000 title claims abstract description 30
- 230000001360 synchronised effect Effects 0.000 claims abstract description 75
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000004458 analytical method Methods 0.000 claims abstract description 20
- 238000011084 recovery Methods 0.000 claims abstract description 20
- 239000000725 suspension Substances 0.000 claims abstract description 7
- 238000004806 packaging method and process Methods 0.000 claims description 17
- 238000005538 encapsulation Methods 0.000 claims description 9
- 238000005096 rolling process Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 abstract description 7
- 238000003780 insertion Methods 0.000 abstract 1
- 230000037431 insertion Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 7
- 238000009826 distribution Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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
- G06F16/273—Asynchronous replication or reconciliation
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
本公开实施例公开了一种数据库同步的初始化装载方法、装置、设备和存储介质。该方法包括:获取源端数据库中日志的当前活动SCN,并向源端数据同步服务发送同步暂停请求,以控制源端数据同步服务在当前活动SCN处暂停日志解析操作;将源端数据库中待装载的表数据封装为源端数据同步服务对应的目标数据格式,并将封装后的待装载的表数据插入源端数据同步服务对应的同步文件中;向源端数据同步服务发送同步恢复请求,以使源端数据同步服务将同步文件发送至目标端数据库。实现了将待装载的表数据插入数据同步的同步文件中,从而利用数据库中增量数据的同步机制,将源端数据库中待装载的表数据同步至目标端数据库。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据库同步的初始化装载方法、装置、设备和存储介质。
背景技术
利用数据同步工具进行数据库的数据实时同步的过程包含三个阶段:第一阶段进行存量数据的初始化装载,获得数据同步的基础点;第二阶段以初始化数据装载建立的同步基础点为基准进行增量数据同步;第三阶段定期对数据同步的源端数据和目标数据进行比对校验。其中,第一阶段需要将源端数据库中的大量存量数据装载到目标端数据库,同时要求不影响上层业务的运行。
目前,初始化装载的实现方式主要有:对源端数据库加锁,然后使用数据库接口将全部的存量数据导出,装载到目标端数据库;或者,不对源端数据库加锁,而是在源端数据库中建立辅助表和映射表,以将待装载的表数据完整复制至映射表,从而利用映射表来实现数据库的初始化装载。
但是,如果涉及到待装载的表数据的数量多、数据量大,源端数据库加锁的方式,会因无法访问源端数据库而导致上层应用长时间无法运行。而建立映射表的方式,虽然避免了对源端数据库加锁,但是其实现逻辑复杂,且会生成大量日志数据,不仅占用大量的源端数据库的存储空间资源,而且会给源端日志分析程序带来额外压力,也会因为清理映射表而存在清除目标端数据库的风险。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据库同步的初始化装载方法、装置、设备和存储介质。
第一方面,本公开提供了一种数据库同步的初始化装载方法,包括:
获取源端数据库中日志的当前活动SCN,并向源端数据同步服务发送同步暂停请求;其中,所述同步暂停请求中包含所述当前活动SCN,且所述同步暂停请求用于控制所述源端数据同步服务在所述当前活动SCN处暂停日志解析操作;
从源端数据库中查询待装载的表数据,并将所述待装载的表数据封装为所述源端数据同步服务对应的目标数据格式,且将封装后的所述待装载的表数据插入所述源端数据同步服务对应的同步文件中;
向所述源端数据同步服务发送同步恢复请求,以使所述源端数据同步服务继续从所述当前活动SCN进行日志解析,并将所述同步文件发送至目标端数据库。
在一些实施例中,所述将所述待装载的表数据封装为所述源端数据同步服务对应的目标数据格式,且将封装后的所述待装载的表数据插入所述源端数据同步服务对应的同步文件中包括:
基于预设数据量,将所述待装载的表数据封装为所述目标数据格式的多组数据;
将所述多组数据顺序追加至所述同步文件的末尾。
在一些实施例中,在所述将所述多组数据顺序追加至所述同步文件的末尾之后,所述方法还包括:
为所述多组数据中的每组数据设置相同的事件标识,且所述事件标识包含所述当前活动SCN。
在一些实施例中,在所述获取源端数据库中日志的当前活动SCN之前,所述方法还包括:
与所述源端数据库建立连接,并开启当前活动事务;
在所述将封装后的所述待装载的表数据插入所述源端数据同步服务对应的同步文件中之后,所述方法还包括:
回滚所述当前活动事务,并断开与所述源端数据库的连接。
在一些实施例中,在所述获取源端数据库中日志的当前活动SCN之前,所述方法还包括:
向所述源端数据同步服务发送服务启动请求,以触发启动所述源端数据同步服务;
在所述与所述源端数据库建立连接,并开启当前活动事务之后,所述方法还包括:
若所述源端数据库中不存在外部应用的业务信息,则基于所述源端数据同步服务对应的数据信息,创建一条业务数据。
在一些实施例中,在所述向所述源端数据同步服务发送同步恢复请求之前,所述方法还包括:
将预设操作信息封装至所述同步文件中。
在一些实施例中,所述预设操作信息包括TRUNCATE操作信息或者DELETE操作信息,且所述预设操作信息置于所述封装后的所述待装载的表数据之前。
第二方面,本公开提供了一种数据库同步的初始化装载装置,该装置包括:
同步暂停请求发送模块,用于获取源端数据库中日志的当前活动SCN,并向源端数据同步服务发送同步暂停请求;其中,所述同步暂停请求中包含所述当前活动SCN,且所述同步暂停请求用于控制所述源端数据同步服务在所述当前活动SCN处暂停日志解析操作;
表数据封装模块,用于从源端数据库中查询待装载的表数据,并将所述待装载的表数据封装为所述源端数据同步服务对应的目标数据格式,且将封装后的所述待装载的表数据插入所述源端数据同步服务对应的同步文件中;
同步恢复请求发送模块,用于向所述源端数据同步服务发送同步恢复请求,以使所述源端数据同步服务继续从所述当前活动SCN进行日志解析,并将所述同步文件发送至目标端数据库。
在一些实施例中,表数据封装模块具体用于:
基于预设数据量,将所述待装载的表数据封装为所述目标数据格式的多组数据;
将所述多组数据顺序追加至所述同步文件的末尾。
在一些实施例中,表数据封装模块还用于:
在所述将所述多组数据顺序追加至所述同步文件的末尾之后,为所述多组数据中的每组数据设置相同的事件标识,且所述事件标识包含所述当前活动SCN。
在一些实施例中,该装置还包括事务处理模块,用于:
在所述获取源端数据库中日志的当前活动SCN之前,所述方法还包括:
与所述源端数据库建立连接,并开启当前活动事务;
在所述将封装后的所述待装载的表数据插入所述源端数据同步服务对应的同步文件中之后,所述方法还包括:
回滚所述当前活动事务,并断开与所述源端数据库的连接。
在一些实施例中,该装置还包括服务启动请求发送模块,用于:
在所述获取源端数据库中日志的当前活动SCN之前,向所述源端数据同步服务发送服务启动请求,以触发启动所述源端数据同步服务;
在所述与所述源端数据库建立连接,并开启当前活动事务之后,所述方法还包括:
若所述源端数据库中不存在外部应用的业务信息,则基于所述源端数据同步服务对应的数据信息,创建一条业务数据。
在一些实施例中,该装置还包括操作信息封装模块,用于:
在所述向所述源端数据同步服务发送同步恢复请求之前,将预设操作信息封装至所述同步文件中。
在一些实施例中,所述预设操作信息包括TRUNCATE操作信息或者DELETE操作信息,且所述预设操作信息置于所述封装后的所述待装载的表数据之前。
第三方面,本公开提供了一种的电子设备,该电子设备包括:
处理器和存储装置;
所述处理器通过调用所述存储装置存储的程序或指令,用于执行本公开任意实施例中所述方法的步骤。
第四方面,本公开提供了一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,所述程序或所述指令使计算机执行本公开任意实施例中所述方法的步骤。
本公开实施例提供的技术方案,通过获取源端数据库中日志的当前活动SCN,并向源端数据同步服务发送同步暂停请求;其中,同步暂停请求中包含当前活动SCN,且同步暂停请求用于控制源端数据同步服务在当前活动SCN处暂停日志解析操作;从源端数据库中查询待装载的表数据,并将待装载的表数据封装为源端数据同步服务对应的目标数据格式,且将封装后的待装载的表数据插入源端数据同步服务对应的同步文件中;向源端数据同步服务发送同步恢复请求,以使源端数据同步服务继续从当前活动SCN进行日志解析,并将同步文件发送至目标端数据库。实现了借助源端数据同步服务将同步文件原封不动地传输至目标端数据库且入库的数据同步机制,将待装载的表数据封装至同步文件中,再通过源端数据同步服务的分发、传输和入库,将待装载的表数据初始化装载至目标端数据库,避免了对源端数据库加锁以及额外占用过多的源端数据库资源的问题,在确保数据一致性的基础上提高上层应用的稳定性;并且,能够利用源端数据同步服务已有的数据转换功能,省去初始化装载过程中对异构系统之间的数据变化规则的处理过程,简化了初始化装载的实现逻辑,提高了数据初始化效率;同时,在针对1:N的数据分发拓扑形式的数据同步场景中,能够仅在源端数据库中操作一次,便完成N个目标端数据库的初始化装载,进一步提高数据初始化效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种数据库同步的初始化装载方法的流程图;
图2是本公开实施例提供的另一种数据库同步的初始化装载方法的流程图;
图3是本公开实施例提供的一种数据库同步的初始化装载装置的结构示意图;
图4是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步的详细描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本公开实施例提供的数据库同步的初始化装载方法,主要适用于至少两个数据库之间进行数据同步的数据初始化过程。本公开实施例提供的数据库同步的初始化装载方法可以由数据库同步的初始化装载装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在具有表数据运算功能的电子设备中,例如平板电脑、笔记本电脑、台式电脑或服务器等。在一些实施例中,该电子设备可以是生产数据的源端对应的设备,也可以是同步数据的目标端对应的设备,还可以是不同于源端对应设备和目标端对应设备的第三方设备。
图1是本公开实施例提供的一种数据库同步的初始化装载方法的流程图。参见图1,该方法具体包括:
S110、获取源端数据库中日志的当前活动SCN,并向源端数据同步服务发送同步暂停请求;其中,同步暂停请求中包含当前活动SCN,且同步暂停请求用于控制源端数据同步服务在当前活动SCN处暂停日志解析操作。
其中,SCN是数据库的日志中一条条记录的记录标识,如日志记录编号。源端数据同步服务用于进行数据库增量数据的实时同步。增量数据实时同步的大致原理是捕获源端数据库的增量日志内容,然后通过网络将其发送至目标端数据库,目标端数据库同步服务则使用SQL逆向生成技术恢复源端数据库的事务操作SQL语句,再通过数据库访问接口执行恢复后的SQL语句,实现源端和目标端的数据实时同步。
具体地,本公开实施例提供的初始化装载服务通过查询源端数据库,获取其当前日志中的当前活动SCN号,其是数据库正在写入的最大日志SCN。然后,基于该最大日志SCN生成同步暂停请求,并将其发送至源端数据同步服务。源端数据同步服务会解析日志,并在其解析至当前活动SCN时,暂停日志解析操作。由于数据库的多版本并发控制MVCC机制,初始化装载服务当前访问的数据库数据和解析程序停止时解析到的数据库数据处在同一个断面(snapshot)。
S120、从源端数据库中查询待装载的表数据,并将待装载的表数据封装为源端数据同步服务对应的目标数据格式,且将封装后的待装载的表数据插入源端数据同步服务对应的同步文件中。
具体地,由于在异构数据库系统环境中,源端数据库所产生的增量日志信息并不能直接应用于目标端数据库,故需要通过对源端数据库的日志信息进行解析,然后生成源端数据同步服务内部特定格式(即目标数据格式)的中间文件(即同步文件)。该同步文件便能进行分发、传输和解析来实现数据同步至目标端数据库。基于此,初始化装载服务先从源端数据库中查询出所有需要初始化装载的数据,即待装载的表数据;然后,将其封装为目标数据格式的文件,并插入源端数据同步服务生成的同步文件中。这样,便可将待装载的表数据伪装称为实时同步的增量数据。
在一些实施例中,S120包括:基于预设数据量,将待装载的表数据封装为目标数据格式的多组数据;将多组数据顺序追加至同步文件的末尾。具体地,为了确保同步文件的传输稳定性,本公开实施例会控制同步文件中一条记录的数据量。具体实施时,按照预设数据量来拆分所有的待装载的表数据,并按照目标数据格式来封装每个拆分结果,生成多组数据。然后,将该多组数据按序追加至同步文件的末尾。
在一些实施例中,在将多组数据顺序追加至同步文件的末尾之后,方法还包括:为多组数据中的每组数据设置相同的事件标识,且事件标识包含当前活动SCN。具体地,为了数据同步服务能够正确实现其断点续传机制,本公开实施例中会为同步文件中追加的多组数据设置相同的事件标识,且该事件标识中包含当前活动SCN。
在一些实施例中,还可以将预设操作信息封装至同步文件中。该预设操作信息是基于用户需求而设置的,这样便可实现数据初始化过程中用户的一些特殊要求。在一些实施例中,预设操作信息包括TRUNCATE操作信息或者DELETE操作信息,且预设操作信息置于封装后的待装载的表数据之前。这样,可以在初始化装载所有的待装载表数据之前,清除目标端数据库中已有的表数据,避免目标端数据库中存在冗余的表数据。
S130、向源端数据同步服务发送同步恢复请求,以使源端数据同步服务继续从当前活动SCN进行日志解析,并将同步文件发送至目标端数据库。
具体地,向源端数据绒布服务发送同步恢复请求,便可控制源端数据同步服务启动断点续传机制,使其从之前暂停的当前活动SCN开始继续解析日志,且继续生成并传输同步文件至目标端数据库。这样,待装载的表数据会随着同步文件一起传输至目标端数据库,实现源端数据库到目标端数据库的数据初始化。
本公开实施例的上述技术方案,通过获取源端数据库中日志的当前活动SCN,并向源端数据同步服务发送同步暂停请求;其中,同步暂停请求中包含当前活动SCN,且同步暂停请求用于控制源端数据同步服务在当前活动SCN处暂停日志解析操作;从源端数据库中查询待装载的表数据,并将待装载的表数据封装为源端数据同步服务对应的目标数据格式,且将封装后的待装载的表数据插入源端数据同步服务对应的同步文件中;向源端数据同步服务发送同步恢复请求,以使源端数据同步服务继续从当前活动SCN进行日志解析,并将同步文件发送至目标端数据库。实现了借助源端数据同步服务将同步文件原封不动地传输至目标端数据库且入库的数据同步机制,将待装载的表数据封装至同步文件中,再通过源端数据同步服务的分发、传输和入库,将待装载的表数据初始化装载至目标端数据库,避免了对源端数据库加锁以及额外占用过多的源端数据库资源的问题,在确保数据一致性的基础上提高上层应用的稳定性;并且,能够利用源端数据同步服务已有的数据转换功能,省去初始化装载过程中对异构系统之间的数据变化规则的处理过程,简化了初始化装载的实现逻辑,提高了数据初始化效率;同时,在针对1:N的数据分发拓扑形式的数据同步场景中,能够仅在源端数据库中操作一次,便完成N个目标端数据库的初始化装载,进一步提高数据初始化效率。
图2是本公开实施例提供的另一种数据库同步的初始化装载方法的流程图。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图2,该方法包括:
S210、向源端数据同步服务发送服务启动请求,以触发启动源端数据同步服务。
具体地,初始化装载服务向源端数据同步服务发送服务启动请求。源端数据同步服务接收到该服务启动请求后,便启动数据同步流程,处于正常的日志解析状态。
S220、与源端数据库建立连接,并开启当前活动事务。
具体地,初始化装载服务使用程序的方式(如使用JDBC)连接到源端数据库。之后,便在源端数据库中开启一个新的数据库事务,即当前活动事务。例如,采用JDBC中的connection.setAutoCommit(false)来开启当前活动事务。后续的初始化装载操作均在当前活动事务中处理。
S230、若源端数据库中不存在外部应用的业务信息,则基于源端数据同步服务对应的数据信息,创建一条业务数据。
具体地,源端数据同步服务启动后,如果源端数据库中存在外部应用的业务信息,那么源端数据同步服务会生成同步文件(称为KUFL记录)。但是,如果源端数据库中不存在外部应用的业务信息,那么就不会产生增量数据,源端数据同步服务便无法正常工作,也就无法启动同步文件生成和传输的通道。所以,初始化装载服务在源端数据库中创建一条业务数据,来触发源端数据同步服务启动同步通道。优选该业务数据是源端数据同步服务中本身就存在的数据,例如更新源端数据同步服务元信息表HEARTBEAT。
S240、获取源端数据库中日志的当前活动SCN,并向源端数据同步服务发送同步暂停请求;其中,同步暂停请求中包含当前活动SCN,且同步暂停请求用于控制源端数据同步服务在当前活动SCN处暂停日志解析操作。
具体地,假设源端数据同步服务在停止日志解析操作时,其当前生成的同步文件中的记录序号为SEQNO,对应的KUFL记录事件标识为XXX:SCN。其中,XXX为针对特定数据库的标记,SCN表示当前断点,即当前活动SCN。
S250、从源端数据库中查询待装载的表数据,并基于预设数据量,将待装载的表数据封装为目标数据格式的多组数据,且将多组数据顺序追加至同步文件的末尾,且为多组数据中的每组数据设置相同的事件标识,且事件标识包含当前活动SCN。
具体地,从连接的源端数据库中查询待装载的表数据。然后,将查询到的表数据每M条(即预设数据量)为一组,封装为同步文件对应的目标数据格式(如KUFL),并将封装结果追加至同步文件中。该同步文件中的记录序号由SEQNO开始递增,但是同步文件中新增的每条记录对应的KUFL记录事件标识均设置为XXX:SCN。
S260、回滚当前活动事务,并断开与源端数据库的连接。
具体地,在将待装载的表数据插入同步文件后,初始化装载服务回滚S220中开启的当前活动事务,并关闭源端数据库连接。
S270、向源端数据同步服务发送同步恢复请求,以使源端数据同步服务继续从当前活动SCN进行日志解析,并将同步文件发送至目标端数据库。
本公开实施例的上述技术方案,通过与源端数据库建立连接,并开启当前活动事务;以及在待装载的表数据插入同步文件后,回滚当前活动事务,并断开与源端数据库的连接,实现了该初始化装载过程产生的日志数据的清除,保证数据库之间的数据一致性。通过若源端数据库中不存在外部应用的业务信息,则基于源端数据同步服务对应的数据信息,创建一条业务数据,实现了利用模拟的业务信息来启动源端数据同步服务中的同步通道,为无外部应用的业务信息场景下的数据初始化提供基础,且进一步保证数据一致性。
图3是本公开实施例提供的一种数据库同步的初始化装载装置的结构示意图。参见图3,该装置具体包括:
同步暂停请求发送模块310,用于获取源端数据库中日志的当前活动SCN,并向源端数据同步服务发送同步暂停请求;其中,同步暂停请求中包含当前活动SCN,且同步暂停请求用于控制源端数据同步服务在当前活动SCN处暂停日志解析操作;
表数据封装模块320,用于从源端数据库中查询待装载的表数据,并将待装载的表数据封装为源端数据同步服务对应的目标数据格式,且将封装后的待装载的表数据插入源端数据同步服务对应的同步文件中;
同步恢复请求发送模块330,用于向源端数据同步服务发送同步恢复请求,以使源端数据同步服务继续从当前活动SCN进行日志解析,并将同步文件发送至目标端数据库。
在一些实施例中,表数据封装模块320具体用于:
基于预设数据量,将待装载的表数据封装为目标数据格式的多组数据;
将多组数据顺序追加至同步文件的末尾。
在一些实施例中,表数据封装模块320还用于:
在将多组数据顺序追加至同步文件的末尾之后,为多组数据中的每组数据设置相同的事件标识,且事件标识包含当前活动SCN。
在一些实施例中,该装置还包括事务处理模块,用于:
在获取源端数据库中日志的当前活动SCN之前,方法还包括:
与源端数据库建立连接,并开启当前活动事务;
在将封装后的待装载的表数据插入源端数据同步服务对应的同步文件中之后,方法还包括:
回滚当前活动事务,并断开与源端数据库的连接。
在一些实施例中,该装置还包括服务启动请求发送模块,用于:
在获取源端数据库中日志的当前活动SCN之前,向源端数据同步服务发送服务启动请求,以触发启动源端数据同步服务;
在与源端数据库建立连接,并开启当前活动事务之后,方法还包括:
若源端数据库中不存在外部应用的业务信息,则基于源端数据同步服务对应的数据信息,创建一条业务数据。
在一些实施例中,该装置还包括操作信息封装模块,用于:
在向源端数据同步服务发送同步恢复请求之前,将预设操作信息封装至同步文件中。
在一些实施例中,预设操作信息包括TRUNCATE操作信息或者DELETE操作信息,且预设操作信息置于封装后的待装载的表数据之前。
通过本公开实施例提供的一种数据库同步的初始化装载装置,实现了借助源端数据同步服务将同步文件原封不动地传输至目标端数据库且入库的数据同步机制,将待装载的表数据封装至同步文件中,再通过源端数据同步服务的分发、传输和入库,将待装载的表数据初始化装载至目标端数据库,避免了对源端数据库加锁以及额外占用过多的源端数据库资源的问题,在确保数据一致性的基础上提高上层应用的稳定性;并且,能够利用源端数据同步服务已有的数据转换功能,省去初始化装载过程中对异构系统之间的数据变化规则的处理过程,简化了初始化装载的实现逻辑,提高了数据初始化效率;同时,在针对1:N的数据分发拓扑形式的数据同步场景中,能够仅在源端数据库中操作一次,便完成N个目标端数据库的初始化装载,进一步提高数据初始化效率。
本公开实施例所提供的数据库同步的初始化装载装置可执行本公开任意实施例所提供的数据库同步的初始化装载方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述数据库同步的初始化装载装置的实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本公开的保护范围。
图4是本公开实施例提供的一种电子设备的结构示意图。参见图4,本公开实施例提供的电子设备400,其包括:处理器420和存储器410;处理器420通过调用存储器410存储的程序或指令,用于执行本公开实施例所提供的数据库同步的初始化装载方法的步骤:
获取源端数据库中日志的当前活动SCN,并向源端数据同步服务发送同步暂停请求;其中,同步暂停请求中包含当前活动SCN,且同步暂停请求用于控制源端数据同步服务在当前活动SCN处暂停日志解析操作;
从源端数据库中查询待装载的表数据,并将待装载的表数据封装为源端数据同步服务对应的目标数据格式,且将封装后的待装载的表数据插入源端数据同步服务对应的同步文件中;
向源端数据同步服务发送同步恢复请求,以使源端数据同步服务继续从当前活动SCN进行日志解析,并将同步文件发送至目标端数据库。
当然,本领域技术人员可以理解,处理器420还可以实现本公开任意实施例所提供的数据库同步的初始化装载方法的技术方案。
图4显示的电子设备400仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图4所示,电子设备400以通用计算设备的形式表现。电子设备400的组件可以包括但不限于:一个或者多个处理器420,存储器410,连接不同系统组件(包括存储器410和处理器420)的总线450。
总线450表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备400典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备400访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器410可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)411和/或高速缓存存储器412。电子设备400可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统413可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线450相连。存储器410可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。
具有一组(至少一个)程序模块415的程序/实用工具414,可以存储在例如存储器410中,这样的程序模块415包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块414通常执行本公开所描述的任意实施例中的功能和/或方法。
电子设备400也可以与一个或多个外部设备460(例如键盘、指向设备、显示器470等)通信,还可与一个或者多个使得用户能与该电子设备400交互的设备通信,和/或与使得该电子设备400能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出接口(I/O接口)430进行。并且,电子设备400还可以通过网络适配器440与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器440通过总线450与电子设备400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储程序或指令,该程序或指令使计算机执行本公开实施例提供的数据库同步的初始化装载方法步骤:
获取源端数据库中日志的当前活动SCN,并向源端数据同步服务发送同步暂停请求;其中,同步暂停请求中包含当前活动SCN,且同步暂停请求用于控制源端数据同步服务在当前活动SCN处暂停日志解析操作;
从源端数据库中查询待装载的表数据,并将待装载的表数据封装为源端数据同步服务对应的目标数据格式,且将封装后的待装载的表数据插入源端数据同步服务对应的同步文件中;
向源端数据同步服务发送同步恢复请求,以使源端数据同步服务继续从当前活动SCN进行日志解析,并将同步文件发送至目标端数据库。
当然,本公开实施例所提供的一种计算机可读存储介质,其存储的程序或指令不限于如上的方法操作,还可以执行本公开任意实施例所提供的数据库同步的初始化装载方法中的相关操作。
本公开实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
需要说明的是,本公开所用术语仅为了描述特定实施例,而非限制本申请范围。如本公开说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。术语“和/或”包括一个或多个相关所列条目的任何一个和所有组合。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据库同步的初始化装载方法,其特征在于,包括:
获取源端数据库中日志的当前活动SCN,并向源端数据同步服务发送同步暂停请求;其中,所述同步暂停请求中包含所述当前活动SCN,且所述同步暂停请求用于控制所述源端数据同步服务在所述当前活动SCN处暂停日志解析操作;
从源端数据库中查询待装载的表数据,并将所述待装载的表数据封装为所述源端数据同步服务对应的目标数据格式,且将封装后的所述待装载的表数据插入所述源端数据同步服务对应的同步文件中;
向所述源端数据同步服务发送同步恢复请求,以使所述源端数据同步服务继续从所述当前活动SCN进行日志解析,并将所述同步文件发送至目标端数据库。
2.根据权利要求1所述的方法,其特征在于,所述将所述待装载的表数据封装为所述源端数据同步服务对应的目标数据格式,且将封装后的所述待装载的表数据插入所述源端数据同步服务对应的同步文件中包括:
基于预设数据量,将所述待装载的表数据封装为所述目标数据格式的多组数据;
将所述多组数据顺序追加至所述同步文件的末尾。
3.根据权利要求2所述的方法,其特征在于,在所述将所述多组数据顺序追加至所述同步文件的末尾之后,所述方法还包括:
为所述多组数据中的每组数据设置相同的事件标识,且所述事件标识包含所述当前活动SCN。
4.根据权利要求1所述的方法,其特征在于,在所述获取源端数据库中日志的当前活动SCN之前,所述方法还包括:
与所述源端数据库建立连接,并开启当前活动事务;
在所述将封装后的所述待装载的表数据插入所述源端数据同步服务对应的同步文件中之后,所述方法还包括:
回滚所述当前活动事务,并断开与所述源端数据库的连接。
5.根据权利要求4所述的方法,其特征在于,在所述获取源端数据库中日志的当前活动SCN之前,所述方法还包括:
向所述源端数据同步服务发送服务启动请求,以触发启动所述源端数据同步服务;
在所述与所述源端数据库建立连接,并开启当前活动事务之后,所述方法还包括:
若所述源端数据库中不存在外部应用的业务信息,则基于所述源端数据同步服务对应的数据信息,创建一条业务数据。
6.根据权利要求1所述的方法,其特征在于,在所述向所述源端数据同步服务发送同步恢复请求之前,所述方法还包括:
将预设操作信息封装至所述同步文件中。
7.根据权利要求6所述的方法,其特征在于,所述预设操作信息包括TRUNCATE操作信息或者DELETE操作信息,且所述预设操作信息置于所述封装后的所述待装载的表数据之前。
8.一种数据库同步的初始化装载装置,其特征在于,包括:
同步暂停请求发送模块,用于获取源端数据库中日志的当前活动SCN,并向源端数据同步服务发送同步暂停请求;其中,所述同步暂停请求中包含所述当前活动SCN,且所述同步暂停请求用于控制所述源端数据同步服务在所述当前活动SCN处暂停日志解析操作;
表数据封装模块,用于从源端数据库中查询待装载的表数据,并将所述待装载的表数据封装为所述源端数据同步服务对应的目标数据格式,且将封装后的所述待装载的表数据插入所述源端数据同步服务对应的同步文件中;
同步恢复请求发送模块,用于向所述源端数据同步服务发送同步恢复请求,以使所述源端数据同步服务继续从所述当前活动SCN进行日志解析,并将所述同步文件发送至目标端数据库。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011144072.5A CN112231409B (zh) | 2020-10-23 | 2020-10-23 | 数据库同步的初始化装载方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011144072.5A CN112231409B (zh) | 2020-10-23 | 2020-10-23 | 数据库同步的初始化装载方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231409A true CN112231409A (zh) | 2021-01-15 |
CN112231409B CN112231409B (zh) | 2024-04-26 |
Family
ID=74109185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011144072.5A Active CN112231409B (zh) | 2020-10-23 | 2020-10-23 | 数据库同步的初始化装载方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231409B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282643A (zh) * | 2021-06-04 | 2021-08-20 | 上海英方软件股份有限公司 | 一种oracle数据库同步环境下的表对比方法及系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040267809A1 (en) * | 2003-06-23 | 2004-12-30 | Microsoft Corporation | Resynchronization of multiple copies of a database after a divergence in transaction history |
CN101344894A (zh) * | 2008-08-21 | 2009-01-14 | 峰峰集团邯郸鼎峰物流有限公司 | 一种应用系统间数据同步的方法和装置 |
CN102508835A (zh) * | 2011-09-22 | 2012-06-20 | 用友软件股份有限公司 | 基于日志管理包的增量数据实时同步装置和方法 |
CN104573056A (zh) * | 2015-01-22 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于oracle数据库大数据量在线迁移的方法 |
US20160259837A1 (en) * | 2014-03-24 | 2016-09-08 | Hitachi, Ltd. | Database management system and method for controlling synchronization between databases |
US9552242B1 (en) * | 2013-09-25 | 2017-01-24 | Amazon Technologies, Inc. | Log-structured distributed storage using a single log sequence number space |
CN109271450A (zh) * | 2018-10-10 | 2019-01-25 | 北京百度网讯科技有限公司 | 数据库同步方法、装置、服务器和存储介质 |
KR20190042348A (ko) * | 2017-10-16 | 2019-04-24 | 한국전자통신연구원 | 단방향 통신 환경에서의 데이터베이스 동기화 방법 및 이를 위한 장치 |
CN110222115A (zh) * | 2019-04-30 | 2019-09-10 | 武汉达梦数据库有限公司 | 基于表初始化分组装载的数据库同步方法及设备 |
CN110232093A (zh) * | 2019-04-30 | 2019-09-13 | 武汉达梦数据库有限公司 | 数据库同步中基于闪回查询的初始化装载方法及设备 |
US20200320098A1 (en) * | 2019-04-03 | 2020-10-08 | Sap Se | High Throughput Cross Database Table Synchronization and Transactional Replication in Federated Databases |
-
2020
- 2020-10-23 CN CN202011144072.5A patent/CN112231409B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040267809A1 (en) * | 2003-06-23 | 2004-12-30 | Microsoft Corporation | Resynchronization of multiple copies of a database after a divergence in transaction history |
CN101344894A (zh) * | 2008-08-21 | 2009-01-14 | 峰峰集团邯郸鼎峰物流有限公司 | 一种应用系统间数据同步的方法和装置 |
CN102508835A (zh) * | 2011-09-22 | 2012-06-20 | 用友软件股份有限公司 | 基于日志管理包的增量数据实时同步装置和方法 |
US9552242B1 (en) * | 2013-09-25 | 2017-01-24 | Amazon Technologies, Inc. | Log-structured distributed storage using a single log sequence number space |
US20160259837A1 (en) * | 2014-03-24 | 2016-09-08 | Hitachi, Ltd. | Database management system and method for controlling synchronization between databases |
CN104573056A (zh) * | 2015-01-22 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于oracle数据库大数据量在线迁移的方法 |
KR20190042348A (ko) * | 2017-10-16 | 2019-04-24 | 한국전자통신연구원 | 단방향 통신 환경에서의 데이터베이스 동기화 방법 및 이를 위한 장치 |
CN109271450A (zh) * | 2018-10-10 | 2019-01-25 | 北京百度网讯科技有限公司 | 数据库同步方法、装置、服务器和存储介质 |
US20200320098A1 (en) * | 2019-04-03 | 2020-10-08 | Sap Se | High Throughput Cross Database Table Synchronization and Transactional Replication in Federated Databases |
CN110222115A (zh) * | 2019-04-30 | 2019-09-10 | 武汉达梦数据库有限公司 | 基于表初始化分组装载的数据库同步方法及设备 |
CN110232093A (zh) * | 2019-04-30 | 2019-09-13 | 武汉达梦数据库有限公司 | 数据库同步中基于闪回查询的初始化装载方法及设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282643A (zh) * | 2021-06-04 | 2021-08-20 | 上海英方软件股份有限公司 | 一种oracle数据库同步环境下的表对比方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112231409B (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442560B (zh) | 一种日志重演方法、装置、服务器和存储介质 | |
US11120018B2 (en) | Spark query method and system supporting trusted computing | |
CN107506256B (zh) | 一种崩溃数据监控的方法和装置 | |
CN109471851B (zh) | 数据处理方法、装置、服务器和存储介质 | |
CN112231407B (zh) | PostgreSQL数据库的DDL同步方法、装置、设备和介质 | |
CN110688096B (zh) | 包含插件的应用程序的构建方法、装置、介质及电子设备 | |
CN102663298B (zh) | 面向终端计算机的安全在线检查系统 | |
US20100251227A1 (en) | Binary resource format and compiler | |
US8819088B2 (en) | Implementing storage management functions using a data store system | |
CN109951553B (zh) | 数据处理方法、系统、电子设备以及计算机可读存储介质 | |
CN112363994A (zh) | 数据库的处理方法、装置、电子装置和存储介质 | |
US6233660B1 (en) | System and method for emulating mainframe channel programs by open systems computer systems | |
US20060036616A1 (en) | Suspending a result set and continuing from a suspended result set for scrollable cursors | |
CN111506603A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN112231409A (zh) | 数据库同步的初始化装载方法、装置、设备和存储介质 | |
CN113010542A (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN115840788B (zh) | 一种MySql数据同步到ES的方法、装置、终端及存储介质 | |
CN116010461A (zh) | 数据血缘关系解析方法及装置、存储介质及电子设备 | |
CN111611307B (zh) | 报表导出方法及装置 | |
CN113342836A (zh) | 同步数据处理方法、装置、计算机设备及存储介质 | |
CN111026764B (zh) | 一种数据存储方法、装置、电子产品及存储介质 | |
CN114238391A (zh) | 数据分页查询方法、装置、电子设备及存储介质 | |
CN112182085A (zh) | 数据导出方法、装置、设备及存储介质 | |
CN113610527A (zh) | 联盟链的交易方法、装置、系统、终端设备及存储介质 | |
CN111488391A (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 |