CN115599868B - 数据实时同步处理方法、系统、设备及介质 - Google Patents

数据实时同步处理方法、系统、设备及介质 Download PDF

Info

Publication number
CN115599868B
CN115599868B CN202211597666.0A CN202211597666A CN115599868B CN 115599868 B CN115599868 B CN 115599868B CN 202211597666 A CN202211597666 A CN 202211597666A CN 115599868 B CN115599868 B CN 115599868B
Authority
CN
China
Prior art keywords
data
instance
log file
determining
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
Application number
CN202211597666.0A
Other languages
English (en)
Other versions
CN115599868A (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.)
Guangzhou Ruifan Technology Co ltd
Original Assignee
Guangzhou Ruifan Technology 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 Guangzhou Ruifan Technology Co ltd filed Critical Guangzhou Ruifan Technology Co ltd
Priority to CN202211597666.0A priority Critical patent/CN115599868B/zh
Publication of CN115599868A publication Critical patent/CN115599868A/zh
Application granted granted Critical
Publication of CN115599868B publication Critical patent/CN115599868B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/2358Change logging, detection, and notification
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Abstract

本申请提供一种数据实时同步处理方法、系统、设备及介质。该方法包括:接收用户发送的数据同步请求,并确定数据同步请求中的备库地址对应的数据备库;判断数据备库对应的实例中是否存在备库实例之外的新建实例;若是,则根据备库实例对应的在线日志文件,确定待分析日志文件;利用新建实例中的日志分析程序对待分析日志文件进行分析,以确定对应的数据修改记录;对数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据;确定通用结构增量数据对应的目标数据库,将通用结构增量数据转换为目标数据库对应的目标结构增量数据,并将目标结构增量数据同步至目标数据库中。本申请的方法,可以在不影响企业业务性能的前提下进行数据的同步。

Description

