CN117971984B - 分布式数据库集群间表数据的同步方法及*** - Google Patents
分布式数据库集群间表数据的同步方法及*** Download PDFInfo
- Publication number
- CN117971984B CN117971984B CN202410377004.5A CN202410377004A CN117971984B CN 117971984 B CN117971984 B CN 117971984B CN 202410377004 A CN202410377004 A CN 202410377004A CN 117971984 B CN117971984 B CN 117971984B
- Authority
- CN
- China
- Prior art keywords
- synchronous
- data
- synchronization
- target
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 230000001360 synchronised effect Effects 0.000 claims abstract description 285
- 238000012795 verification Methods 0.000 claims abstract description 32
- 238000013500 data storage Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 12
- 230000008569 process Effects 0.000 description 48
- 238000012544 monitoring process Methods 0.000 description 9
- 238000013508 migration Methods 0.000 description 8
- 230000005012 migration Effects 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,公开了一种分布式数据库集群间表数据的同步方法及***,用于提高分布式数据库集群间表数据的同步的效率。方法包括:创建临时外部表,基于所述同步任务列表以及所述待同步表数据,通过所述目标同步命令对所述临时外部表进行表数据文件同步,得到同步临时表;对所述同步临时表以及所述待同步表数据进行同步完整性校验,得到校验结果;当所述校验结果为通过时,将所述同步临时表的数据***预置的目标同步表中,同时,采集同步日志信息,将所述同步日志信息传输至预置的同步展示终端。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种分布式数据库集群间表数据的同步方法及***。
背景技术
随着分布式数据库***的广泛应用,数据库集群间表数据文件的同步问题变得日益重要。应用中为了确保数据的安全性和高可用性,都会选择给数据库做一个或者多个备份。同时,分布式数据库的不同集群环境之间也存在着表数据同步的需求,如数据库主集群和备份集群、正式上线环境和测试开发环境之间的数据同步迁移等。
传统的数据库间的表数据同步一般采用透明网关服务的方式,透明网关服务通常需要依赖特定的数据库协议,如果需要同步多个不同的数据库,可能需要重新配置或开发适配器,增加了开发和维护的成本。对于拓扑结构一致(节点数和分片数据分布方式一致)的分布式数据库间的表数据同步,还可以选择源数据库和目标数据库之间表分片数据文件点对点拷贝的方式,但对于拓扑结构不一致的分布式数据库集群之间无法简单的直接应用。其他传统的数据库同步方法往往还存在性能瓶颈、安全性不足以及数据一致性问题。因此,开发一种高效、安全、可靠的数据库表数据文件同步方法成为亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供了一种分布式数据库集群间表数据的同步方法及***,用于提高分布式数据库集群间表数据的同步的效率。
本发明提供了一种分布式数据库集群间表数据的同步方法,包括:通过连接配置文件对预置的源数据库以及预置的目标数据库进行连接信息配置,其中,所述连接配置文件包括:IP地址、端口、数据库名称、用户名及用户密码;采集待同步表数据,并根据所述待同步表数据生成同步任务列表;基于预置的SQL组件,根据所述同步任务列表生成目标同步表,同时对所述同步任务列表进行同步命令生成,得到目标同步命令;创建临时外部表,基于所述同步任务列表以及所述待同步表数据,并通过所述目标同步命令对所述临时外部表进行表数据文件同步,得到同步临时表;对所述同步临时表以及所述待同步表数据进行同步完整性校验,得到校验结果;当所述校验结果为通过时,将所述同步临时表的数据***预置的目标同步表中,同时,采集同步日志信息,并将所述同步日志信息传输至预置的同步展示终端。
在本发明中,所述基于预置的SQL组件,根据所述同步任务列表生成目标同步表,同时对所述同步任务列表进行同步命令生成,得到目标同步命令步骤,包括:对所述连接配置文件进行解析,得到解析数据,并根据所述解析数据对所述源数据库以及所述目标数据库建立连接;通过所述SQL组件获取所述源数据库的建表语句,得到第一建表语句集合;通过所述SQL组件获取所述目标数据库的建表语句,得到第二建表语句集合;基于所述第一建表语句集合以及所述第二建表语句集合,通过所述同步任务列表生成目标同步表;对所述目标数据库进行文件存储路径提取,得到文件存储路径,并根据所述文件存储路径对所述同步任务列表进行同步命令生成,得到目标同步命令。
在本发明中,所述基于所述第一建表语句集合以及所述第二建表语句集合,通过所述同步任务列表生成目标同步表步骤,包括:对所述第一建表语句集合以及所述第二建表语句集合进行语句比对,得到语句比对结果;当所述语句比对结果为所述目标数据库不存在同步表时,通过所述同步任务列表生成目标同步表;当所述语句比对结果为所述目标数据库存在非目标同步表时,对所述非目标同步表进行删除,同时,通过所述同步任务列表生成所述目标同步表。
在本发明中,所述创建临时外部表,基于所述同步任务列表以及所述待同步表数据,并通过所述目标同步命令对所述临时外部表进行表数据文件同步,得到同步临时表步骤,包括:创建临时外部表,基于所述同步任务列表,对所述待同步表数据进行数据存储位置提取,得到数据存储位置;执行所述目标同步命令,基于所述数据存储位置,将所述待同步表数据同步至所述临时外部表,得到所述同步临时表。
在本发明中,所述对所述同步临时表以及所述待同步表数据进行同步完整性校验,得到校验结果步骤,包括:对所述源数据库进行同步数据条数采集,得到第一同步数据条数;对所述目标数据库进行同步数据条数采集,得到第二同步数据条数;基于所述第一同步数据条数,对所述同步临时表进行MD5值计算,得到第一MD5值集合;基于所述第二同步数据条数,对所述待同步表数据进行MD5值计算,得到第二MD5值集合;基于所述第一MD5值集合以及所述第二MD5值集合,对所述同步临时表以及所述待同步表数据进行同步完整性校验,得到校验结果。
在本发明中,所述当所述校验结果为通过时,将所述同步临时表的数据***预置的目标同步表中,同时,采集同步日志信息,并将所述同步日志信息传输至预置的同步展示终端步骤,包括:当所述校验结果为通过时,将所述同步临时表的数据***预置的目标同步表中;采集同步日志信息,其中,所述同步日志信息包括:同步开始时间、同步结束时间以及同步状态数据;将所述同步日志信息传输至预置的同步展示终端。
在本发明中,所述将所述同步日志信息传输至预置的同步展示终端步骤,包括:对所述同步日志信息进行数据展示内容筛选,得到目标展示内容;将所述目标展示内容传输至所述同步展示终端进行数据展示。
本发明还提供了一种分布式数据库集群间表数据的同步***,包括:
配置模块,用于通过连接配置文件对预置的源数据库以及预置的目标数据库进行连接信息配置,其中,所述连接配置文件包括:IP地址、端口、数据库名称、用户名及用户密码;
采集模块,用于采集待同步表数据,并根据所述待同步表数据生成同步任务列表;
生成模块,用于基于预置的SQL组件,根据所述同步任务列表生成目标同步表,同时对所述同步任务列表进行同步命令生成,得到目标同步命令;
同步模块,用于创建临时外部表,基于所述同步任务列表以及所述待同步表数据,并通过所述目标同步命令对所述临时外部表进行表数据文件同步,得到同步临时表;
校验模块,用于对所述同步临时表以及所述待同步表数据进行同步完整性校验,得到校验结果;
***模块,用于当所述校验结果为通过时,将所述同步临时表的数据***预置的目标同步表中,同时,采集同步日志信息,并将所述同步日志信息传输至预置的同步展示终端。
本发明提供的技术方案中,通过利用预置的SQL组件自动化生成同步任务列表和目标同步命令,以及使用rsync等高效的数据同步工具,该方法能够快速完成大量数据的迁移和同步。这种自动化和工具的使用大大提高了同步过程的效率,特别是在处理大规模数据时,相比传统手工同步方法,可以节省大量的时间和努力。通过对源数据库和目标数据库中表的建表语句进行比对,并根据比对结果进行必要的表结构调整,确保了数据迁移的准确性和目标数据库的数据结构一致性。此外,通过对同步后数据的完整性校验,包括记录数和MD5值的比对,进一步保证了数据的完整性和一致性,避免了数据丢失或错误的风险。该方法通过创建临时外部表进行数据同步,避免了直接在目标同步表上操作,降低了对目标数据库运行的影响,同时通过rsync等工具的使用,保证了数据在传输过程中的安全性和可靠性。此外,同步过程中详细的日志记录和实时监控也为同步任务的成功执行提供了可靠的保障。该同步方法通过对连接配置文件的使用,提供了高度的灵活性,支持不同的数据库产品和配置,使得该方法可以广泛适用于多种分布式数据库集群环境。同时,通过自动化生成同步命令和处理同步任务,该方法能够灵活应对不同的同步需求和场景。通过将同步日志信息传输至预置的同步展示终端,该方法为数据库管理员和运维人员提供了一个实时监控同步过程的窗口,使得同步过程高度透明,任何问题都可以迅速被发现和处理。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种分布式数据库集群间表数据的同步方法的流程图。
图2为本发明实施例中通过同步任务列表生成目标同步表的流程图。
图3为本发明实施例中一种分布式数据库集群间表数据的同步***的示意图。
附图标记:
301、配置模块;302、采集模块;303、生成模块;304、同步模块;305、校验模块;306、***模块。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,图1是本发明实施例的一种分布式数据库集群间表数据的同步方法的流程图,如图1所示,包括以下步骤:
S101、通过连接配置文件对预置的源数据库以及预置的目标数据库进行连接信息配置,其中,连接配置文件包括:IP地址、端口、数据库名称、用户名及用户密码;
S102、采集待同步表数据,并根据待同步表数据生成同步任务列表;
S103、基于预置的SQL组件,根据同步任务列表生成目标同步表,同时对同步任务列表进行同步命令生成,得到目标同步命令;
S104、创建临时外部表,基于同步任务列表以及待同步表数据,并通过目标同步命令对临时外部表进行表数据文件同步,得到同步临时表;
S105、对同步临时表以及待同步表数据进行同步完整性校验,得到校验结果;
S106、当校验结果为通过时,将同步临时表的数据***预置的目标同步表中,同时,采集同步日志信息,并将同步日志信息传输至预置的同步展示终端。
需要说明的是,首先,核心于此过程的是连接配置文件,它为源数据库和目标数据库之间的数据同步提供了必要的信息。这个配置文件包括了数据库的IP地址、端口、名称、用户名及密码等关键信息,使得同步管理组件能够准确地定位到源数据库和目标数据库,并建立起安全的连接。以MySQL数据库为例,配置文件可能指定源数据库位于192.168.1.100:3306,使用用户名root和密码password,而目标数据库可能位于192.168.1.101:3306上,使用相同的认证信息。
一旦建立了数据库的连接,接下来的任务是采集待同步的表数据。这通常涉及到对源数据库进行查询,确定哪些表需要同步到目标数据库。这一步骤不仅仅是列出表名那么简单,还可能包括分析表的数据量、更新频率等因素,以决定同步的优先级和策略。假设源数据库中有一个名为“customers”的表,它存储了客户信息,并且被标记为高优先级同步对象。
有了待同步表的数据后,同步任务列表就可以生成了。这个列表是同步过程的蓝图,指明了哪些表将被同步,以及同步的顺序和方法。接下来,利用预置的SQL组件,基于这个同步任务列表,为每个待同步的表生成相应的目标同步命令。例如,对于“customers”表,同步命令可能包括在目标数据库中创建一个结构相同的空表,以便后续将数据同步过来。
同步命令的一个关键部分是创建临时外部表。这些表是同步过程中的临时存储,它们在目标数据库中创建,但不直接包含数据,而是链接到通过rsync命令同步过来的数据文件。这种方法允许同步过程灵活处理大量数据,同时减少对目标数据库性能的影响。当rsync命令执行时,它将“customers”表的数据从源数据库服务器复制到目标数据库服务器的指定位置,随后,通过SQL命令将这些数据文件与临时外部表关联起来,形成了所谓的同步临时表。
在数据成功同步到临时外部表之后,下一个关键步骤是进行同步完整性校验。这一步骤确保了数据从源头到目标的过程中未发生损失或变更。通过比较源数据库和目标数据库中“customers”表的记录数和MD5sum值,可以验证数据的完整性和准确性。如果校验结果显示数据完整且一致,那么可以安全地将数据从同步临时表移动到目标同步表中,这通常通过执行INSERT INTO SELECT语句完成。
同时,整个同步过程中的每个关键事件都被记录在同步日志中。这些日志详细记录了任务的开始时间、结束时间、执行状态和遇到的任何错误信息,为同步过程提供了完整的历史记录和透明度。通过将这些日志信息传输至预置的同步展示终端,管理员和运维人员可以实时监控数据同步的进展,及时发现并解决可能出现的问题。例如,如果同步“customers”表时发现数据不一致,相关日志将帮助快速定位问题,无论是数据源的问题还是同步过程中的网络故障。
通过执行上述步骤,通过利用预置的SQL组件自动化生成同步任务列表和目标同步命令,以及使用rsync等高效的数据同步工具,该方法能够快速完成大量数据的迁移和同步。这种自动化和工具的使用大大提高了同步过程的效率,特别是在处理大规模数据时,相比传统手工同步方法,可以节省大量的时间和努力。通过对源数据库和目标数据库中表的建表语句进行比对,并根据比对结果进行必要的表结构调整,确保了数据迁移的准确性和目标数据库的数据结构一致性。此外,通过对同步后数据的完整性校验,包括记录数和MD5值的比对,进一步保证了数据的完整性和一致性,避免了数据丢失或错误的风险。该方法通过创建临时外部表进行数据同步,避免了直接在目标同步表上操作,降低了对目标数据库运行的影响,同时通过rsync等工具的使用,保证了数据在传输过程中的安全性和可靠性。此外,同步过程中详细的日志记录和实时监控也为同步任务的成功执行提供了可靠的保障。该同步方法通过对连接配置文件的使用,提供了高度的灵活性,支持不同的数据库产品和配置,使得该方法可以广泛适用于多种分布式数据库集群环境。同时,通过自动化生成同步命令和处理同步任务,该方法能够灵活应对不同的同步需求和场景。通过将同步日志信息传输至预置的同步展示终端,该方法为数据库管理员和运维人员提供了一个实时监控同步过程的窗口,使得同步过程高度透明,任何问题都可以迅速被发现和处理。
在一具体实施例中,执行步骤S103的过程可以具体包括如下步骤:
(1)对连接配置文件进行解析,得到解析数据,并根据解析数据对源数据库以及目标数据库建立连接;
(2)通过SQL组件获取源数据库的建表语句,得到第一建表语句集合;
(3)通过SQL组件获取目标数据库的建表语句,得到第二建表语句集合;
(4)基于第一建表语句集合以及第二建表语句集合,通过同步任务列表生成目标同步表;
(5)对目标数据库进行文件存储路径提取,得到文件存储路径,并根据文件存储路径对同步任务列表进行同步命令生成,得到目标同步命令。
具体的,首先,同步过程启动时,首要任务是解析连接配置文件。这个文件包含了源数据库和目标数据库的必要连接信息,如IP地址、端口、数据库名称、用户名及密码。解析这些信息的目的是为了建立一个稳定的连接通道,确保同步能够访问源数据库和目标数据库。这一步是数据同步过程的基础,因为没有正确的连接信息,任何数据同步活动都无法进行。
接着,通过预置的SQL组件,会分别从源数据库和目标数据库中获取建表语句。这些建表语句代表了数据库中表的结构定义,包括列名、数据类型、约束等信息。从源数据库获取的建表语句集合称为第一建表语句集合,而从目标数据库获取的则称为第二建表语句集合。比对这两个集合的目的是为了发现和解决源数据库和目标数据库之间表结构的差异。这一步骤对于保持数据一致性和确保数据能够正确导入至目标数据库是至关重要的。
基于第一和第二建表语句集合的比对结果,将通过同步任务列表来生成目标同步表。如果目标数据库中缺少相应的表,或者表结构与源数据库不一致,则会根据源数据库的建表语句集合来创建或重建目标同步表。这确保了在数据同步之前,目标数据库中的表结构能够与源数据库中的表结构完全匹配,从而避免了因结构不匹配导致的数据同步失败。
此外,还需要对目标数据库进行文件存储路径的提取,这一信息是为了后续的数据同步准备的。得到文件存储路径后,将根据这一路径对同步任务列表进行同步命令的生成,进而得到目标同步命令。这些同步命令可能包括数据导出、导入命令,或者是更为复杂的数据处理逻辑,旨在将数据从源数据库中导出,然后导入到目标数据库的相应位置。
在一具体实施例中,如图2所示,执行通过同步任务列表生成目标同步表步骤的过程可以具体包括如下步骤:
S201、对第一建表语句集合以及第二建表语句集合进行语句比对,得到语句比对结果;
S202、当语句比对结果为目标数据库不存在同步表时,通过同步任务列表生成目标同步表;
S203、当语句比对结果为目标数据库存在非目标同步表时,对非目标同步表进行删除,同时,通过同步任务列表生成目标同步表。
需要说明的是,首先,通过预置的SQL组件分别从源数据库和目标数据库中提取建表语句,形成第一和第二建表语句集合。这一步骤是为了获取两个数据库中各个表的结构定义,包括列的名称、类型、约束等所有细节。例如,源数据库中有一个名为"employees"的表,其建表语句可能包含员工ID、姓名、部门等字段的定义。相应地,也会从目标数据库中尝试获取同名表的建表语句。
接着,将对这两个建表语句集合进行详细比对。这个比对过程是为了确定源数据库中存在而目标数据库中可能缺失或结构不一致的表。比对过程中,会逐一检查每个字段的定义,包括字段类型、大小、默认值以及是否允许为空等属性。如果比对结果显示目标数据库中缺少某个表,或者某个表的结构与源数据库中的不一致,这意味着需要在目标数据库中创建或修改表以匹配源数据库的结构。
当比对结果显示目标数据库中不存在与源数据库中相对应的同步表时,将根据同步任务列表生成目标同步表。这一步骤涉及使用源数据库中提取的建表语句在目标数据库中创建新表。这确保了新创建的表在结构上与源数据库中的表完全一致,为数据同步提供了正确的目的地。
另一方面,如果比对结果显示目标数据库中存在同名的表,但其结构与源数据库中的表不一致,则将采取措施删除目标数据库中的这个非目标同步表。删除后,再次利用源数据库的建表语句在目标数据库中创建新表。这一过程确保了即使在目标数据库中已有同名表存在的情况下,通过删除旧表并重新创建新表的方式,也能保证目标表的结构与源数据库中的表结构完全一致。
例如,如果源数据库中的"employees"表包含一个新增加的"email"字段,而目标数据库中的同名表尚未包含这一字段,首先会删除目标数据库中的"employees"表,然后使用包含"email"字段的建表语句重新创建这个表。这样,当数据同步开始时,目标数据库中的"employees"表就能够准确地接收包括"email"在内的所有数据。
在一具体实施例中,执行步骤S104的过程可以具体包括如下步骤:
(1)创建临时外部表,基于同步任务列表,对待同步表数据进行数据存储位置提取,得到数据存储位置;
(2)执行目标同步命令,基于数据存储位置,将待同步表数据同步至临时外部表,得到同步临时表。
具体的,首先,对同步任务列表进行详细的解析,确定哪些表需要被同步以及它们当前的存储位置。这一步是通过预置的SQL组件完成的,该组件能够访问源数据库并获取每个待同步表的具体数据文件路径。例如,如果同步任务列表包括一个名为“orders”的表,将查询源数据库,确定“orders”表的数据文件存放在源数据库服务器的特定目录下,如“/var/db/data/orders”。
获取到待同步表的数据存储位置后,下一步是在目标数据库中创建对应的临时外部表。这一临时表的结构需要与源表保持一致,但它不直接存储数据,而是作为一个临时的数据载体,指向即将从源数据库同步过来的数据文件。在目标数据库中创建临时外部表的过程涉及到SQL命令的执行,这些命令根据从源数据库获取的表结构信息来定义临时外部表的结构,并指定一个临时的数据存储位置,这一位置通常是目标数据库服务器上的一个临时目录,准备接收同步过来的数据文件。
接下来,执行目标同步命令是将数据从源数据库的原始存储位置同步至目标数据库的临时外部表的关键步骤。这通常通过使用如rsync这样的工具来完成,它能够确保数据文件从源位置高效且安全地传输到目标位置。在这个例子中,将执行rsync命令,将“/var/db/data/orders”目录下的数据文件同步到目标数据库服务器上预先设定的临时目录中。通过这种方式,所有需要同步的数据被准确无误地复制到目标数据库服务器上,而且由于使用了外部表的机制,这个过程对目标数据库的影响被最小化,同时也保证了数据同步过程的高效性和可靠性。
一旦数据同步完成,临时外部表就拥有了一份完整的、与源数据库中“orders”表相一致的数据副本。这时,临时外部表实际上成为了数据迁移过程中的一个中转站,它暂时承载了同步过来的数据,等待进一步的处理。在这个基础上,可以进一步执行数据的校验工作,确保数据的完整性和准确性未受影响。只有当这些校验工作确认无误后,数据才会从临时外部表迁移到目标同步表中,完成整个数据同步过程。
在一具体实施例中,执行步骤S105步骤的过程可以具体包括如下步骤:
(1)对源数据库进行同步数据条数采集,得到第一同步数据条数;
(2)对目标数据库进行同步数据条数采集,得到第二同步数据条数;
(3)基于第一同步数据条数,对同步临时表进行MD5值计算,得到第一MD5值集合;
(4)基于第二同步数据条数,对待同步表数据进行MD5值计算,得到第二MD5值集合;
(5)基于第一MD5值集合以及第二MD5值集合,对同步临时表以及待同步表数据进行同步完整性校验,得到校验结果。
具体的,首先,从源数据库采集同步数据条数,这一步骤旨在获取待同步表中的记录总数,作为后续校验工作的基准。例如,如果计划同步一个名为“CustomerInfo”的表,首先在源数据库上执行一个简单的SQL查询,如SELECT COUNT(*) FROM CustomerInfo;,以获得该表中的记录总数,这个数字称为第一同步数据条数。接着,在目标数据库上执行相同的操作,采集同步后,即数据被复制到临时外部表后的记录总数,这个数字称为第二同步数据条数。这两个步骤确保能够比较源表和目标临时表中的记录数量,验证数据在数量上的一致性。
随后,基于第一同步数据条数,需要对源数据库中待同步表的数据进行MD5值计算,生成一个代表数据完整性的指纹或哈希值集合,称为第一MD5值集合。这通常涉及到将表中的每条记录转换为一个字符串,然后对整个字符串集合计算其MD5值。由于直接对整个表数据进行MD5计算在实际操作中可能会遇到性能瓶颈,尤其是在处理大量数据时,可以采取将表数据分批处理的策略,例如,通过分页查询表数据,对每页数据计算MD5值,然后将这些MD5值再进行汇总计算得到整个表的MD5值。
相似地,在目标数据库上,对同步后的临时外部表进行同样的MD5值计算,得到第二MD5值集合。这个集合反映了数据在经过同步过程后的完整性指纹,允许在内容层面上验证数据同步的一致性。
最后,通过比较第一MD5值集合和第二MD5值集合,可以对同步临时表以及待同步表数据进行同步完整性校验。如果两个MD5值集合完全一致,可以得出结论,即同步过程既没有导致数据量的丢失,也没有导致数据内容的改变,从而验证了同步过程的完整性和准确性。如果MD5值不匹配,则表明同步过程中数据可能发生了丢失或变更,需要进一步检查和修正。
在一具体实施例中,执行步骤S106步骤的过程可以具体包括如下步骤:
(1)当校验结果为通过时,将同步临时表的数据***预置的目标同步表中;
(2)采集同步日志信息,其中,同步日志信息包括:同步开始时间、同步结束时间以及同步状态数据;
(3)将同步日志信息传输至预置的同步展示终端。
具体的,首先,校验结果的通过标志着同步数据已经准备好从临时外部表迁移到目标同步表中。例如,如果正在同步一个名为“EmployeeRecords”的表,这个步骤就会将所有经过验证的员工记录从临时表移动到目标表中。这一过程需要精心管理,以避免任何可能的数据冲突或丢失,确保同步数据的完整性不受影响。
同时,同步操作的开始和结束时间,以及同步的状态信息,都被详细记录下来,形成同步日志信息。这些日志不仅包括同步操作的时间戳,还涵盖了同步过程中的关键事件和任何异常情况。例如,日志信息将记录下同步开始时的***时间,当同步操作成功完成时的结束时间,以及同步过程的状态,如“成功”或“失败”。如果在同步过程中遇到错误,这些错误信息也会被记录在日志中,为后续的问题排查提供关键线索。通过这种方式,日志信息为同步操作提供了一个详尽的历史记录,使得同步过程完全透明化,便于管理和监控。
最后,这些同步日志信息被传输至预置的同步展示终端,这个展示终端可能是一个专门的监控仪表板或者是一个日志分析***,它能够实时展示同步操作的状态和历史记录。例如,一个数据库管理员可以通过这个展示终端快速了解到最近一次同步操作的执行情况,包括同步花费的时间、同步的数据量以及任何出现的同步错误。这种实时的信息展示和反馈机制对于确保数据同步操作的顺利进行至关重要,它不仅提高了同步操作的可视性,还增强了数据库管理员对同步过程的掌控能力,使得任何同步问题都能被迅速识别和解决。
在一具体实施例中,执行将同步日志信息传输至预置的同步展示终端步骤的过程可以具体包括如下步骤:
(1)对同步日志信息进行数据展示内容筛选,得到目标展示内容;
(2)将目标展示内容传输至同步展示终端进行数据展示。
需要说明的是,首先,对同步日志信息进行数据展示内容筛选的过程涉及到从大量同步日志中提取最关键的信息,如同步开始时间、结束时间、同步状态(成功或失败)、同步的数据量以及任何错误或异常的详细信息。这一过程需要高效的日志处理机制,能够快速解析日志文件,识别和提取出对运维人员最有帮助的信息。例如,如果一个同步任务包括从源数据库同步“订单”表到目标数据库,同步日志可能记录了此次同步操作开始于凌晨2点,结束于2点15分,整个过程成功同步了10000条订单记录,没有发生任何错误。这些信息就构成了目标展示内容的核心。
接着,一旦目标展示内容被筛选出来,下一步就是将这些内容传输至同步展示终端进行数据展示。这个展示终端可能是一个基于Web的监控仪表板,也可能是一个专业的数据库管理应用,它能够以图表、列表或时间线的形式实时展示同步状态和历史记录。为了实现这一点,同步***需要具备将筛选后的展示内容通过网络传输的能力,这通常通过RESTAPI或者消息队列等技术实现。以REST API为例,同步***可能会将筛选后的日志信息封装成JSON格式,然后通过HTTP POST请求发送至展示终端的后端服务器,后端服务器再将这些信息解析并展示在仪表板上。
本发明实施例还提供了一种分布式数据库集群间表数据的同步***,如图3所示,该一种分布式数据库集群间表数据的同步***具体包括:
配置模块301,用于通过连接配置文件对预置的源数据库以及预置的目标数据库进行连接信息配置,其中,所述连接配置文件包括:IP地址、端口、数据库名称、用户名及用户密码;
采集模块302,用于采集待同步表数据,并根据所述待同步表数据生成同步任务列表;
生成模块303,用于基于预置的SQL组件,根据所述同步任务列表生成目标同步表,同时对所述同步任务列表进行同步命令生成,得到目标同步命令;
同步模块304,用于创建临时外部表,基于所述同步任务列表以及所述待同步表数据,并通过所述目标同步命令对所述临时外部表进行表数据文件同步,得到同步临时表;
校验模块305,用于对所述同步临时表以及所述待同步表数据进行同步完整性校验,得到校验结果;
***模块306,用于当所述校验结果为通过时,将所述同步临时表的数据***预置的目标同步表中,同时,采集同步日志信息,并将所述同步日志信息传输至预置的同步展示终端。
通过上述各个模块的协同工作,通过利用预置的SQL组件自动化生成同步任务列表和目标同步命令,以及使用rsync等高效的数据同步工具,该方法能够快速完成大量数据的迁移和同步。这种自动化和工具的使用大大提高了同步过程的效率,特别是在处理大规模数据时,相比传统手工同步方法,可以节省大量的时间和努力。通过对源数据库和目标数据库中表的建表语句进行比对,并根据比对结果进行必要的表结构调整,确保了数据迁移的准确性和目标数据库的数据结构一致性。此外,通过对同步后数据的完整性校验,包括记录数和MD5值的比对,进一步保证了数据的完整性和一致性,避免了数据丢失或错误的风险。该方法通过创建临时外部表进行数据同步,避免了直接在目标同步表上操作,降低了对目标数据库运行的影响,同时通过rsync等工具的使用,保证了数据在传输过程中的安全性和可靠性。此外,同步过程中详细的日志记录和实时监控也为同步任务的成功执行提供了可靠的保障。该同步方法通过对连接配置文件的使用,提供了高度的灵活性,支持不同的数据库产品和配置,使得该方法可以广泛适用于多种分布式数据库集群环境。同时,通过自动化生成同步命令和处理同步任务,该方法能够灵活应对不同的同步需求和场景。通过将同步日志信息传输至预置的同步展示终端,该方法为数据库管理员和运维人员提供了一个实时监控同步过程的窗口,使得同步过程高度透明,任何问题都可以迅速被发现和处理。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
Claims (6)
1.一种分布式数据库集群间表数据的同步方法,其特征在于,包括:
通过连接配置文件对预置的源数据库以及预置的目标数据库进行连接信息配置,其中,所述连接配置文件包括:IP地址、端口、数据库名称、用户名及用户密码;
采集待同步表数据,并根据所述待同步表数据生成同步任务列表;
基于预置的SQL组件,根据所述同步任务列表生成目标同步表,同时对所述同步任务列表进行同步命令生成,得到目标同步命令;
创建临时外部表,基于所述同步任务列表以及所述待同步表数据,并通过所述目标同步命令对所述临时外部表进行表数据文件同步,得到同步临时表;
对所述同步临时表以及所述待同步表数据进行同步完整性校验,得到校验结果;
当所述校验结果为通过时,将所述同步临时表的数据***预置的目标同步表中,同时,采集同步日志信息,并将所述同步日志信息传输至预置的同步展示终端;
其中,所述基于预置的SQL组件,根据所述同步任务列表生成目标同步表,同时对所述同步任务列表进行同步命令生成,得到目标同步命令步骤,包括:
对所述连接配置文件进行解析,得到解析数据,并根据所述解析数据对所述源数据库以及所述目标数据库建立连接;
通过所述SQL组件获取所述源数据库的建表语句,得到第一建表语句集合;
通过所述SQL组件获取所述目标数据库的建表语句,得到第二建表语句集合;
基于所述第一建表语句集合以及所述第二建表语句集合,通过所述同步任务列表生成目标同步表;
对所述目标数据库进行文件存储路径提取,得到文件存储路径,并根据所述文件存储路径对所述同步任务列表进行同步命令生成,得到目标同步命令;
其中,所述基于所述第一建表语句集合以及所述第二建表语句集合,通过所述同步任务列表生成目标同步表步骤,包括:
对所述第一建表语句集合以及所述第二建表语句集合进行语句比对,得到语句比对结果;
当所述语句比对结果为所述目标数据库不存在同步表时,通过所述同步任务列表生成目标同步表;
当所述语句比对结果为所述目标数据库存在非目标同步表时,对所述非目标同步表进行删除,同时,通过所述同步任务列表生成所述目标同步表。
2.根据权利要求1所述的分布式数据库集群间表数据的同步方法,其特征在于,所述创建临时外部表,基于所述同步任务列表以及所述待同步表数据,并通过所述目标同步命令对所述临时外部表进行表数据文件同步,得到同步临时表步骤,包括:
创建临时外部表,基于所述同步任务列表,对所述待同步表数据进行数据存储位置提取,得到数据存储位置;
执行所述目标同步命令,基于所述数据存储位置,将所述待同步表数据同步至所述临时外部表,得到所述同步临时表。
3.根据权利要求1所述的分布式数据库集群间表数据的同步方法,其特征在于,所述对所述同步临时表以及所述待同步表数据进行同步完整性校验,得到校验结果步骤,包括:
对所述源数据库进行同步数据条数采集,得到第一同步数据条数;
对所述目标数据库进行同步数据条数采集,得到第二同步数据条数;
基于所述第一同步数据条数,对所述同步临时表进行MD5值计算,得到第一MD5值集合;
基于所述第二同步数据条数,对所述待同步表数据进行MD5值计算,得到第二MD5值集合;
基于所述第一MD5值集合以及所述第二MD5值集合,对所述同步临时表以及所述待同步表数据进行同步完整性校验,得到校验结果。
4.根据权利要求1所述的分布式数据库集群间表数据的同步方法,其特征在于,所述当所述校验结果为通过时,将所述同步临时表的数据***预置的目标同步表中,同时,采集同步日志信息,并将所述同步日志信息传输至预置的同步展示终端步骤,包括:
当所述校验结果为通过时,将所述同步临时表的数据***预置的目标同步表中;
采集同步日志信息,其中,所述同步日志信息包括:同步开始时间、同步结束时间以及同步状态数据;
将所述同步日志信息传输至预置的同步展示终端。
5.根据权利要求4所述的分布式数据库集群间表数据的同步方法,其特征在于,所述将所述同步日志信息传输至预置的同步展示终端步骤,包括:
对所述同步日志信息进行数据展示内容筛选,得到目标展示内容;
将所述目标展示内容传输至所述同步展示终端进行数据展示。
6.一种分布式数据库集群间表数据的同步***,用以执行如权利要求1至5任一项所述的分布式数据库集群间表数据的同步方法,其特征在于,包括:
配置模块,用于通过连接配置文件对预置的源数据库以及预置的目标数据库进行连接信息配置,其中,所述连接配置文件包括:IP地址、端口、数据库名称、用户名及用户密码;
采集模块,用于采集待同步表数据,并根据所述待同步表数据生成同步任务列表;
生成模块,用于基于预置的SQL组件,根据所述同步任务列表生成目标同步表,同时对所述同步任务列表进行同步命令生成,得到目标同步命令;
同步模块,用于创建临时外部表,基于所述同步任务列表以及所述待同步表数据,并通过所述目标同步命令对所述临时外部表进行表数据文件同步,得到同步临时表;
校验模块,用于对所述同步临时表以及所述待同步表数据进行同步完整性校验,得到校验结果;
***模块,用于当所述校验结果为通过时,将所述同步临时表的数据***预置的目标同步表中,同时,采集同步日志信息,并将所述同步日志信息传输至预置的同步展示终端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410377004.5A CN117971984B (zh) | 2024-03-29 | 2024-03-29 | 分布式数据库集群间表数据的同步方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410377004.5A CN117971984B (zh) | 2024-03-29 | 2024-03-29 | 分布式数据库集群间表数据的同步方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117971984A CN117971984A (zh) | 2024-05-03 |
CN117971984B true CN117971984B (zh) | 2024-06-21 |
Family
ID=90846430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410377004.5A Active CN117971984B (zh) | 2024-03-29 | 2024-03-29 | 分布式数据库集群间表数据的同步方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971984B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116136859A (zh) * | 2021-11-16 | 2023-05-19 | 中国石油天然气集团有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN117290357A (zh) * | 2023-09-11 | 2023-12-26 | 珠海华发金融科技研究院有限公司 | 基于Kettle的表结构同步方法及装置、设备、存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402559A (zh) * | 2010-09-16 | 2012-04-04 | 中兴通讯股份有限公司 | 一种数据库升级脚本的生成方法和装置 |
CN103617176B (zh) * | 2013-11-04 | 2017-03-15 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
CN108664659A (zh) * | 2018-05-21 | 2018-10-16 | 四川中电启明星信息技术有限公司 | 一种分布式异构数据库的数据同步方法及装置 |
CN110543476A (zh) * | 2019-07-03 | 2019-12-06 | 威富通科技有限公司 | 一种数据库表结构的同步方法、装置及服务器 |
CN112256794A (zh) * | 2020-10-09 | 2021-01-22 | 国网江西省电力有限公司检修分公司 | 一种数据库同步方法 |
CN112328696A (zh) * | 2020-11-17 | 2021-02-05 | 北京金和网络股份有限公司 | 一种MySQL数据库中数据同步到SQL Server数据库中的方法和装置 |
CN113821565B (zh) * | 2021-09-10 | 2024-03-15 | 上海得帆信息技术有限公司 | 一种多数据源同步数据的方法 |
CN114595288A (zh) * | 2022-03-03 | 2022-06-07 | 同方知网(北京)技术有限公司 | 一种基于sql命令级的多idc分布式***数据同步方法 |
CN114780641B (zh) * | 2022-05-07 | 2023-07-14 | 湖南长银五八消费金融股份有限公司 | 多库多表同步方法、装置、计算机设备和存储介质 |
CN114647651A (zh) * | 2022-05-19 | 2022-06-21 | 同日云联信息技术(苏州)有限公司 | 异构数据库同步方法及*** |
CN115687349A (zh) * | 2022-10-28 | 2023-02-03 | 海尔优家智能科技(北京)有限公司 | 数据库表的生成方法及装置、存储介质及电子装置 |
CN116108094A (zh) * | 2023-02-23 | 2023-05-12 | 江苏科瑞恩科技股份有限公司 | 一种数据整合方法、装置、电子设备以及存储介质 |
-
2024
- 2024-03-29 CN CN202410377004.5A patent/CN117971984B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116136859A (zh) * | 2021-11-16 | 2023-05-19 | 中国石油天然气集团有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN117290357A (zh) * | 2023-09-11 | 2023-12-26 | 珠海华发金融科技研究院有限公司 | 基于Kettle的表结构同步方法及装置、设备、存储介质 |
Non-Patent Citations (1)
Title |
---|
数据库同步操作方法说明;zuomengjie;《豆丁网》;20210131;第1-2部分 * |
Also Published As
Publication number | Publication date |
---|---|
CN117971984A (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347746B (zh) | 一种异构数据库同步数据一致性校验方法及装置 | |
US11481246B1 (en) | Systems, devices, and methods for mainframe data management | |
US6065017A (en) | Apparatus and method for identifying and recovering from database errors | |
CN110088744A (zh) | 一种数据库维护方法及其*** | |
CN113190531A (zh) | 一种数据库迁移方法、装置、设备和存储介质 | |
CN111737227A (zh) | 数据修改方法及*** | |
CN116134420A (zh) | 使用多个区块链以将事务应用于持久存储***中的持久数据对象集 | |
CN109902070B (zh) | 一种面向WiFi日志数据的解析存储搜索方法 | |
CN117971984B (zh) | 分布式数据库集群间表数据的同步方法及*** | |
TWI344604B (en) | Network heterogeneous database synchronizing system and method | |
US7890793B1 (en) | Techniques for restoring file system resources | |
WO2023051073A1 (zh) | 数据库测试方法、分布式数据库、存储介质 | |
CN114996209A (zh) | 一种配置修改方法、装置、设备及可读存储介质 | |
CN109167676A (zh) | 一种高性能集群故障的诊断方法及*** | |
CN114661558A (zh) | 一种基于离线分析数据库Log的通用数据库表监控方法 | |
CN109992475B (zh) | 一种日志的处理方法、服务器及存储介质 | |
CN114510529A (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
CN116955369A (zh) | 基于数据库的数据融合方法、装置、电子设备及存储介质 | |
US7644306B2 (en) | Method and system for synchronous operation of an application by a purality of processing units | |
CN118410106A (zh) | 一种基于时间线映射的跨数据源实时同步方法 | |
CN118035178B (zh) | 一种数据排查方法、装置、电子设备、计算机可读存储介质及程序产品 | |
EA036384B1 (ru) | Способ и система комплексного управления большими данными | |
CN112925544B (zh) | 更新应用程序的方法、装置、电子设备及计算机存储介质 | |
CN115834706B (zh) | 微服务请求异常处理*** | |
CN115454759A (zh) | 一种基于kubernetes的全链路监控方法 |
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 |