CN109241174B - 数据同步方法、装置、可读存储介质和电子设备 - Google Patents
数据同步方法、装置、可读存储介质和电子设备 Download PDFInfo
- Publication number
- CN109241174B CN109241174B CN201810671890.7A CN201810671890A CN109241174B CN 109241174 B CN109241174 B CN 109241174B CN 201810671890 A CN201810671890 A CN 201810671890A CN 109241174 B CN109241174 B CN 109241174B
- Authority
- CN
- China
- Prior art keywords
- synchronized
- data
- database
- change
- data table
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据同步方法、装置、可读存储介质和电子设备,属于数据存储领域,能够降低数据库的维护成本,提高数据库同步的效率和实时性,而且既不要求所有的PDB均为打开状态,也不要求PDB之间不能存在相同用户下的相同表名,也不需要人工参与。该方法包括:获取源数据库的元数据和变更日志;利用所获取的元数据对所获取的变更日志进行分析,来捕获所述变更日志中关于所述源数据库的数据变更操作;利用所获取的元数据对所捕获的数据变更操作进行解析,生成所述源数据库的变更数据;将所生成的变更数据同步到目标数据库。
Description
技术领域
本公开涉及数据存储领域,具体地,涉及一种数据同步方法、装置、可读存储介质和电子设备。
背景技术
目前,通常有两种方法来实现Oracle 12C多租户数据库的实时数据同步。一种方法是通过Oracle线上字典(例如DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG线上字典)来分析源数据库的变更数据,然后利用分析出的变更数据来对目标数据库进行同步。这种方法的缺陷是必须保证所有的可插拔数据库(Pluggable DataBase,PDB)为打开状态,而且PDB之间不能存在相同用户下的相同表名。另一种方法是通过线下字典文件来分析源数据库的变更数据,然后利用分析出的变更数据来对目标数据库进行同步。这种方法的缺陷是需要人工手动编写字典文件并导入,数据库维护成本高,实时性差。
发明内容
本公开的目的是提供一种数据同步方法、装置、可读存储介质和电子设备,其既不要求所有的PDB均为打开状态,也不要求PDB之间不能存在相同用户下的相同表名,而且还不需要人工参与,降低了数据库的维护成本,提高了数据库同步的效率和实时性。
根据本公开的第一实施例,提供一种数据同步方法,该方法包括:获取源数据库的元数据和变更日志;利用所获取的元数据对所获取的变更日志进行分析,来捕获所述变更日志中关于所述源数据库的数据变更操作;利用所获取的元数据对所捕获的数据变更操作进行解析,生成所述源数据库的变更数据;将所生成的变更数据同步到目标数据库。
可选地,所述获取源数据库的元数据和变更日志,包括:根据关于所述源数据库的需要被同步的可插拔数据库及所述需要被同步的可插拔数据库的需要被同步的数据表的配置,来获取所述源数据库的元数据;获取所述源数据库的变更日志。
可选地,所获取的元数据包括所述源数据库的需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识;所述利用所获取的元数据对所获取的变更日志进行分析,来捕获所述变更日志中关于所述源数据库的数据变更操作,包括:利用所述需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识,对所获取的变更日志进行分析,来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作。
可选地,所述方法还包括:利用记录所述源数据库的可插拔数据库的信息的视图,来获取所述需要被同步的可插拔数据库的唯一标识;利用记录所述源数据库的可插拔数据库的数据表的信息的视图,来获取所述需要被同步的数据表的唯一标识。
可选地,所述利用所述需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识,对所获取的变更日志进行分析,来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作,包括:通过记录针对所获取的变更日志的分析结果的视图,利用所述需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作。
可选地,所获取的元数据包括所述需要被同步的数据表的列信息;所述利用所获取的元数据对所捕获的数据变更操作进行解析,生成所述源数据库的变更数据,包括:利用所述需要被同步的数据表的列信息对所捕获的数据变更操作进行解析,生成关于所述需要被同步的数据表的变更数据。
可选地,该方法还包括:利用记录所述源数据库的可插拔数据库的数据表的列信息的视图,来获取所述需要被同步的数据表的列信息。
根据本公开的第二实施例,提供一种数据同步装置,该装置包括:获取模块,用于获取源数据库的元数据和变更日志;捕获模块,用于利用所获取的元数据对所获取的变更日志进行分析,来捕获所述变更日志中关于所述源数据库的数据变更操作;生成模块,用于利用所获取的元数据对所捕获的数据变更操作进行解析,生成所述源数据库的变更数据;同步模块,用于将所生成的变更数据同步到目标数据库。
可选地,所述获取模块,用于获取所述源数据库的变更日志,以及根据关于所述源数据库的需要被同步的可插拔数据库及所述需要被同步的可插拔数据库的需要被同步的数据表的配置来获取所述源数据库的元数据。
可选地,所述获取模块所获取的元数据包括所述源数据库的需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识;所述捕获模块用于利用所述需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识,对所获取的变更日志进行分析,来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作。
可选地,所述获取模块,用于利用记录所述源数据库的可插拔数据库的信息的视图来获取所述需要被同步的可插拔数据库的唯一标识,以及利用记录所述源数据库的可插拔数据库的数据表的信息的视图来获取所述需要被同步的数据表的唯一标识。
可选地,所述捕获模块,用于通过记录针对所获取的变更日志的分析结果的视图,利用所述需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作。
可选地,所述获取模块所获取的元数据包括所述需要被同步的数据表的列信息;所述生成模块,用于利用所述需要被同步的数据表的列信息对所捕获的数据变更操作进行解析,生成关于所述需要被同步的数据表的变更数据。
可选地,所述获取模块,还用于利用记录所述源数据库的可插拔数据库的数据表的列信息的视图,来获取所述需要被同步的数据表的列信息。
根据本公开的第三实施例,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开第一实施例所述方法的步骤。
根据本公开的第四实施例,提供一种电子设备,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现根据本公开第一实施例所述方法的步骤。
通过采用上述技术方案,由于能够利用所获取的元数据对所获取的变更日志进行分析以捕获变更日志中关于源数据库的数据变更操作,然后利用所获取的元数据对所捕获的数据变更操作进行解析以生成源数据库的变更数据,所以根据本公开实施例的数据同步方法不要求所有的PDB均为打开状态,而是只要求需要被同步的PDB为打开状态就能将源数据库的变更数据同步到目标数据库,而且PDB之间可以存在相同用户下的相同表名。另外,根据本公开实施例的数据同步方法并不需要人工来手动编写字典文件并导入,因此大大降低了数据库的维护成本,提高了数据库的同步效率和实时性。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1示出了根据本公开一种实施例的数据同步方法的流程图。
图2示出了根据本公开一种实施例的数据同步装置的示意框图。
图3是根据一示例性实施例示出的一种电子设备的框图。
图4是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1示出了根据本公开一种实施例的数据同步方法的流程图,如图1所示,该方法可以包括以下步骤S11至S14。
在步骤S11中,获取源数据库的元数据和变更日志。
其中,在本公开中,源数据库可以是具有一个或多个PDB数据库的数据库,例如可以是Oracle 12C多租户数据库。
在步骤S12中,利用所获取的元数据对所获取的变更日志进行分析,来捕获所述变更日志中关于所述源数据库的数据变更操作。
在步骤S13中,利用所获取的元数据对所捕获的数据变更操作进行解析,生成所述源数据库的变更数据。
在步骤S14中,将所生成的变更数据同步到目标数据库。
通过采用上述技术方案,由于能够利用所获取的元数据对所获取的变更日志进行分析以捕获变更日志中关于源数据库的数据变更操作,然后利用所获取的元数据对所捕获的数据变更操作进行解析以生成源数据库的变更数据,所以根据本公开实施例的数据同步方法不要求所有的PDB均为打开状态,而是只要求需要被同步的PDB为打开状态就能将源数据库的变更数据同步到目标数据库,而且PDB之间可以存在相同用户下的相同表名。另外,根据本公开实施例的数据同步方法并不需要人工来手动编写字典文件并导入,因此大大降低了数据库的维护成本,提高了数据库的同步效率和实时性。
在一种可能的实施方式中,步骤S11中所述的获取源数据库的元数据和变更日志可以包括以下步骤S11a和S11b,而且步骤S11a和S11b可以同时执行或者先后执行,例如可以先执行S11a后执行S11b或者可以先执行S11b后执行S11a。
在步骤S11a中、根据关于所述源数据库的需要被同步的可插拔数据库及所述需要被同步的可插拔数据库的需要被同步的数据表的配置,来获取所述源数据库的元数据。
在实际的应用场景中,数据库的维护人员通常会配置在什么时候将源数据库的哪些PDB下的哪些数据表的变更数据同步到目标数据库。因此,在获取源数据库的元数据时,也会基于这样的配置来执行源数据库的元数据的获取。例如,假设数据库的维护人员做出了这样的配置:在第一时间段内,将源数据库的PDB1下的数据表1和数据表2以及PDB2下的数据表3和数据表5同步到目标数据库。则基于这样的配置,当第一时间段开始时,根据本公开实施例的数据同步方法就会开始获取关于需要被同步的PDB1及其下需要被同步的数据表1和数据表2的元数据以及需要被同步的PDB2及其下的需要被同步的数据表3和数据表5的元数据。
在步骤S11b中、获取所述源数据库的变更日志。
通过上述技术方案,不需要获取整个源数据库的元数据,而是只需要获取关于需要被同步的PDB及其下的需要被同步的数据表的元数据,因此能够大大减小需要获取的元数据的量,提高同步效率和实时性,并减小功耗。
在一种可能的实施方式中,所获取的元数据包括所述源数据库的需要被同步的PDB的唯一标识和所述需要被同步的PDB的需要被同步的数据表的唯一标识。则,步骤S12中所述的利用所获取的元数据对所获取的变更日志进行分析,来捕获所述变更日志中关于所述源数据库的数据变更操作,可以包括以下步骤:利用所述需要被同步的PDB的唯一标识和所述需要被同步的PDB的需要被同步的数据表的唯一标识,对所获取的变更日志进行分析,来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作。具体地,可以通过记录针对所获取的变更日志的分析结果的视图,利用所述需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识,来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作。
也即,在获取数据变更操作时,会在记录针对所获取的变更日志的分析结果的视图中,利用需要被同步的PDB的唯一标识和需要被同步的PDB下的需要被同步的数据表的唯一标识,在针对变更日志的分析结果中识别哪些数据变更操作是针对需要被同步的PDB下的需要被同步的数据表的,然后捕获所识别出的这些数据变更操作。这样,就能够只捕获关于当前需要被同步的数据表的数据变更操作,从而大大提高同步效率和实时性。
以Oracle 12C多租户数据库为例,首先可以使用Oracle提供的logmnr工具对所获取的变更日志进行分析,然后在记录针对所获取的变更日志的分析结果的视图中,也即在V$logmnr_contents视图中,利用需要被同步的PDB的唯一标识CON_UID和需要被同步的PDB下的需要被同步的数据表的唯一标识OBJECT_ID,识别哪些数据变更操作是针对需要被同步的PDB下的需要被同步的数据表的,然后捕获所识别出的这些数据变更操作。
另外,在一种可能的实施方式中,可以利用记录所述源数据库的PDB的信息的视图来获取所述需要被同步的PDB的唯一标识。以Oracle 12C多租户数据库为例,可以利用dba_pdbs视图来获取需要被同步的PDB的唯一标识CON_UID。同样地,可以利用记录所述源数据库的PDB的数据表的信息的视图,来获取所述需要被同步的数据表的唯一标识。仍然以Oracle 12C多租户数据库为例,可以利用dba_objects视图来获取需要被同步的数据表的唯一标识OBJECT_ID。
在一种可能的实施方式中,所获取的元数据可以包括所述需要被同步的数据表的列信息。其中,列信息又可以包括每一列中的数据的数据类型、数据长度和数据精度等。具体地,可以利用记录所述源数据库的PDB的数据表的列信息的视图,来获取所述需要被同步的数据表的列信息。以Oracle 12C多租户数据库为例,可以利用user_tab_columns视图来获取需要被同步的数据表的列信息。而且,在所获取的元数据包括源数据库的需要被同步的PDB的唯一标识、需要被同步的PDB的需要被同步的数据表的唯一标识和需要被同步的数据表的列信息的情况下,哪些数据表需要被同步就可以被唯一地确定了。
可选地,在所获取的元数据包括需要被同步的数据表的列信息的情况下,步骤S13中所述的利用所获取的元数据对所捕获的数据变更操作进行解析,生成所述源数据库的变更数据,可以包括:利用所述需要被同步的数据表的列信息对所捕获的数据变更操作进行解析,生成关于所述需要被同步的数据表的变更数据。这样,就可以不必像现有技术那样需要使用线上字典sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG,而是可以利用需要被同步的数据表的列信息来对所捕获的数据变更操作的字节码进行解析,以生成关于需要被同步的数据表的变更数据。
以下以Oracle 12C多租户数据库为例来描述根据本公开实施例的数据同步方法的操作流程。其中,需要被同步的是例如多租户PDB1的用户1下的数据表1的增量数据。
首先,从记录源数据库的PDB的信息的dba_pdbs视图中获取需要被同步的PDB1的唯一标识CON_UID,从记录源数据库的PDB的数据表的信息的视图dba_objects中获取需要被同步的PDB1的用户1下的数据表1的唯一标识OBJECT_ID,从记录源数据库的PDB的数据表的列信息的视图user_tab_columns中获取需要被同步的数据表1的所有列信息,包括每一列中的数据的数据类型、数据长度、数据精度等。另外,还要获取源数据库的变更日志。
然后,使用Oracle提供的logmnr工具实时分析所获取的变更日志,之后利用需要被同步的PDB1的唯一标识CON_UID和需要被同步的PDB1下的需要被同步的数据表1的唯一标识OBJECT_ID,从记录针对所获取的变更日志的分析结果的视图V$logmnr_contents中捕获需要被同步的数据表1的数据变更操作。
然后,利用所获取的元数据中所包括的数据表1的列信息,对所捕获的数据变更操作的字节码进行解析,以生成关于需要被同步的数据表1的变更数据。
然后,将所生成的变更数据同步到目标数据库。
这样,就实时高效地完成了源数据库到目标数据库的同步,而且还不要求所有的PDB均为打开状态,而是只要求需要被同步的PDB1为打开状态即可,而且PDB之间可以存在相同用户下的相同表名。另外,也不需要人工手动编写字典文件并导入,大大降低了数据库的维护成本。
图2示出了根据本公开一种实施例的数据同步装置的示意框图,如图2所示,该装置可以包括:
获取模块21,用于获取源数据库的元数据和变更日志;
捕获模块22,用于利用所获取的元数据对所获取的变更日志进行分析,来捕获所述变更日志中关于所述源数据库的数据变更操作;
生成模块23,用于利用所获取的元数据对所捕获的数据变更操作进行解析,生成所述源数据库的变更数据;
同步模块24,用于将所生成的变更数据同步到目标数据库。
可选地,所述获取模块,用于获取所述源数据库的变更日志,以及根据关于所述源数据库的需要被同步的可插拔数据库及所述需要被同步的可插拔数据库的需要被同步的数据表的配置来获取所述源数据库的元数据。
可选地,所述获取模块所获取的元数据包括所述源数据库的需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识;所述捕获模块用于利用所述需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识,对所获取的变更日志进行分析,来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作。
可选地,所述获取模块,用于利用记录所述源数据库的可插拔数据库的信息的视图来获取所述需要被同步的可插拔数据库的唯一标识,以及利用记录所述源数据库的可插拔数据库的数据表的信息的视图来获取所述需要被同步的数据表的唯一标识。
可选地,所述捕获模块,用于通过记录针对所获取的变更日志的分析结果的视图,利用所述需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作。
可选地,所述获取模块所获取的元数据包括所述需要被同步的数据表的列信息;所述生成模块,用于利用所述需要被同步的数据表的列信息对所捕获的数据变更操作进行解析,生成关于所述需要被同步的数据表的变更数据。
可选地,所述获取模块,还用于利用记录所述源数据库的可插拔数据库的数据表的列信息的视图,来获取所述需要被同步的数据表的列信息。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图3是根据一示例性实施例示出的一种电子设备700的框图。如图3所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的数据同步方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数据同步方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据同步方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的数据同步方法。
图4是根据一示例性实施例示出的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图4,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的数据同步方法。
另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作***,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据同步方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的数据同步方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (7)
1.一种数据同步方法,其特征在于,该方法包括:
获取源数据库的元数据和变更日志,所述源数据库为具有一个或多个可插拔数据库的数据库;
利用所获取的元数据对所获取的变更日志进行分析,来捕获所述变更日志中关于所述源数据库的数据变更操作;
利用所获取的元数据对所捕获的数据变更操作进行解析,生成所述源数据库的变更数据;
将所生成的变更数据同步到目标数据库;
其中,所述获取源数据库的元数据,包括:根据关于所述源数据库的需要被同步的可插拔数据库及所述需要被同步的可插拔数据库的需要被同步的数据表的配置,来获取所述源数据库的元数据,其中,所述配置包括在什么时候将所述源数据库的哪些可插拔数据库下的哪些数据表的变更数据同步到所述目标数据库中;
其中,所获取的元数据包括所述源数据库的需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识;则,所述利用所获取的元数据对所获取的变更日志进行分析,来捕获所述变更日志中关于所述源数据库的数据变更操作,包括:利用所述需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识,对所获取的变更日志进行分析,来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作;
其中,所获取的元数据包括所述需要被同步的数据表的列信息;则,所述利用所获取的元数据对所捕获的数据变更操作进行解析,生成所述源数据库的变更数据,包括:利用所述需要被同步的数据表的列信息对所捕获的数据变更操作的字节码进行解析,生成关于所述需要被同步的数据表的变更数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
利用记录所述源数据库的可插拔数据库的信息的视图,来获取所述需要被同步的可插拔数据库的唯一标识;
利用记录所述源数据库的可插拔数据库的数据表的信息的视图,来获取所述需要被同步的数据表的唯一标识。
3.根据权利要求1所述的方法,其特征在于,所述利用所述需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识,对所获取的变更日志进行分析,来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作,包括:
通过记录针对所获取的变更日志的分析结果的视图,利用所述需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作。
4.根据权利要求1所述的方法,其特征在于,该方法还包括:
利用记录所述源数据库的可插拔数据库的数据表的列信息的视图,来获取所述需要被同步的数据表的列信息。
5.一种数据同步装置,其特征在于,该装置包括:
获取模块,用于获取源数据库的元数据和变更日志,所述源数据库为具有一个或多个可插拔数据库的数据库;
捕获模块,用于利用所获取的元数据对所获取的变更日志进行分析,来捕获所述变更日志中关于所述源数据库的数据变更操作;
生成模块,用于利用所获取的元数据对所捕获的数据变更操作进行解析,生成所述源数据库的变更数据;
同步模块,用于将所生成的变更数据同步到目标数据库;
其中,所述获取模块获取所述源数据库的元数据,包括:根据关于所述源数据库的需要被同步的可插拔数据库及所述需要被同步的可插拔数据库的需要被同步的数据表的配置,来获取所述源数据库的元数据,其中,所述配置包括在什么时候将所述源数据库的哪些可插拔数据库下的哪些数据表的变更数据同步到所述目标数据库中;
其中,所获取的元数据包括所述源数据库的需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识;则,所述捕获模块利用所获取的元数据对所获取的变更日志进行分析,来捕获所述变更日志中关于所述源数据库的数据变更操作,包括:利用所述需要被同步的可插拔数据库的唯一标识和所述需要被同步的可插拔数据库的需要被同步的数据表的唯一标识,对所获取的变更日志进行分析,来捕获所述变更日志中关于所述需要被同步的数据表的数据变更操作;
其中,所获取的元数据包括所述需要被同步的数据表的列信息;则,所述生成模块利用所获取的元数据对所捕获的数据变更操作进行解析,生成所述源数据库的变更数据,包括:利用所述需要被同步的数据表的列信息对所捕获的数据变更操作的字节码进行解析,生成关于所述需要被同步的数据表的变更数据。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-4中任一项所述方法的步骤。
7.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810671890.7A CN109241174B (zh) | 2018-06-26 | 2018-06-26 | 数据同步方法、装置、可读存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810671890.7A CN109241174B (zh) | 2018-06-26 | 2018-06-26 | 数据同步方法、装置、可读存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109241174A CN109241174A (zh) | 2019-01-18 |
CN109241174B true CN109241174B (zh) | 2021-04-16 |
Family
ID=65071984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810671890.7A Active CN109241174B (zh) | 2018-06-26 | 2018-06-26 | 数据同步方法、装置、可读存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109241174B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933594A (zh) * | 2019-02-15 | 2019-06-25 | 北京大米科技有限公司 | 获取数据的方法、装置、电子设备及介质 |
CN110196793B (zh) * | 2019-04-30 | 2023-05-12 | 武汉达梦数据库股份有限公司 | 针对插件数据库的日志分析方法及设备 |
CN110543413A (zh) * | 2019-07-22 | 2019-12-06 | 深圳壹账通智能科技有限公司 | 业务***测试方法、装置、设备及存储介质 |
CN110457181B (zh) * | 2019-08-02 | 2023-05-16 | 武汉达梦数据库股份有限公司 | 一种数据库的日志优化分析方法及装置 |
CN112527807A (zh) * | 2019-09-18 | 2021-03-19 | 银联数据服务有限公司 | 一种数据结构操作方法及装置 |
CN113515569B (zh) * | 2020-04-09 | 2023-12-26 | 阿里巴巴集团控股有限公司 | 数据的同步方法、装置、*** |
CN113449043A (zh) * | 2021-07-21 | 2021-09-28 | 中国人民解放军61932部队 | 数据同步方法、装置、计算机设备和存储介质 |
CN113742420B (zh) * | 2021-08-09 | 2024-02-02 | 广州市易工品科技有限公司 | 数据同步方法和装置 |
CN117171262A (zh) * | 2023-08-09 | 2023-12-05 | 飞算数智科技(深圳)有限公司 | 数据同步的方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105205053A (zh) * | 2014-05-30 | 2015-12-30 | 阿里巴巴集团控股有限公司 | 一种数据库增量日志解析方法及*** |
CN107169108A (zh) * | 2017-05-19 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种基于Oracle实现MySQL数据快速恢复的方法与装置 |
CN107491558A (zh) * | 2017-09-08 | 2017-12-19 | 北京奇艺世纪科技有限公司 | 元数据更新方法及装置 |
CN107590277A (zh) * | 2017-09-28 | 2018-01-16 | 泰康保险集团股份有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10585908B2 (en) * | 2015-04-03 | 2020-03-10 | Oracle International Corporation | Method and system for parameterizing log file location assignments for a log analytics system |
-
2018
- 2018-06-26 CN CN201810671890.7A patent/CN109241174B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105205053A (zh) * | 2014-05-30 | 2015-12-30 | 阿里巴巴集团控股有限公司 | 一种数据库增量日志解析方法及*** |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
CN107169108A (zh) * | 2017-05-19 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种基于Oracle实现MySQL数据快速恢复的方法与装置 |
CN107491558A (zh) * | 2017-09-08 | 2017-12-19 | 北京奇艺世纪科技有限公司 | 元数据更新方法及装置 |
CN107590277A (zh) * | 2017-09-28 | 2018-01-16 | 泰康保险集团股份有限公司 | 数据同步方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109241174A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109241174B (zh) | 数据同步方法、装置、可读存储介质和电子设备 | |
CN109656934B (zh) | 基于日志解析的源端Oracle数据库DDL同步方法及设备 | |
CN106874389B (zh) | 数据的迁移方法和装置 | |
CN110737594B (zh) | 自动生成测试用例的数据库标准符合性测试方法及装置 | |
US20160171505A1 (en) | Extract, transform, and load (etl) processing | |
US20160283357A1 (en) | Call stack relationship acquiring method and apparatus | |
CN105205053A (zh) | 一种数据库增量日志解析方法及*** | |
US20190325021A1 (en) | Method and Device for Creating Hyperlink | |
US11164567B2 (en) | Systems and methods for extraction of user intent from speech or text | |
WO2019056494A1 (zh) | 图表生成方法、装置、计算机设备和存储介质 | |
CN110688544A (zh) | 一种查询数据库的方法、设备及存储介质 | |
CN111046036A (zh) | 数据同步方法、装置、***及存储介质 | |
CN106886535A (zh) | 一种适配多种数据源的数据抽取方法和装置 | |
CN111400170B (zh) | 一种数据权限测试方法及装置 | |
US20160019266A1 (en) | Query generating method and query generating device | |
CN111324510B (zh) | 日志处理方法、装置及电子设备 | |
CN107357619B (zh) | 一种板卡配置文件的生成方法、装置、设备以及存储介质 | |
US9953640B2 (en) | Systems and methods of interpreting speech data | |
CN106682210B (zh) | 日志文件查询方法及装置 | |
CN110825802A (zh) | 多类型数据库数据的备份方法、装置、设备及存储介质 | |
WO2016095716A1 (zh) | 一种故障信息处理方法与相关装置 | |
CN111209195B (zh) | 一种生成测试用例的方法及装置 | |
CN117033309A (zh) | 一种数据转换方法、装置、电子设备及可读存储介质 | |
CN104090748B (zh) | 基于Makefile的源码精简器进行精简源码的方法 | |
US9588998B2 (en) | Protecting storage data during system migration |
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 |