数据实时同步处理方法、系统、设备及介质
技术领域
本申请涉及计算机领域,尤其涉及一种数据实时同步处理方法、系统、设备及介质。
背景技术
oracle数据库是被企业广泛使用的一种数据库,oracle数据库在使用中通常会分为主库和备库,主库是数据产生之后初次保存的数据库,备库是对主库中的数据进行备份处理后保存的数据库,数据备份是oracle数据库自带的系统架构,即数据保存到主库中后自动备份。由于数据备份时备库的权限受到限制,只保留只读权限,无法进行修改,因此,现有的数据同步处理方式中,均是将主库中的数据同步至其他数据库。但是,主库中的数据通常被企业的各种业务所应用,对主库中的数据进行同步操作会影响企业的正常业务性能。
因此,需要一种不会影响企业业务性能的数据实时同步处理方案。
发明内容
本申请提供一种数据实时同步处理方法、系统、设备及介质,用以解决现有的数据同步处理方法影响企业业务性能的技术问题。
第一方面,本申请提供一种数据实时同步处理方法,包括:
接收用户发送的数据同步请求,并确定所述数据同步请求中的备库地址对应的数据备库;
判断所述数据备库对应的实例中是否存在备库实例之外的新建实例,所述备库实例为不可编辑实例,所述新建实例为可编辑实例;
若是,则根据所述备库实例对应的在线日志文件,确定待分析日志文件;
利用所述新建实例中的日志分析程序对所述待分析日志文件进行分析,以确定对应的数据修改记录;
对所述数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据;
确定所述通用结构增量数据对应的目标数据库,将所述通用结构增量数据转换为所述目标数据库对应的目标结构增量数据,并将所述目标结构增量数据同步至所述目标数据库中。
在一种可能的实施方式中,所述根据所述备库实例对应的在线日志文件,确定待分析日志文件,具体包括:
确定所述备库实例对应的在线日志文件中,正在记录的当前日志文件,并确定所述当前日志文件对应的当前序列号;
判断所述备库实例是否存在历史增量同步记录;
若是,则根据所述历史增量同步记录,确定待分析日志文件;
若否,则根据所述当前日志文件确定待分析日志文件。
在一种可能的实施方式中,所述根据所述历史增量同步记录,确定待分析日志文件,具体包括:
获取所述历史增量同步记录对应的日志文件的历史序列号,并判断所述当前序列号是否大于所述历史序列号;
若是,则根据所述备库实例对应的归档日志文件,确定所述历史序列号与所述当前序列号之间的补充日志文件,根据所述补充日志文件以及所述当前日志文件,确定待分析日志文件;
若否,则根据所述当前日志文件确定待分析日志文件。
在一种可能的实施方式中,所述对所述数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据,具体包括:
利用预设的字典文件对所述数据修改记录进行解析,以得到所述数据修改记录对应的实例数据,所述数据修改记录包括数据增加、数据删减、数据更新中的一种或多种;
利用预设的通用数据库结构对所述实例数据进行结构转换,以得到对应的通用结构增量数据。
在一种可能的实施方式中,所述确定所述通用结构增量数据对应的目标数据库,将所述通用结构增量数据转换为所述目标数据库对应的目标结构增量数据,具体包括:
确定所述通用结构增量数据对应的数据类型;
根据预设的数据类型与数据库的对应关系,确定所述数据类型对应的目标数据库;
确定所述目标数据库对应的目标数据结构,并利用所述目标数据结构将所述通用结构增量数据转换为所述目标数据库对应的目标结构增量数据。
在一种可能的实施方式中,在所述对所述数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据之后,还包括:
获取所述数据同步请求中的待同步数据,并确定所述待同步数据对应的数据类型;
确定所述通用结构增量数据中,所述待同步数据的数据类型对应的通用结构待处理数据;
相应的,所述确定所述通用结构增量数据对应的目标数据库,将所述通用结构增量数据转换为所述目标数据库对应的目标结构增量数据,具体包括:
确定所述通用结构待处理数据对应的目标数据库,将所述通用结构待处理数据转换为所述目标数据库对应的目标结构增量数据。
在一种可能的实施方式中,若所述数据备库对应的实例中不存在备库实例之外的新建实例,则输出实例创建提示信息。
第二方面,本申请提供一种数据实时同步处理系统,包括:
数据采集模块,用于接收用户发送的数据同步请求,并确定所述数据同步请求中的备库地址对应的数据备库;判断所述数据备库对应的实例中是否存在备库实例之外的新建实例,所述备库实例为不可编辑实例,所述新建实例为可编辑实例;若是,则根据所述备库实例对应的在线日志文件,确定待分析日志文件;利用所述新建实例中的日志分析程序对所述待分析日志文件进行分析,以确定对应的数据修改记录;对所述数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据,并将所述通用结构增量数据发送至数据传输模块;
数据传输模块,用于接收所述数据采集模块发送的通用结构增量数据,确定所述通用结构增量数据对应的目标数据库,并将所述通用结构增量数据发送至所述目标数据库对应的数据入库模块;
数据入库模块,用于接收所述数据传输模块发送的通用结构增量数据,将所述通用结构增量数据转换为所述目标数据库对应的目标结构增量数据,并将所述目标结构增量数据同步至所述目标数据库中。
第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现上述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法。
本申请提供的数据实时同步处理方法、系统、设备及介质,可以接收用户发送的数据同步请求,并确定数据同步请求中的备库地址对应的数据备库;判断数据备库对应的实例中是否存在备库实例之外的新建实例,备库实例为不可编辑实例,新建实例为可编辑实例;若是,则根据备库实例对应的在线日志文件,确定待分析日志文件;利用新建实例中的日志分析程序对待分析日志文件进行分析,以确定对应的数据修改记录;对数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据;确定通用结构增量数据对应的目标数据库,将通用结构增量数据转换为目标数据库对应的目标结构增量数据,并将目标结构增量数据同步至目标数据库中。本申请的方法,不再利用数据主库中的数据进行数据同步,而是利用数据备库中的数据进行数据同步,从而避免数据同步对主库业务性能的影响。具体的,由于数据库自身的架构,数据备库对应的备库实例仅保留只读权限,无法进行分析和修改,本申请在备库实例之外,可以单独创建数据备库的新建实例。由于同一物理机上的新建实例和备库实例可以共享日志文件,因此,可以利用新建实例的日志分析程序对备库实例中的日志文件进行分析,以绕过权限受限的备库实例,从而得到数据修改记录,以确定待同步的增量数据。通过这样的设置,可以通过数据备库中的数据进行实时且高效的数据同步处理,并且可以避免数据同步对主库业务性能的影响。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为现有技术中某一数据同步过程示意图;
图2为本申请一实施例的数据同步过程示意图;
图3为本申请一实施例的数据实时同步处理方法的流程图;
图4为本申请另一实施例的数据实时同步处理方法的流程图;
图5为本申请一实施例的数据实时同步处理系统的结构示意图;
图6为本申请一实施例的电子设备的结构示意图。
附图标记:1、oracle数据库;2、国产数据库。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请的数据实时同步处理方法、系统、设备及介质可用于各数据库的数据同步场景,例如,对oracle数据库进行数据增量同步等。当然,本申请的数据实时同步处理方法、系统、设备及介质也可用于其他领域,具体的应用领域并不作限定。本申请的数据实时同步处理方法、系统、设备及介质,可用于具备主库和备库架构的数据库。
oracle数据库分为主库和备库,主库是数据产生之后初次保存的数据库,备库是对主库中的数据进行备份处理后保存的数据库,数据备份是oracle数据库自带的系统架构,即数据保存到主库中后自动备份。由于数据备份时备库的权限受到限制,只保留只读权限,无法进行分析和修改,因此,现有的数据同步处理方式中,均是将主库中的数据同步至其他数据库。
示例性的,图1为现有技术中某一数据同步过程示意图,如图1所示,1表示oracle数据库,2表示国产数据库,数据产生之后会保存在oracle数据库1的主库中,同时主库中的数据会实时自动备份至备库中。进行数据同步时,服务器或者终端设备会将oracle数据库1的主库中数据同步至国产数据库2中。
但是,主库中的数据通常被企业的各种业务所应用,对主库中的数据进行同步操作会影响企业的正常业务性能。
基于该技术问题,本申请的发明构思在于:如何提供一种不会影响企业业务性能的数据实时同步处理方法。
具体为,可以接收用户发送的数据同步请求,并确定数据同步请求中的备库地址对应的数据备库;判断数据备库对应的实例中是否存在备库实例之外的新建实例,备库实例为不可编辑实例,新建实例为可编辑实例;若是,则根据备库实例对应的在线日志文件,确定待分析日志文件;利用新建实例中的日志分析程序对待分析日志文件进行分析,以确定对应的数据修改记录;对数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据;确定通用结构增量数据对应的目标数据库,将通用结构增量数据转换为目标数据库对应的目标结构增量数据,并将目标结构增量数据同步至目标数据库中。本申请的方法,不再利用数据主库中的数据进行数据同步,而是利用数据备库中的数据进行数据同步,从而避免数据同步对主库业务性能的影响。具体的,由于数据库自身的架构,数据备库对应的备库实例仅保留只读权限,无法进行分析和修改,本申请在备库实例之外,可以单独创建数据备库的新建实例。由于同一物理机上的新建实例和备库实例可以共享日志文件,因此,可以利用新建实例的日志分析程序对备库实例中的日志文件进行分析,以绕过权限受限的备库实例,以确定待同步的增量数据。通过这样的设置,可以通过数据备库中的数据进行实时且高效的数据同步处理,并且可以避免数据同步对主库业务性能的影响。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2是本申请一实施例的数据同步过程示意图,如图2所示,1表示oracle数据库,2表示国产数据库,数据产生之后会保存在oracle数据库1的主库中,同时主库中的数据会实时自动备份至备库中。进行数据同步时,用户可以事先在oracle数据库1所在的服务器上单独创建一个新的oracle实例(新建实例),之后通过终端设备向服务器输入数据同步请求。服务器上的数据实时同步处理系统接收到数据同步请求之后,会利用新建实例将oracle数据库1的备库中数据同步至国产数据库2中,从而避免数据同步对企业业务性能的影响。具体的数据同步过程将参考下述实施例。
实施例一
图3是本申请一实施例提供的数据实时同步处理方法的流程图,本申请实施例提供的数据实时同步处理方法的执行主体可以是终端设备,也可以是服务器,本实施例以执行主体为服务器对该数据实时同步处理方法进行说明。如图3所示,该数据实时同步处理方法可以包括以下步骤:
S101:接收用户发送的数据同步请求,并确定数据同步请求中的备库地址对应的数据备库。
在本实施例中,当该数据实时同步处理方法的执行主体是服务器时,用户可以通过终端设备将数据同步请求发送至服务器;当该数据实时同步处理方法的执行主体是终端设备时,用户可以直接在终端设备的显示界面输入备库地址,以将数据同步请求发送至终端设备。
需要说明的是,当该数据实时同步处理方法的执行主体是服务器时,用户可以在终端设备的显示界面输入备库名称,企业名称或者待同步的数据类型等信息,终端设备可以根据用户输入的信息查找相应的备库地址,然后根据备库地址生成数据同步请求并发送至服务器。
在本实施例中,以备库为oracle数据库中的备库为例,进行本申请实施方式的说明。
S102:判断数据备库对应的实例中是否存在备库实例之外的新建实例,备库实例为不可编辑实例,新建实例为可编辑实例。
在本实施例中,实例指的是进程,即一个实例代表一个数据库程序的进程。
在本实施例中,备库实例指的是备库中将主库数据自动备份至备库的实例,也就是备库本身自带的实例。由于oracle数据库的自身架构,在备库实例运行时,备库实例的权限受到限制,只保留只读权限,备库实例中的日志分析程序由于有相关进程对其加锁,导致其无法对日志文件进行分析操作。
在本实施例中,在进行数据同步之前,用户可以在oracle数据库所在的同一台物理机(服务器或者终端设备)上创建一个空白的新建实例,新建实例的权限不受限制,备库实例中的日志分析程序的加锁仅局限于备库实例,对同一物理机上的新建实例没有影响。创建新建实例时,用户可以在同一台物理机上直接创建,也可以利用DBCA等工具文件创建。
在一个可能的实施方式中,若数据备库对应的实例中不存在备库实例之外的新建实例,则输出实例创建提示信息。
在本实施方式中,实例创建提示信息可以是文本信息、声音信息、图形信息中的一种或多种,在此不做任何限制。示例性的,实例创建提示信息可以通过弹窗的方式弹出以下文字“请创建新的oracle实例”。
在本实施方式中,当该数据实时同步处理方法的执行主体是终端设备时,终端设备可以直接输出实例创建提示信息;当该数据实时同步处理方法的执行主体是服务器时,服务器可以通过终端设备输出实例创建提示信息。
在本实施方式中,服务器确定数据备库之后,首先可以判断该数据备库除了自身的备库实例之外,是否还具备可编辑的新建实例,只有具备新建实例,才能完成接下来的数据同步。因此,数据备库具备可编辑的新建实例是本申请的基础,若不存在新建实例,需要输出实例创建提示信息,以提示用户创建新建实例,以便于后续的数据同步。
S103:若是,则根据备库实例对应的在线日志文件,确定待分析日志文件。
在本实施例中,上述步骤S103中的根据备库实例对应的在线日志文件,确定待分析日志文件的具体实施方式请详见实施例二。
S104:利用新建实例中的日志分析程序对待分析日志文件进行分析,以确定对应的数据修改记录。
在本实施例中,日志分析程序可以是数据库自带的日志分析程序,例如oracle数据库自身的分析工具LogMiner,可以利用新建实例中分析工具LogMiner打开备库实例对应的在线日志文件,并进行日志分析。
在本实施例中,由于同一物理机上的新建实例和备库实例可以共享日志文件,因此,可以利用新建实例的日志分析程序对备库实例中的日志文件进行分析,以绕过权限受限的备库实例,从而完成备库实例日志文件的分析,以便于后续数据的同步。
在本实施例中,待分析日志文件中存在备库中的各种数据记录,利用日志分析程序对待分析日志文件进行分析,可以确定待分析日志文件中的数据修改记录,即从全部记录中筛选得到与数据修改相关的数据修改记录,以便于后续根据数据修改记录得到需要同步的增量数据。
S105:对数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据。
在本实施例中,对数据修改记录进行相应的处理,可以得到增量数据,也就是说只对增量数据进行同步处理。
在本实施例中,上述步骤S101-S105可以是服务器的数据采集模块具体功能的实现,数据采集模块在得到通用结构增量数据之后,可以将通用结构增量数据发送至服务器的数据传输模块。
在一个可能的实施方式中,上述步骤S105对数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据,可以包括:利用预设的字典文件对数据修改记录进行解析,以得到数据修改记录对应的实例数据,数据修改记录包括数据增加、数据删减、数据更新中的一种或多种;利用预设的通用数据库结构对实例数据进行结构转换,以得到对应的通用结构增量数据。
在本实施方式中,实例数据可以是数据库对应的实例数据,例如oracle实例数据等,为了便于后续的数据国产化,oracle实例数据可以是中文数据。
在本实施方式中,字典文件可以是本领域技术人员根据实际预先设置的,字典文件可以是一个翻译文件,即不同语言数据的相互翻译的统一。具体的通用数据库结构本领域技术人员可以根据实际灵活设置,在此不做任何限制,只要通用数据库结构可以应用于各种数据库即可。
在本实施方式中,数据修改记录仍然属于日志文件中的数据,由于oracle数据库中的日志文件可能存在多种语言,例如英文、法文、日文等,因此,首先需要利用预设的字典文件对数据修改记录进行解析,将数据修改记录的语言进行统一,统一处理为详细的oracle实例数据,以便于后续的数据同步处理。此外,还可以利用预设的通用数据库结构对实例数据进行结构转换,即将实例数据的结构进行统一处理,从而屏蔽数据库的数据结构差异,以便于后续的数据同步处理。
S106:确定通用结构增量数据对应的目标数据库,将通用结构增量数据转换为目标数据库对应的目标结构增量数据,并将目标结构增量数据同步至目标数据库中。
在本实施例中,目标数据库可以是国产数据库,即将oracle数据库中的增量数据同步至国产数据库中,避免数据安全隐患。
在本实施例中,上述步骤S106中的确定通用结构增量数据对应的目标数据库,可以是服务器的数据传输模块具体功能的实现,数据传输模块接收到数据采集模块发送的通用结构增量数据之后,确定通用结构增量数据对应的目标数据库,并将通用结构增量数据发送至目标数据库对应的数据入库模块。
在本实施例中,上述步骤S106中的将通用结构增量数据转换为目标数据库对应的目标结构增量数据,并将目标结构增量数据同步至目标数据库中,可以是服务器的数据入库模块具体功能的实现,即数据入库模块接收到通用结构增量数据之后,对数据结构进行转换,并将目标结构增量数据同步至目标数据库中。
在一个可能的实施方式中,上述步骤S106中的确定通用结构增量数据对应的目标数据库,将通用结构增量数据转换为目标数据库对应的目标结构增量数据,可以包括:确定通用结构增量数据对应的数据类型;根据预设的数据类型与数据库的对应关系,确定数据类型对应的目标数据库;确定目标数据库对应的目标数据结构,并利用目标数据结构将通用结构增量数据转换为目标数据库对应的目标结构增量数据。
在本实施方式中,数据传输模块接收到数据采集模块发送的通用结构增量数据之后,可以确定通用结构增量数据对应的数据类型;根据预设的数据类型与数据库的对应关系,确定数据类型对应的目标数据库。数据传输模块可以是Kafka程序,Kafka程序可以与多个数据入库模块连接,Kafka程序中的每个Topic均可存储一个类型的数据。
示例性的,当Kafka程序接收到通用结构增量数据之后,会根据该通用结构增量数据的类型将该通用结构增量数据分类存储至对应的Topic,并通知该Topic对应的目标数据库的数据入库模块有新增的数据,数据入库模块可以向该Topic请求数据,以使该Topic将新增的通用结构增量数据发送至数据入库模块。数据入库模块接收到通用结构增量数据之后,根据该数据入库模块对应的目标数据库的目标数据结构,对将通用结构增量数据转换目标结构增量数据,并将目标结构增量数据同步至目标数据库中。
在本实施方式中,具体的数据类型本领域技术人员可以灵活设置,例如,数据类型可以包括通知消息、业务消息、消费消息等,在此不做任何限制。数据类型与数据库的对应关系本领域技术人员也可以灵活设置,在此不做任何限制。目标数据结构指的是目标数据库中存储数据的结构,可以参照具体的数据库类型灵活设置。
在本实施方式中,不同类型的数据将要存储的数据库可能不同,因此,根据通用结构增量数据对应的数据类型即可简单而又准确地确定通用结构增量数据对应的目标数据库。在确定目标数据库之后,需要将通用结构增量数据转换为目标数据库对应的目标结构增量数据,即完成数据有针对性地存储。通过这样的设置,可以将数据同步到各种不同的异构数据库中,提高数据同步的准确性和针对性。
在一个可能的实施方式中,在上述步骤S105对数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据之后,还可以包括:获取数据同步请求中的待同步数据,并确定待同步数据对应的数据类型;确定通用结构增量数据中,待同步数据的数据类型对应的通用结构待处理数据。
相应的,上述步骤S105中的确定通用结构增量数据对应的目标数据库,将通用结构增量数据转换为目标数据库对应的目标结构增量数据,可以包括:
确定通用结构待处理数据对应的目标数据库,将通用结构待处理数据转换为目标数据库对应的目标结构增量数据。
在本实施方式中,在进行数据同步时,可能并不会对全部数据进行同步,因此,可以首先确定数据同步请求中是否存在待同步数据,若不存在,则全部数据均需要进行同步,若存在待同步数据,则只需要同步待同步数据的数据类型对应的通用结构待处理数据即可。通过这样的设置,可以进一步提高数据同步的准确性和针对性,满足用户的各种需求,提升用户使用体验。
在本实施例中,可以接收用户发送的数据同步请求,并确定数据同步请求中的备库地址对应的数据备库;判断数据备库对应的实例中是否存在备库实例之外的新建实例,备库实例为不可编辑实例,新建实例为可编辑实例;若是,则根据备库实例对应的在线日志文件,确定待分析日志文件;利用新建实例中的日志分析程序对待分析日志文件进行分析,以确定对应的数据修改记录;对数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据;确定通用结构增量数据对应的目标数据库,将通用结构增量数据转换为目标数据库对应的目标结构增量数据,并将目标结构增量数据同步至目标数据库中。本申请的方法,不再利用数据主库中的数据进行数据同步,而是利用数据备库中的数据进行数据同步,从而避免数据同步对主库业务性能的影响。具体的,由于数据库自身的架构,数据备库对应的备库实例仅保留只读权限,无法进行分析和修改,本申请在备库实例之外,可以单独创建数据备库的新建实例。由于同一物理机上的新建实例和备库实例可以共享日志文件,因此,可以利用新建实例的日志分析程序对备库实例中的日志文件进行分析,以绕过权限受限的备库实例,从而得到数据修改记录,以确定待同步的增量数据。通过这样的设置,可以通过数据备库中的数据进行实时且高效的数据同步处理,并且可以避免数据同步对主库业务性能的影响。
下面以实施例二对上述实施例一的步骤S103中的根据备库实例对应的在线日志文件,确定待分析日志文件的具体实施方式进行详细的阐述。
实施例二
图4是本申请一实施例提供的数据实时同步处理方法的流程图,本申请实施例提供的数据实时同步处理方法的执行主体可以是终端设备,也可以是服务器,本实施例以执行主体为服务器对该数据实时同步处理方法进行说明。如图4所示,该数据实时同步处理方法可以包括以下步骤:
S201:确定备库实例对应的在线日志文件中,正在记录的当前日志文件,并确定当前日志文件对应的当前序列号。
在本实施例中,备库实例的日志文件一般分为在线日志文件和归档日志文件。备库实例的历史记录首先会实施例录到在线日志文件中,在一批线日志文件记录满之后就会变成归档日志文件进行归档,下一批空白的日志文件成为新的在线日志文件。在线日志文件通常包括多个日志文件,示例性的,某备库可以包括3个在线日志文件,可以记录3小时的数据,每一个在线日志文件可以记录1小时的数据。
在本实施例中,每一个日志文件均可设置一个序列号,在确定数据备库存在新建实例之后,即可利用新建实例中的日志分析程序打开备库实例的在线日志文件,并确定正在记录的当前日志文件,以及当前日志文件对应的当前序列号,以便于后续待分析日志文件的确定。
S202:判断备库实例是否存在历史增量同步记录。
在本实施例中,历史增量同步记录可以是,该备库实例上一次数据同步时的记录,即上一次数据同步进行到的日志文件。判断备库实例是否存在历史增量同步记录,即为判断该备库实例是否进行过数据同步。
S203:若是,则根据历史增量同步记录,确定待分析日志文件。
在一个可能的实施方式中,上述步骤S203中的根据历史增量同步记录,确定待分析日志文件,可以包括:
S2031:获取历史增量同步记录对应的日志文件的历史序列号,并判断当前序列号是否大于历史序列号。
S2032:若是,则根据备库实例对应的归档日志文件,确定历史序列号与当前序列号之间的补充日志文件,根据补充日志文件以及当前日志文件,确定待分析日志文件。
S2033:若否,则根据当前日志文件确定待分析日志文件。
示例性的,若历史序列号为SCN-50,而当前序列号为SCN-100,则说明SCN-50与SCN-100之间的日志文件也未被分析,则SCN-50-SCN-100之间的日志文件均为待分析日志文件。
在本实施方式中,可以通过当前序列号是否大于历史序列号的方式,来确定上一次数据同步与本次数据同步之间是否有未分析的日志文件,若存在,则需要根据归档日志文件确定历史序列号与当前序列号之间的补充日志文件。通过这样的设置,可以提高待分析日志文件的准确性和全面性,避免遗漏数据。
S204:若否,则根据当前日志文件确定待分析日志文件。
在本实施例中,每一个日志文件均可设置一个序列号,以便于日志文件的区分和识别。在确定数据备库存在新建实例之后,即可利用新建实例中的日志分析程序打开备库实例的在线日志文件,并确定正在记录的当前日志文件,以及当前日志文件对应的当前序列号。之后,可以通过判断备库实例是否存在历史增量同步记录,来判断该备库实例是否进行过数据同步,如果存在历史增量同步记录,需要根据历史增量同步记录对本次数据同步的起始,即当前日志文件进行补充和校正,以避免遗漏待分析日志文件而导致数据同步时遗漏数据,从而提高数据同步的准确性和全面性。
下面以一个具体的实施例对本申请的数据实时同步处理方法进行阐述。
实施例三
在一个具体的实施例中,某操作人员想要将公司A对应的oracle数据库a中的数据同步至国产数据库中,具体的数据增量同步处理过程如下:
第一步,该操作人员利用终端设备在oracle数据库a所在的服务器上单独创建一个新的oracle实例,并在该oracle实例中加载预设的字典文件,之后,该操作人员在终端设备的操作界面上输入oracle数据库a,终端设备根据oracle数据库a对应的备库地址生成数据同步请求并发送至服务器。
第二步,服务器的数据采集模块接收到数据同步请求之后,确定数据同步请求中的备库地址对应的数据备库为oracle数据库a,并判断oracle数据库a的数据备库存在新建实例。
第三步,服务器的数据采集模块根据备库实例对应的在线日志文件,确定待分析日志文件。
第四步,服务器的数据采集模块利用新建实例中的日志分析程序打开待分析日志文件,并对待分析日志文件进行分析,以确定对应的数据修改记录。
第五步,服务器的数据采集模块利用加载的字典文件对数据修改记录进行解析,以得到数据修改记录对应的实例数据,并利用预设的通用数据库结构对实例数据进行结构转换,以得到对应的通用结构增量数据。服务器的数据采集模块将通用结构增量数据发送至服务器的数据传输模块。
第六步,服务器的数据传输模块接收到通用结构增量数据之后,确定通用结构增量数据对应的目标数据库,并将通用结构增量数据发送至目标数据库对应的数据入库模块。
第七步,服务器的数据入库模块接收到通用结构增量数据之后,将通用结构增量数据转换为目标数据库对应的目标结构增量数据,并将目标结构增量数据同步至目标数据库中。
图5为本申请一实施例的数据实时同步处理系统的结构示意图,如图5所示,该数据实时同步处理系统包括:数据采集模块,用于接收用户发送的数据同步请求,并确定数据同步请求中的备库地址对应的数据备库;判断数据备库对应的实例中是否存在备库实例之外的新建实例,备库实例为不可编辑实例,新建实例为可编辑实例;若是,则根据备库实例对应的在线日志文件,确定待分析日志文件;利用新建实例中的日志分析程序对待分析日志文件进行分析,以确定对应的数据修改记录;对数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据,并将通用结构增量数据发送至数据传输模块;数据传输模块,用于接收数据采集模块发送的通用结构增量数据,确定通用结构增量数据对应的目标数据库,并将通用结构增量数据发送至目标数据库对应的数据入库模块;数据入库模块,用于接收数据传输模块发送的通用结构增量数据,将通用结构增量数据转换为目标数据库对应的目标结构增量数据,并将目标结构增量数据同步至目标数据库中。一个实施方式中,数据实时同步处理系统具体实现功能的描述可以参见实施例一中的步骤S101-S106以及实施例二中的步骤S201-S204,在此不做赘述。
图6为本申请一实施例的电子设备的结构示意图,如图6所示,该电子设备包括:处理器101,以及与处理器101通信连接的存储器102;存储器102存储计算机执行指令;处理器101执行存储器102存储的计算机执行指令,实现上述各方法实施例中数据实时同步处理方法的步骤。
该电子设备可以是独立的,也可以是终端设备或者服务器的一部分,该处理器101和存储器102可以采用终端设备或者服务器现有的硬件。
在上述电子设备中,存储器102和处理器101之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线连接。存储器102中存储有实现数据访问控制方法的计算机执行指令,包括至少一个可以软件或固件的形式存储于存储器102中的软件功能模块,处理器101通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器102可以是,但不限于,随机存取存储器(Random Access Memory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(ProgrammableRead-OnlyMemory,简称:PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称:EPROM),电可擦除只读存储器(ElectricErasable Programmable Read-OnlyMemory,简称:EEPROM)等。其中,存储器102用于存储程序,处理器101在接收到执行指令后,执行程序。进一步地,上述存储器102内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
处理器101可以是一种集成电路芯片,具有信号的处理能力。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称:CPU)、网络处理器(NetworkProcessor,简称:NP)等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请的一实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现本申请各方法实施例的步骤。
本申请的一实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请各方法实施例的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (8)

