CN114780634A - 一种数据库实时同步方法、装置和存储介质 - Google Patents
一种数据库实时同步方法、装置和存储介质 Download PDFInfo
- Publication number
- CN114780634A CN114780634A CN202210196414.0A CN202210196414A CN114780634A CN 114780634 A CN114780634 A CN 114780634A CN 202210196414 A CN202210196414 A CN 202210196414A CN 114780634 A CN114780634 A CN 114780634A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- data operation
- databases
- real
- 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
-
- 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/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库实时同步方法,所述方法主要包括获取各数据库的快照;根据指令对所述数据库进行数据操作,根据所述数据操作和当前数据库的快照生成数据操作日志;获取所述数据操作日志,根据所述数据操作日志对其他数据库进行数据操作。本申请能够将数据库的整库进行实时同步,并且无需各类增量字段的限制条件,在多数情况下具备较强的实时性,系统吞吐量能够支撑,延迟较低,不增加源系统负载。
Description
技术领域
本申请涉及计算机数据库领域,尤其是一种数据库实时同步方法、装置和存储介质。
背景技术
在数据库的应用中,经常需要将不同系统的数据进行同步。相关的技术中,将不同系统的数据进行同步的方法主要为:将数据通过全量同步或者增量同步到统一分析系统,再基于JDBC数据抽取的方式对不同系统中的数据进行修改、升级和删除。但是,这种数据同步的方法的缺点在于:在实际场景下,数据库表不一定存在如modify_time等递增的字段,因此不能使用传统的基于JDBC微批抽取的方式进行增量同步,轮询的间隔过低,会极大增加源数据库的负载,轮询间隔过高,会导致数据延迟增加,并且,相关的数据同步方法无法捕获轮询区间外的数据变动,进而需要上下游提前沟通,执行回刷数据等操作,导致数据同步场景下的配置复杂度变高。当数据库发生schema变更,下游需要重新编写采集数据脚本,并重新建下游表,进一步增加了数据同步的操作复杂度。
因此,相关技术存在的上述技术问题亟待解决。
发明内容
本申请旨在解决相关技术中的技术问题之一。为此,本申请实施例提供一种数据库实时同步方法、装置和存储介质,能够实时对数据库的数据进行同步。
根据本申请实施例一方面,提供一种数据库实时同步方法,所述方法包括:
获取各数据库的快照;
根据指令对所述数据库进行数据操作,根据所述数据操作和当前数据库的快照生成数据操作日志;
获取所述数据操作日志,根据所述数据操作日志对其他数据库进行数据操作;
其中,所述数据操作包括对数据进行插入、更新和删除,所述数据操作日志包括所述数据操作的顺序和种类。
在其中一个实施例中,所述获取各数据库的快照,包括:
检测数据库连接是否启动,若所述数据库连接启动,则同时获取各数据库的快照,其中,所述快照包括数据库的数据数量、数据种类、数据值和数据分布信息。
在其中一个实施例中,根据指令对所述数据库进行数据操作,包括:
接收指令,得到需要对所述数据库进行的数据操作;
将所述数据操作制作为配置文件,将所述配置文件发送至所述数据库;
根据所述配置文件对所述数据库进行数据操作。
在其中一个实施例中,根据所述配置文件对所述数据库进行数据操作,包括:
根据所述配置文件使用指定的数据输出插件和数据融合插件启动输出服务;
与中间件交互,所述中间件用于主动推送数据到所述输出服务;
其中,所述输出服务集群支持动态扩容。
在其中一个实施例中,根据所述数据操作日志对其他数据库进行数据操作,包括:
接收操作日志,解析所述操作日志得到所述数据操作;
根据所述数据操作建表;
根据建表结果对其他数据库进行数据操作。
在其中一个实施例中,在根据建表结果对其他数据库进行数据操作时,所述方法还包括:
根据预设标准判断所述数据库是否需要建表,若是,则对所述数据库进行建表;
对所述数据库的数据进行融合转换和/或路由转发处理。
在其中一个实施例中,在根据建表结果对其他数据库进行数据操作时,所述方法还包括:
检测所述数据库的目标表是否丢失,若是,则重新对所述数据库进行建表;
对所述数据库的数据进行融合转换和/或路由转发处理。
根据本申请实施例一方面,提供一种数据库实时同步装置,所述装置包括:
快照模块,用于获取各数据库的快照;
操作模块,用于根据指令对所述数据库进行数据操作,根据所述数据操作和当前数据库的快照生成数据操作日志;
同步模块,用于获取所述数据操作日志,根据所述数据操作日志对其他数据库进行数据操作;
其中,所述数据操作包括对数据进行插入、更新和删除,所述数据操作日志包括所述数据操作的顺序和种类。
根据本申请实施例一方面,提供一种数据库实时同步装置,所述装置包括:
至少一个处理器;
至少一个存储器,所述存储器用于存储至少一个程序;
当至少一个所述程序被至少一个所述处理器执行时实现如前面实施例所述的一种数据库实时同步方法。
根据本申请实施例一方面,提供一种存储介质,所述存储介质存储有处理器可执行的程序,所述处理器可执行的程序被处理器执行时实现如前面实施例所述的一种数据库实时同步方法。
本申请实施例提供的一种数据库实时同步方法的有益效果为:本申请通过获取各数据库的快照;根据指令对所述数据库进行数据操作,根据所述数据操作和当前数据库的快照生成数据操作日志;获取所述数据操作日志,根据所述数据操作日志对其他数据库进行数据操作。本申请能够将数据库的整库进行实时同步,并且无需各类增量字段的限制条件,在多数情况下具备较强的实时性,系统吞吐量能够支撑,延迟较低,不增加源系统负载。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据库实时同步方法的方法流程图;
图2为本申请实施例提供的获取快照的流程方法;
图3为本申请实施例提供的对数据库进行数据操作的流程方法;
图4为本申请实施例提供的一种数据库实时同步方法的原理图;
图5为本申请实施例提供的一种数据库实时同步装置的结构图;
图6为本申请实施例提供的另一种数据库实时同步装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在数据库的应用中,经常需要将不同系统的数据进行同步。相关的技术中,将不同系统的数据进行同步的方法主要为:将数据通过全量同步或者增量同步到统一分析系统,再基于JDBC数据抽取的方式对不同系统中的数据进行修改、升级和删除。但是,这种数据同步的方法的缺点在于:在实际场景下,数据库表不一定存在如modify_time等递增的字段,因此不能使用传统的基于JDBC微批抽取的方式进行增量同步,轮询的间隔过低,会极大增加源数据库的负载,轮询间隔过高,会导致数据延迟增加,并且,相关的数据同步方法无法捕获轮询区间外的数据变动,进而需要上下游提前沟通,执行回刷数据等操作,导致数据同步场景下的配置复杂度变高。当数据库发生schema变更,下游需要重新编写采集数据脚本,并重新建下游表,进一步增加了数据同步的操作复杂度。
为了解决上述问题,本申请提出了一种数据库实时同步方法,具体如下:
首先说明本说明书可能提及的专业术语和学术词汇:
数据库:数据库是存放数据的仓库。存储空间大,可以存放上亿条数据。数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。数据库中数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。
快照:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。快照的作用主要是能够进行在线数据备份与恢复。当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据恢复某个可用的时间点的状态。快照的另一个作用是为存储用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,还可以利用快照进行测试等工作。所有存储系统,不论高中低端,只要应用于在线系统,那么快照就成为一个不可或缺的功能。
日志:网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录;每一行日志都记载着日期、时间、使用者及动作等相关操作的描述。本申请中的数据操作日志就记载了数据操作的日期、时间、使用者及动作等相关操作的描述。
配置文件:配置文件即对不同对象进行不同配置的文件。配置文件主要包括:本地用户配置文件,在用户第一次登录到计算机上时被创建,这个本地用户配置文件被储存在计算机的本地硬盘驱动器上,任何对本地用户配置文件所作的更改都只对发生改变的计算机产生作用;漫游用户配置文件。一个本地配置文件的副本被复制及储存在网络上的一个服务器共享上。当用户每次登录到网络上的任一台计算机上时,这个文件都会被下载,并且当用户注销时,任何对漫游用户配置文件的更改都会与服务器的拷贝同步。漫游用户配置文件要求这台计算机是域的一个成员。
MySQL:MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。
Oracle插件:Oracle开发的关系数据库产品插件。
图1为本申请实施例提供的一种数据库实时同步方法的方法流程图。如图1所示,本申请实施例提供的一种数据库实时同步方法具体如下:
S101、获取各数据库的快照。
在步骤S101中,获取各数据库的快照这一操作是在同一时间进行的,例如,数据库群组中有n个数据库,则获取各数据库的快照操作具体为:在同一时间对n个数据库进行同时快照,快照内容包括这一时间的所有数据库的数据量、数据种类好数据状态等信息。在获取各数据库快照后,将快照存放于存储介质中等待后续步骤调用。
S102、根据指令对所述数据库进行数据操作,根据所述数据操作和当前数据库的快照生成数据操作日志。
在本实施例中,指令由用户或技术人员向数据库或控制系统发出,当用户或技术人员需要对数据库的内容和数据进行增加、删除或修改时,则向数据库或控制系统发出指令,其中,指令包括了需要作出的数据增加、删除或修改的操作命令。数据库接收到指令后,根据指令中包含的数据增加、删除或修改的操作命令对数据进行增加、删除或修改操作,并实时记录具体操作,根据数据操作和之前步骤中取得的快照生成数据操作日志。其中,数据操作日志是记录有操作的类型(例如增加、删除或修改的某一种操作类型)、操作的对象(例如修改的是哪一个数据)以及操作前后数据值(例如操作前的数据的大小以及操作后数据的大小)等。
S103、获取所述数据操作日志,根据所述数据操作日志对其他数据库进行数据操作。
在步骤S103中,根据所述数据操作日志对其他数据库进行数据操作,包括:接收操作日志,解析所述操作日志得到所述数据操作;根据所述数据操作建表;根据建表结果对其他数据库进行数据操作。本实施例的作用在于,利用日志来传递用户或技术人员对数据库数据的操作,当操作日志在不同的数据库之间流转时,各数据库共同执行操作日志中的操作,将各数据库中的日志同步为一致。
可选地,在根据建表结果对其他数据库进行数据操作时,所述方法还包括:根据预设标准判断所述数据库是否需要建表,若是,则对所述数据库进行建表;对所述数据库的数据进行融合转换和/或路由转发处理。建表的作用在于建立数据操作的时间和数据操作类型的对于关系表格,便于数据库执行数据操作。
可选地,在根据建表结果对其他数据库进行数据操作时,所述方法还包括:检测所述数据库的目标表是否丢失,若是,则重新对所述数据库进行建表;对所述数据库的数据进行融合转换和/或路由转发处理。在数据库的数据传输和运行过程中,经常会发生数据表丢失和损坏等情况,因此需要检测所述数据库的目标表是否丢失,并对丢失的数据表(目标表)进行重建,降低数据同步的错误率和故障率。
需要说明的是,本实施例中根据所述数据操作日志对其他数据库进行数据操作的过程是实时的,即,当某一个数据库发生了数据操作(包括增加、删除或修改)后都会生成数据操作日志,当报数据操作日志发送至不同的各数据库后,各数据库根据操作日志进行对应的操作,并且同一份操作日志得到的数据操作是一致的。由于各数据库的初始状态一致,在执行相同的数据操作的时候能够保持一致性,实现各数据库的实时同步。
其中,所述数据操作包括对数据进行插入、更新和删除,所述数据操作日志包括所述数据操作的顺序和种类。
图2为本申请实施例提供的获取快照的流程方法,如图2所示,具体如下:
S201、检测数据库连接是否启动。
在步骤S201中,数据库连接是指数据库之间的数据传输通道连接,当数据库连接后各数据库之间能够相互传递数据。检测数据库连接是否启动的作用在于,当数据库连接,则能够保证各数据库之间的数据一致,此时对各数据库进行快照能够记录各数据库的数据一致时的状态。
S202、若所述数据库连接启动,则同时获取各数据库的快照。
在本实施例中,所述快照包括数据库的数据数量、数据种类、数据值和数据分布信息。
图3为本申请实施例提供的对数据库进行数据操作的流程方法,如图2所示,具体如下:
S301、接收指令,得到需要对所述数据库进行的数据操作。
在本实施例中,指令由用户或技术人员向数据库或控制系统发出,当用户或技术人员需要对数据库的内容和数据进行增加、删除或修改时,则向数据库或控制系统发出指令,其中,指令包括了需要作出的数据增加、删除或修改的操作命令。数据库接收到指令后,根据指令中包含的数据增加、删除或修改的操作命令对数据进行增加、删除或修改操作,并实时记录具体操作,根据数据操作和之前步骤中取得的快照生成数据操作日志。其中,数据操作日志是记录有操作的类型(例如增加、删除或修改的某一种操作类型)、操作的对象(例如修改的是哪一个数据)以及操作前后数据值(例如操作前的数据的大小以及操作后数据的大小)等。
S302、将所述数据操作制作为配置文件,将所述配置文件发送至所述数据库。
在本实施例中,数据库接收到指令后并不能直接对数据进行操作,需要将数据操作制作为配置文件,配置文件具有统一性和可复制性,能够统一发送至不同的数据库,保证每个数据库得到的数据操作指令一致。当配置文件被发送至数据库时,数据库解析配置文件并得到数据操作。相较于直接向各数据库转发数据操作,先将数据操作制作为配置文件的技术方案能够有效提高数据操作传输的稳定性,减小数据库实时同步的过程中出现同步信息不一致的概率。
S303、根据所述配置文件对所述数据库进行数据操作。
在本实施例中,数据库能够从配置文件中解析得到数据操作,包括数据操作的种类、顺序和具体操作信息,根据数据操作的种类、顺序和具体操作信息对数据库中的数据进行对应操作处理。
可选地,根据所述配置文件对所述数据库进行数据操作,包括:根据所述配置文件使用指定的数据输出插件和数据融合插件启动输出服务;与中间件交互,所述中间件用于主动推送数据到所述输出服务;其中,所述输出服务集群支持动态扩容。数据输出插件能够输出数据库的数据和操作日志,数据融合插件能够将不同类型的数据融合后启动数据输出服务。中间件是位于不同数据库之间的中间件,能够主动将数据推送到输出服务。
可选地,根据下游数据库是否需要建表或者发现目标表丢失时,执行自动建表语句,后续对多个主题的数据进行数据融合转换、路由转发、达到整库同步的目的,组合成新的数据,并基于数据的主键构建各类数据库的合并更新写入的语句,提交给数据库运行,保证数据至少传送一次。如果上游数据字段进行变更或者下游缺失表字段时,会执行表结构的自动演化,向下游追加字段,保证数据结构变更过程中无需人工介入。
图4为本申请实施例提供的一种数据库实时同步方法的原理图,如图4所示,具体包括:任务配置中心,通过与采集服务和输出服务交互,负责配置数据同步任务;采集服务和输出服务,用于采集数据和输出数据;消息中间件,用于在各数据库之间进行消息中转。其中,本申请采用插件的形式对不同数据进行处理,包括采集插件中心、数据融合插件和输出插件中心。采集插件中心包括MySQL实时采集插件、Oracle实时采集插件和mssql实时采集插件。
此外,实现本申请的同步数据库还需要数据融合插件,包括数据过滤插件、数据转换插件和数据路由插件。数据过滤插件能够对进入数据库的数据进行初步过滤,在运行数据库之前进行过滤条件的设置。数据转换插件能够对数据的格式进行转换。
可选地,本申请还能通过数据传输监控日志服务对数据库进行监控。具体包括,数据传输监控日志服务对每一份数据操作日志进行监控分析,当监控到数据操作日志异常时将会启动数据传输异常告警服务进行告警,例如包括钉钉告警和邮箱告警,发送告警信息至指定的渠道以通知相关技术人员进行数据异常的监控。
图5为本申请实施例提供的一种数据库实时同步装置的结构图。参照图5,本发明实施例还提供了一种数据库实时同步装置,包括:
快照模块501,用于获取各数据库的快照。
操作模块502,用于根据指令对所述数据库进行数据操作,根据所述数据操作和当前数据库的快照生成数据操作日志。
同步模块503,用于获取所述数据操作日志,根据所述数据操作日志对其他数据库进行数据操作。
其中,所述数据操作包括对数据进行插入、更新和删除,所述数据操作日志包括所述数据操作的顺序和种类。
可见,上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
参照图6,本申请实施例提供了一种数据库实时同步装置,包括:
至少一个处理器601;
至少一个存储器602,用于存储至少一个程序;
当至少一个程序被至少一个处理器601执行时,使得至少一个处理器601实现的前述实施例的数据库实时同步方法。
同理,上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供了一种存储介质,存储介质存储有程序,程序在被处理器执行时用于实现前述实施例的数据库实时同步方法。
上述的方法实施例中的内容均适用于本存储介质实施例中,本存储介质实施例所具体实现的功能与上述的方法实施例相同。
同理,上述方法实施例中的内容均适用于本存储介质实施例中,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或方框有时能以相反顺序被执行。此外,在本申请的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本申请,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本申请是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本申请。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本申请的范围,本申请的范围由所附权利要求书及其等同方案的全部范围来决定。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
尽管已经示出和描述了本申请的实施方式,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据库实时同步方法,其特征在于,所述方法包括:
获取各数据库的快照;
根据指令对所述数据库进行数据操作,根据所述数据操作和当前数据库的快照生成数据操作日志;
获取所述数据操作日志,根据所述数据操作日志对其他数据库进行数据操作;
其中,所述数据操作包括对数据进行插入、更新和删除,所述数据操作日志包括所述数据操作的顺序和种类。
2.根据权利要求1所述的一种数据库实时同步方法,其特征在于,所述获取各数据库的快照,包括:
检测数据库连接是否启动,若所述数据库连接启动,则同时获取各数据库的快照,其中,所述快照包括数据库的数据数量、数据种类、数据值和数据分布信息。
3.根据权利要求1所述的一种数据库实时同步方法,其特征在于,根据指令对所述数据库进行数据操作,包括:
接收指令,得到需要对所述数据库进行的数据操作;
将所述数据操作制作为配置文件,将所述配置文件发送至所述数据库;
根据所述配置文件对所述数据库进行数据操作。
4.根据权利要求3所述的一种数据库实时同步方法,其特征在于,根据所述配置文件对所述数据库进行数据操作,包括:
根据所述配置文件使用指定的数据输出插件和数据融合插件启动输出服务;
与中间件交互,所述中间件用于主动推送数据到所述输出服务;
其中,所述输出服务集群支持动态扩容。
5.根据权利要求1所述的一种数据库实时同步方法,其特征在于,根据所述数据操作日志对其他数据库进行数据操作,包括:
接收操作日志,解析所述操作日志得到所述数据操作;
根据所述数据操作建表;
根据建表结果对其他数据库进行数据操作。
6.根据权利要求5所述的一种数据库实时同步方法,其特征在于,在根据建表结果对其他数据库进行数据操作时,所述方法还包括:
根据预设标准判断所述数据库是否需要建表,若是,则对所述数据库进行建表;
对所述数据库的数据进行融合转换和/或路由转发处理。
7.根据权利要求5所述的一种数据库实时同步方法,其特征在于,在根据建表结果对其他数据库进行数据操作时,所述方法还包括:
检测所述数据库的目标表是否丢失,若是,则重新对所述数据库进行建表;
对所述数据库的数据进行融合转换和/或路由转发处理。
8.一种数据库实时同步装置,其特征在于,所述装置包括:
快照模块,用于获取各数据库的快照;
操作模块,用于根据指令对所述数据库进行数据操作,根据所述数据操作和当前数据库的快照生成数据操作日志;
同步模块,用于获取所述数据操作日志,根据所述数据操作日志对其他数据库进行数据操作;
其中,所述数据操作包括对数据进行插入、更新和删除,所述数据操作日志包括所述数据操作的顺序和种类。
9.一种数据库实时同步装置,其特征在于,所述装置包括:
至少一个处理器;
至少一个存储器,所述存储器用于存储至少一个程序;
当至少一个所述程序被至少一个所述处理器执行时实现如权利要求1-7中任一项所述的一种数据库实时同步方法。
10.存储介质,其特征在于,所述存储介质存储有处理器可执行的程序,所述处理器可执行的程序被处理器执行时实现如权利要求1-7中任一项所述的一种数据库实时同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210196414.0A CN114780634A (zh) | 2022-03-01 | 2022-03-01 | 一种数据库实时同步方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210196414.0A CN114780634A (zh) | 2022-03-01 | 2022-03-01 | 一种数据库实时同步方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114780634A true CN114780634A (zh) | 2022-07-22 |
Family
ID=82422909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210196414.0A Pending CN114780634A (zh) | 2022-03-01 | 2022-03-01 | 一种数据库实时同步方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114780634A (zh) |
-
2022
- 2022-03-01 CN CN202210196414.0A patent/CN114780634A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109960710B (zh) | 数据库之间的数据同步方法和系统 | |
CN109493076B (zh) | 一种Kafka消息唯一消费方法、系统、服务器及存储介质 | |
WO2022126974A1 (zh) | 基于Kafka的增量数据同步方法、装置、设备及介质 | |
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
CN109918349B (zh) | 日志处理方法、装置、存储介质和电子装置 | |
US9031997B2 (en) | Log file compression | |
US20170031948A1 (en) | File synchronization method, server, and terminal | |
CN111125260A (zh) | 一种基于SQL Server的数据同步方法及系统 | |
CN111177159B (zh) | 一种数据处理的系统、方法和数据更新设备 | |
CN111897878A (zh) | 主辅数据同步方法及系统 | |
CN112612850A (zh) | 数据同步方法及装置 | |
CN110650164B (zh) | 文件的上传方法、装置、终端以及计算机存储介质 | |
CN113806301A (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN115438122A (zh) | 数据异构同步系统 | |
CN116701352A (zh) | 一种数据库数据迁移方法及系统 | |
CN115033646B (zh) | 一种基于Flink&Doris构建实时数仓系统的方法 | |
CN114780634A (zh) | 一种数据库实时同步方法、装置和存储介质 | |
CN115757642A (zh) | 一种基于归档日志文件的数据同步方法及装置 | |
CN115509769A (zh) | 一种私有云中Kafka部署方法、装置及电子设备 | |
CN113239005B (zh) | 一种电力监控系统i、iv区数据同步方法及装置 | |
CN113360319B (zh) | 一种数据备份方法和装置 | |
CN114579667A (zh) | 一种HBase数据增量同步的方法、装置及系统 | |
CN104753659A (zh) | 一种多网元数据同步加载的方法、装置及系统 | |
CN113625952A (zh) | 一种对象存储方法、装置、设备及存储介质 | |
CN113515574A (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 |