1.一种数据实时同步处理方法,其特征在于,包括:
接收用户发送的数据同步请求,并确定所述数据同步请求中的备库地址对应的数据备库;判断所述数据备库对应的实例中是否存在备库实例之外的新建实例,所述备库实例为不可编辑实例,所述新建实例为可编辑实例;
若是,则根据所述备库实例对应的在线日志文件,确定待分析日志文件;利用所述新建实例中的日志分析程序对所述待分析日志文件进行分析,以确定对应的数据修改记录;其中,所述备库实例和所述新建实例能共享日志文件;
对所述数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据;
确定所述通用结构增量数据对应的目标数据库,将所述通用结构增量数据转换为所述目标数据库对应的目标结构增量数据,并将所述目标结构增量数据同步至所述目标数据库中;
所述根据所述备库实例对应的在线日志文件,确定待分析日志文件,具体包括:
确定所述备库实例对应的在线日志文件中,正在记录的当前日志文件,并确定所述当前日志文件对应的当前序列号;
判断所述备库实例是否存在历史增量同步记录;
若是,则获取所述历史增量同步记录对应的日志文件的历史序列号,并判断所述当前序列号是否大于所述历史序列号;
若是,则根据所述备库实例对应的归档日志文件,确定所述历史序列号与所述当前序列号之间的补充日志文件,根据所述补充日志文件以及所述当前日志文件,确定待分析日志文件;
若否,则根据所述当前日志文件确定待分析日志文件。
2.根据权利要求1所述的方法,其特征在于,所述对所述数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据,具体包括:
利用预设的字典文件对所述数据修改记录进行解析,以得到所述数据修改记录对应的实例数据,所述数据修改记录包括数据增加、数据删减、数据更新中的一种或多种;
利用预设的通用数据库结构对所述实例数据进行结构转换,以得到对应的通用结构增量数据。
3.根据权利要求2所述的方法,其特征在于,所述确定所述通用结构增量数据对应的目标数据库,将所述通用结构增量数据转换为所述目标数据库对应的目标结构增量数据,具体包括:
确定所述通用结构增量数据对应的数据类型;
根据预设的数据类型与数据库的对应关系,确定所述数据类型对应的目标数据库;
确定所述目标数据库对应的目标数据结构,并利用所述目标数据结构将所述通用结构增量数据转换为所述目标数据库对应的目标结构增量数据。
4.根据权利要求1-3中任一项所述的方法,其特征在于,在所述对所述数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据之后,还包括:
获取所述数据同步请求中的待同步数据,并确定所述待同步数据对应的数据类型;
确定所述通用结构增量数据中,所述待同步数据的数据类型对应的通用结构待处理数据;
相应的,所述确定所述通用结构增量数据对应的目标数据库,将所述通用结构增量数据转换为所述目标数据库对应的目标结构增量数据,具体包括:
确定所述通用结构待处理数据对应的目标数据库,将所述通用结构待处理数据转换为所述目标数据库对应的目标结构增量数据。
5.根据权利要求1-4中任一项所述的方法,其特征在于,若所述数据备库对应的实例中不存在备库实例之外的新建实例,则输出实例创建提示信息。
6.一种数据实时同步处理系统,其特征在于,包括:
数据采集模块,用于接收用户发送的数据同步请求,并确定所述数据同步请求中的备库地址对应的数据备库;判断所述数据备库对应的实例中是否存在备库实例之外的新建实例,所述备库实例为不可编辑实例,所述新建实例为可编辑实例;若是,则根据所述备库实例对应的在线日志文件,确定待分析日志文件;利用所述新建实例中的日志分析程序对所述待分析日志文件进行分析,以确定对应的数据修改记录;其中,所述备库实例和所述新建实例能共享日志文件;对所述数据修改记录进行解析和转换处理,以得到对应的通用结构增量数据,并将所述通用结构增量数据发送至数据传输模块;
数据传输模块,用于接收所述数据采集模块发送的通用结构增量数据,确定所述通用结构增量数据对应的目标数据库,并将所述通用结构增量数据发送至所述目标数据库对应的数据入库模块;
数据入库模块,用于接收所述数据传输模块发送的通用结构增量数据,将所述通用结构增量数据转换为所述目标数据库对应的目标结构增量数据,并将所述目标结构增量数据同步至所述目标数据库中;
所述数据采集模块,用于根据所述备库实例对应的在线日志文件,确定待分析日志文件具体为:
确定所述备库实例对应的在线日志文件中,正在记录的当前日志文件,并确定所述当前日志文件对应的当前序列号;
判断所述备库实例是否存在历史增量同步记录;
若是,则获取所述历史增量同步记录对应的日志文件的历史序列号,并判断所述当前序列号是否大于所述历史序列号;
若是,则根据所述备库实例对应的归档日志文件,确定所述历史序列号与所述当前序列号之间的补充日志文件,根据所述补充日志文件以及所述当前日志文件,确定待分析日志文件;
若否,则根据所述当前日志文件确定待分析日志文件。
7.一种电子设备,其特征在于,包括处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至5中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至5中任一项所述的方法。
CN202211597666.0A 2022-12-14 2022-12-14 数据实时同步处理方法、系统、设备及介质 Active CN115599868B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211597666.0A CN115599868B (zh) 2022-12-14 2022-12-14 数据实时同步处理方法、系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211597666.0A CN115599868B (zh) 2022-12-14 2022-12-14 数据实时同步处理方法、系统、设备及介质

Publications (2)

Publication Number Publication Date
CN115599868A CN115599868A (zh) 2023-01-13
CN115599868B true CN115599868B (zh) 2023-03-14

Family

ID=84854331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211597666.0A Active CN115599868B (zh) 2022-12-14 2022-12-14 数据实时同步处理方法、系统、设备及介质

Country Status (1)

Country Link
CN (1) CN115599868B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105989006A (zh) * 2015-01-27 2016-10-05 中芯国际集成电路制造(上海)有限公司 数据迁移方法和装置
CN113157701A (zh) * 2021-04-27 2021-07-23 中国工商银行股份有限公司 一种oracle数据库的双活机制部署方法及装置
CN113157670A (zh) * 2021-05-10 2021-07-23 中国工商银行股份有限公司 数据库的数据迁移方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489274A (zh) * 2019-07-11 2019-11-22 新华三大数据技术有限公司 数据备份方法、装置及交互系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105989006A (zh) * 2015-01-27 2016-10-05 中芯国际集成电路制造(上海)有限公司 数据迁移方法和装置
CN113157701A (zh) * 2021-04-27 2021-07-23 中国工商银行股份有限公司 一种oracle数据库的双活机制部署方法及装置
CN113157670A (zh) * 2021-05-10 2021-07-23 中国工商银行股份有限公司 数据库的数据迁移方法及系统

Also Published As

Publication number Publication date
CN115599868A (zh) 2023-01-13

Similar Documents

Publication Publication Date Title
CN110069572B (zh) 基于大数据平台的hive任务调度方法、装置、设备及存储介质
CN107506451B (zh) 用于数据交互的异常信息监控方法及装置
CN112507027B (zh) 基于Kafka的增量数据同步方法、装置、设备及介质
CN110321339B (zh) 一种数据迁移方法、装置、设备和存储介质
CN111857777B (zh) 基于双芯智能电表的系统更新方法、装置和计算机设备
CN111737227A (zh) 数据修改方法及系统
CN113886485A (zh) 数据处理方法、装置、电子设备、系统和存储介质
CN113360519B (zh) 数据处理方法、装置、设备和存储介质
CN110737710A (zh) 分布式数据自动结构化入库方法及系统
CN112395307A (zh) 执行语句的方法、装置、服务器及存储介质
CN112131214A (zh) 数据写入、数据查询的方法、系统、设备和存储介质
CN115599868B (zh) 数据实时同步处理方法、系统、设备及介质
CN112612802A (zh) 一种实时数据中台的处理方法、装置及平台
CN111752838A (zh) 问题排查方法、装置、服务器及存储介质
CN116775488A (zh) 异常数据确定方法、装置、设备、介质及产品
CN116069859A (zh) 数据库的增量数据同步方法、存储介质与计算机设备
CN115577160A (zh) 一种生产线数据采集方法、装置、设备及介质
CN108228592B (zh) 基于二进制日志的数据归档方法及数据归档装置
CN115757045A (zh) 一种交易日志分析方法、系统及装置
CN112612773A (zh) 数据库同步测试方法、装置、计算机设备及存储介质
CN112925840A (zh) 数据导出方法、系统、设备及存储介质
CN113641752A (zh) 数据增量同步方法及终端设备
CN116627526A (zh) 一种模型加载方法、装置、设备及存储介质
CN113449035A (zh) 数据同步方法、装置、计算机设备及可读存储介质
CN116661810A (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