CN114185867A - 确认数据一致性的方法、装置和电子设备 - Google Patents
确认数据一致性的方法、装置和电子设备 Download PDFInfo
- Publication number
- CN114185867A CN114185867A CN202010970081.3A CN202010970081A CN114185867A CN 114185867 A CN114185867 A CN 114185867A CN 202010970081 A CN202010970081 A CN 202010970081A CN 114185867 A CN114185867 A CN 114185867A
- Authority
- CN
- China
- Prior art keywords
- data
- migrated
- volume information
- target database
- 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.)
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
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)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种确认数据一致性的方法、装置和电子设备,通过运行有数据传输服务的设备获取源数据库中待迁移数据的数据量信息;其中,数据量信息包括:数据表数量和/或每张数据表中的数据行数量;在待迁移数据迁移至目标数据库后,获取目标数据库中待迁移数据对应的已迁移数据的数据量信息;基于待迁移数据的数据量信息和已迁移数据的数据量信息,确认待迁移数据和已迁移数据是否一致。该方式中,仅需要对源数据库和目标数据库具有较低的查询权限,即可实现对待迁移数据和已迁移数据的一致性进行校验,可实现性高,且查询的数据量较小,能够快速确认数据是否不一致,数据校验耗时短,提高了数据一致性的校验效率,提高了数据库性能。
Description
技术领域
本发明涉及数据传输技术领域,尤其是涉及一种确认数据一致性的方法、装置和电子设备。
背景技术
在数据迁移和数据同步的过程中,保证数据的一致性是必要条件。为了保证数据的一致性,通常需要在数据传输过程中或者数据传输即将结束时进行数据校验。相关技术中,主要采用的数据校验工具为pt-table-sync和pt-table-checksum,数据校验工具具有较高的限制条件,例如需要对源数据库具有较高的操作权限,需要日志文件设置为特定模式等,因而通过数据校验工具校验数据实现起来较为困难;另外,当需要传输的数据量较大时,数据校验的耗时较长,而且还易导致数据库出现慢查询,影响数据库的性能。
发明内容
有鉴于此,本发明的目的在于提供一种确认数据一致性的方法、装置和电子设备,以提高数据校验方式的可实现性,同时提高数据一致性的校验效率,进而提高数据库性能。
第一方面,本发明实施例提供了一种确认数据一致性的方法,方法应用于运行有数据传输服务的设备;方法包括:获取源数据库中待迁移数据的数据量信息;其中,数据量信息包括:数据表数量和/或每张数据表中的数据行数量;待迁移数据迁移至目标数据库后,获取目标数据库中待迁移数据对应的已迁移数据的数据量信息;基于待迁移数据的数据量信息和已迁移数据的数据量信息,确认待迁移数据和已迁移数据是否一致。
进一步的,获取源数据库中待迁移数据的数据量信息的步骤,包括:在源数据库中执行第一查询指令,得到第一查询结果;其中,第一查询指令用于查询待迁移数据的数据量信息;第一查询结果包括待迁移数据的数据量信息。
进一步的,在源数据库中执行第一查询指令,得到第一查询结果的步骤之后,方法还包括:将第一查询结果保存在源数据库的第一数据表中;其中,第一数据表用于记录源数据库中待迁移数据的数据量信息。
进一步的,获取目标数据库中待迁移数据对应的已迁移数据的数据量信息的步骤之前,方法还包括:获取源数据库中待迁移数据的操作日志;如果从操作日志中解析到第一数据表,在目标数据库执行操作日志中记录的与第一数据表相关的操作;将第一数据表中的数据写入到目标数据库中的第二数据表中;其中,第一数据表和第二数据表分别用于记录源数据库中待迁移数据的数据量信息。
进一步的,将第一数据表中的数据写入到目标数据库中的第二数据表中的步骤,包括:将第一数据表的路由信息分发至串行线程,以通过串行线程将第一数据表中的数据写入到目标数据库中的第二数据表中。
进一步的,获取目标数据库中待迁移数据对应的已迁移数据的数据量信息的步骤,包括:在目标数据库中执行第二查询指令,得到第二查询结果;其中,第二查询指令用于查询已迁移数据的数据量信息;第二查询结果包括已迁移数据的数据量信息。
进一步的,在目标数据库中执行第二查询指令,得到第二查询结果的步骤之后,方法还包括:将第二查询结果保存在目标数据库的第二数据表中;其中,第二数据表用于记录目标数据库中已迁移数据的数据量信息。
进一步的,基于待迁移数据的数据量信息和已迁移数据的数据量信息,确认待迁移数据和已迁移数据是否一致的步骤,包括:在目标数据库中的第二数据表中,检查待迁移数据的数据量信息和已迁移数据的数据量信息是否相同;如果待迁移数据的数据量信息和已迁移数据的数据量信息相同,确认待迁移数据和已迁移数据一致。
第二方面,本发明实施例提供了一种确认数据一致性的装置,装置设置于运行有数据传输服务的设备;装置包括:获取模块,用于获取源数据库中待迁移数据的数据量信息;其中,数据量信息包括:数据表数量和/或每张数据表中的数据行数量;已迁移数据获取模块,用于待迁移数据迁移至目标数据库后,获取目标数据库中待迁移数据对应的已迁移数据的数据量信息;数据一致性确认模块,基于待迁移数据的数据量信息和已迁移数据的数据量信息,确认待迁移数据和已迁移数据是否一致。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现第一方面任一项的确认数据一致性的方法。
第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现第一方面任一项的确认数据一致性的方法。
本发明实施例带来了以下有益效果:
本发明实施例提供了一种确认数据一致性的方法、装置和电子设备,通过运行有数据传输服务的设备获取源数据库中待迁移数据的数据量信息;其中,数据量信息包括:数据表数量和/或每张数据表中的数据行数量;在待迁移数据迁移至目标数据库后,获取目标数据库中待迁移数据对应的已迁移数据的数据量信息;基于待迁移数据的数据量信息和已迁移数据的数据量信息,确认待迁移数据和已迁移数据是否一致。该方式中,仅需要对源数据库和目标数据库具有较低的查询权限,即可实现对待迁移数据和已迁移数据的一致性进行校验,可实现性高,且查询的数据量较小,能够快速确认数据是否不一致,数据校验耗时短,提高了数据一致性的校验效率,提高了数据库性能。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种确认数据一致性的方法流程图;
图2为本发明实施例提供的另一种确认数据一致性的方法流程图;
图3为本发明实施例提供的另一种确认数据一致性的方法流程图;
图4为本发明实施例提供的一种确认数据一致性的装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前在数据迁移和数据同步的过程中,保证数据的一致性是必要条件。在数据传输服务(Data Transmission Service,DTS)中极为重要。由于DTS需要实现不停服迁移,因此为了保证数据的一致性,通常在数据传输过程中或者数据传输即将结束时进行数据校验。相关技术中,主要采用的数据校验工具为pt-table-checksum和pt-table-sync,前者主要用于表级数据的校验,验证主从是否一致,后者主要进行行级的校验,发现行级不一致并可以修复数据。但是,pt-table-checksum的执行往往需要源库具有SUPER权限才能进行校验;因为DTS要求binlog_format为ROW模式,而pt-table-checksum的执行需要将binlog_format会话级别修改为STATEMENT模式,所以通过数据校验工具校验数据实现起来较为困难;另外,当需要传输的数据量较大时,数据校验的耗时较长,而且还易导致数据库出现慢查询,影响数据库的性能。基于此,本发明实施例提供的一种确认数据一致性的方法、装置和电子设备,该技术可以应用于具有数据传输功能的设备中,比如,电脑、笔记本等设备。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种确认数据一致性的方法进行详细介绍,该方法应用于运行有数据传输服务的设备;其中,DTS支持关系型数据库、NoSQL、大数据(OLAP)等数据源间的数据传输,是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服务。数据传输服务致力于在公共云、混合云场景下,解决远距离、毫秒级异步数据传输难题。具体可以使用数据传输轻松构建安全、可扩展、高可用的数据架构。如图1所示,该方法包括如下步骤:
步骤S102,获取源数据库中待迁移数据的数据量信息;其中,数据量信息包括:数据表数量和/或每张数据表中的数据行数量;
上述数据表数量是指数据表的数目,具体可以根据数据表的名称确定;每张数据表中通常包括具体的数据信息,可以包括数据表中的数据行数量,比如某张数据表中的包括三行数据,即该张数据表中的数据行数量为三;上述待迁移数据具体可以根据用户的需要进行选择,也可以是源数据库执行的操作等。
具体的,可以在增量迁移的过程中,通过控制台启动,或者数据传输服务周期性自动启动的方式,获取源数据库中待迁移数据的数据量信息,比如,在全量数据迁移开始前,启动增量数据拉取模块,拉取并保存迁移过程中,源数据库的业务写入,即源数据库执行的操作。
步骤S104,待迁移数据迁移至目标数据库后,获取目标数据库中待迁移数据对应的已迁移数据的数据量信息;
数据传输服务获取到源数据库中待迁移数据的数据量信息后,可以将该待迁移数据的数据量信息发送至目标数据库;目标数据库接收到待迁移数据的数据量信息后,可以将待迁移数据的数据量信息保存至目标数据库中,也可以在目标数据库中执行与待迁移数据对应的操作;通过执行查询指令,获取目标数据库中待迁移数据对应的已迁移数据的数据量信息。
步骤S106,基于待迁移数据的数据量信息和已迁移数据的数据量信息,确认待迁移数据和已迁移数据是否一致。
上述待迁移数据的数据量信息和已迁移数据的数据量信息均保存在目标数据库中,可以在目标数据库中,通过对比待迁移数据和已迁移数据中数据表数量和每张数据表的数据行数量;也可以在目标数据库中,通过对比待迁移数据和已迁移数据中数据表数量或每张数据表的数据行数量;如果数量相同则确认待迁移数据和已迁移数据一致。如果数量不相同,则确认待迁移数据和已迁移数据不一致。
本发明实施例提供了一种确认数据一致性的方法,通过运行有数据传输服务的设备获取源数据库中待迁移数据的数据量信息;其中,数据量信息包括:数据表数量和/或每张数据表中的数据行数量;在待迁移数据迁移至目标数据库后,获取目标数据库中待迁移数据对应的已迁移数据的数据量信息;基于待迁移数据的数据量信息和已迁移数据的数据量信息,确认待迁移数据和已迁移数据是否一致。该方式中,仅需要对源数据库和目标数据库具有较低的查询权限,即可实现对待迁移数据和已迁移数据的一致性进行校验,可实现性高,且查询的数据量较小,能够快速确认数据是否不一致,数据校验耗时短,提高了数据一致性的校验效率,提高了数据库性能。
本实施例还提供了另一种确认数据一致性的方法,本实施例主要描述获取源数据库中待迁移数据的数据量信息的步骤的具体实施方式(通过步骤S202实现),以及获取源数据库中待迁移数据的数据量信息的步骤之后的具体实施方式(通过步骤S204实现),如图2所示,该方法包括如下步骤:
步骤S202,在源数据库中执行第一查询指令,得到第一查询结果;其中,第一查询指令用于查询待迁移数据的数据量信息;第一查询结果包括待迁移数据的数据量信息;
上述第一查询指令可以是用于查询指定源数据库中待迁移数据的数据表数量,比如,SELECT COUNT(*)TABLES,table_schema FROM information_schema.TABLES WHEREtable_schema='数据库名';也可以是用于查询指定源数据库中待迁移数据的每张数据表的数据行数量,比如,SELECT COUNT(*)FROM`数据库名`.`表名`;也可以是用于查询指定源数据库中待迁移数据的数据表数量和每张数据表的数据行数量。
步骤S204,将第一查询结果保存在源数据库的第一数据表中;其中,第一数据表用于记录源数据库中待迁移数据的数据量信息;
上述第一数据表包括数据表数量对比结果表和/或每张数据表的数据行数量对比结果表;比如,源数据库的第一数据表可以是obj_count_[taskid]和row_count_[taskid];其中,obj_count_[taskid]用于记录源数据库中待迁移数据的数据表数量;row_count_[taskid]用于记录源数据库中待迁移数据的每张数据表的数据行数量。
具体的,上述源数据库首先会创建dts_compare_info库,用于保存迁移数据的对比结果,在每次迁移对比任务中,都会在该dts_compare_info库下创建obj_count_[taskid]和row_count_[taskid]两张表,即上述第一数据表,分别用于保存数据表数量对比结果及数据表的数据行数量对比结果。其中,表obj_count_[taskid]记录内容包括源数据库名称、目标数据库名称、源数据库的数据表数量、目标数据库的数据表数量、时间戳;表row_count_[taskid]记录内容包括源数据库名称、源数据库的数据表的名称、目标数据库名称、目标数据库的数据表的名称、源数据库的数据表的数据行数量、目标数据库的数据表的数据行数量、时间戳。
步骤S206,待迁移数据迁移至目标数据库后,获取目标数据库中待迁移数据对应的已迁移数据的数据量信息;
步骤S208,基于待迁移数据的数据量信息和已迁移数据的数据量信息,确认待迁移数据和已迁移数据是否一致。
需要说明的是,由于数据迁移是一个不停服、持续的过程,在全量迁移过程中用户持续对源数据库进行操作,为确保校验准确性,迁移对比主要用于增量迁移阶段进行。迁移对比对象为源数据库和目标数据库的数据表数量及数据表的数据行数量。其中数据表数量对比用于检查源数据库与目标数据库的数据表数量是否一致;数据表的数据行数量对比主要检查同一张表在源数据库与目标数据库的数据表的数据行数量是否一致。
该方式中,迁移对比主要进行数据传输服务中源数据库和目标数据库的数据表数量及数据表的数据行数量的对比,在DTS中以类似全量迁移、增量迁移任务形式存在;通过第一查询指令的方式获取待迁移数据的数据量信息,并将第一查询结果保存在源数据库的第一数据表中。作为数据校验的一种补充方案,可以快速发现数据迁移前后是否出现不一致。此外,当用户处于安全性考虑,对源端迁移账号无法授权SUPER权限时,迁移对比可以作为数据校验一种高效折中的方式。
本实施例还提供了另一种确认数据一致性的方法,本实施例主要描述获取目标数据库中待迁移数据对应的已迁移数据的数据量信息的步骤之前的步骤的具体实施方式(通过步骤S306-S310实现)、获取目标数据库中待迁移数据对应的已迁移数据的数据量信息的步骤的具体实施方式(通过步骤S312-S314实现)、以及基于待迁移数据的数据量信息和已迁移数据的数据量信息,确认待迁移数据和已迁移数据是否一致的步骤的具体实现方式(通过步骤S316-S318实现),如图3所示,该方法包括如下步骤:
步骤S302,在源数据库中执行第一查询指令,得到第一查询结果;其中,第一查询指令用于查询待迁移数据的数据量信息;第一查询结果包括待迁移数据的数据量信息;
步骤S304,将第一查询结果保存在源数据库的第一数据表中;其中,第一数据表用于记录源数据库中待迁移数据的数据量信息;
步骤S306,获取源数据库中待迁移数据的操作日志;
具体的,源数据库在进行各种操作时,会生成操作日志,可以在数据传输服务的增量迁移过程中,通过数据传输服务读取源数据库中待迁移数据的操作日志;然后把读取到的操作日志进行解析。
步骤S308,如果从操作日志中解析到第一数据表,在目标数据库执行操作日志中记录的与第一数据表相关的操作;
具体的,当数据传输服务从操作日志中解析到源数据库的操作库名为dts_compare_info且表名为obj_count_[taskid]或row_count_[taskid]时,首先等待该待迁移数据之前所有操作执行完毕,然后将操作日志的解析结果传送至目标数据库。在目标数据库执行操作日志中记录的与第一数据表相关的操作,即目标数据库根据接收到的解析结果,在目标数据库做与待迁移数据的操作同样的操作。其目的是,使源数据库和目表数据库执行对象数的查询操作的逻辑时间点一致。
步骤S310,将第一数据表中的数据写入到目标数据库中的第二数据表中;其中,第一数据表和第二数据表分别用于记录源数据库中待迁移数据的数据量信息;
上述目标数据库中的第二数据表与源数据库中的第一数据表相同,都包括数据表数量对比结果表和/或每张数据表的数据行数量对比结果表;比如,目标数据库的第而数据表可以是obj_count_[taskid]和row_count_[taskid];也可以是obj_count_[taskid]或row_count_[taskid];其中,obj_count_[taskid]用于记录源数据库中待迁移数据的数据表的数量;row_count_[taskid]用于记录源数据库中待迁移数据的每张数据表的行数量。
具体的,在目标数据库执行操作日志中记录的与第一数据表相关的操作后,可以通过执行指令的方式,将第一数据表中记录的源数据库中待迁移数据的数据量信息写入到目标数据库中的第二数据表中。
一种可能的实施方式,将第一数据表的路由信息分发至串行线程,以通过串行线程将第一数据表中的数据写入到目标数据库中的第二数据表中。
为了确保数据表数量以及数据表的数据行数量查询执行点在源数据库和目标数据库的一致;可以将第一数据表的路由信息分发至串行线程;通过串行线程的方式将第一数据表中的数据写入到目标数据库中的第二数据表中。
步骤S312,在目标数据库中执行第二查询指令,得到第二查询结果;其中,第二查询指令用于查询已迁移数据的数据量信息;第二查询结果包括已迁移数据的数据量信息;
上述第二查询指令可以是用于查询目标数据库中已迁移数据的数据表数量,比如,SELECT COUNT(*)TABLES,table_schema FROM information_schema.TABLES WHEREtable_schema='数据库名';也可以是用于查询目标数据库中已迁移数据的每张数据表的数据行数量,比如,SELECT COUNT(*)FROM`数据库名`.`表名`;也可以是用于查询目标数据库中已迁移数据的数据表数量和每张数据表的数据行数量。
具体的,首先将源数据库binlog记录的数据在数据传输服务解析后,传送至目标数据库执行,然后执行一个计算目标数据库的数据表数量和数据表的数据行数量的第二查询指令。
步骤S314,将第二查询结果保存在目标数据库的第二数据表中;其中,第二数据表用于记录目标数据库中已迁移数据的数据量信息;
上述目标数据库的第二数据表包括数据表数量对比结果表和/或每张数据表的数据行数量对比结果表;比如,目标数据库的第二数据表可以是obj_count_[taskid]和row_count_[taskid];也可以是obj_count_[taskid]或row_count_[taskid];其中,obj_count_[taskid]用于记录目标数据库中已迁移数据的数据表数量;row_count_[taskid]用于记录目标数据库中已迁移数据的每张数据表的数据行数量。
具体的,更新obj_count_[taskid]表中目标数据库的数据表数量字段,以及row_count_[taskid]表中目标数据库的数据表的数据行数量字段,即执行UPDATE dts_compare_info.obj_count_[taskid]SET`dst_count`=COUNT WHERE DB='数据库名',以及UPDATE dts_compare_info.cow_count_[taskid]SET`dst_count`=COUNT WHERE DB='数据库名';最后将第二查询结果保存在目标数据库的第二数据表中。
步骤S316,在目标数据库中的第二数据表中,检查待迁移数据的数据量信息和已迁移数据的数据量信息是否相同;
步骤S318,如果待迁移数据的数据量信息和已迁移数据的数据量信息相同,确认待迁移数据和已迁移数据一致。
等待所有待迁移数据的数据量信息迁移完毕,只需检查目标数据库中第二数据表中记录的待迁移数据的数据量信息和已迁移数据的数据量信息是否相同;即检查obj_count_[taskid]和row_count_[taskid]两张表中源数据库和目标数据库各自的统计值,即可得到所有不一致的表。如果检查结果表示待迁移数据的数据量信息和已迁移数据的数据量信息相同,则确认待迁移数据和已迁移数据一致;如果检查结果表示待迁移数据的数据量信息和已迁移数据的数据量信息不相同,则可以确定待迁移数据和已迁移数据不一致,还可以得到所有不一致的迁移数据的数据量信息,即不一致的数据表。
该方式中,当用户启动对比任务时,在增量迁移的同时进行对比。启动条件可以由用户控制台启动,也可以由数据传输服务周期性自动启动。在源数据库中创建用于保存统计结果的第一数据表,建表操作将作为增量数据在目标数据库生成;之后在源数据库进行待迁移数据的数据表数量或数据表的数据行数量的统计,将统计信息写入第一数据表中;通常数据传输服务中,为提高写入效率,采用表级并发或者行级并发方式,基于此,在并发线程之外,采用一个串行线程,当检测到操作对象为第一数据表时,首先等待并行线程的操作执行完,将第一数据表中的数据路由到串行线程,确保了数据表数量以及数据表的数据行数量查询执行点在源数据库和目标数据库一致,该执行点一致是指逻辑一致;
然后将源数据库统计信息写入目标数据库,之后对目标数据库进行统计,将统计结果写入第二数据表中,目标数据库统计对比结果字段。最后通过在目标数据库的第二数据表,对比第二数据表中源数据库和目标数据库统计字段值,判断待迁移数据的数据量信息和已迁移数据的数据量信息是否一致;能够快速发现是否存在迁移数据不一致的数据表,且对源数据库和目标数据库只需SELECT权限,同时支持源数据库和目标数据库存在库表映射的数据校验,即映射前后的数据表名记录在数据传输服务中。
对应上述的方法实施例,本实施例提供了一种确认数据一致性的装置,该装置设置于运行有数据传输服务的设备;如图4所示,该装置包括:
待迁移数据获取模块41,用于获取源数据库中待迁移数据的数据量信息;其中,数据量信息包括:数据表数量和/或每张数据表中的数据行数量;
已迁移数据获取模块42,用于待迁移数据迁移至目标数据库后,获取目标数据库中待迁移数据对应的已迁移数据的数据量信息;
数据一致性确认模块43,用于基于待迁移数据的数据量信息和已迁移数据的数据量信息,确认待迁移数据和已迁移数据是否一致。
本发明实施例提供了一种确认数据一致性装置,通过运行有数据传输服务的设备获取源数据库中待迁移数据的数据量信息;其中,数据量信息包括:数据表数量和/或每张数据表中的数据行数量;在待迁移数据迁移至目标数据库后,获取目标数据库中待迁移数据对应的已迁移数据的数据量信息;基于待迁移数据的数据量信息和已迁移数据的数据量信息,确认待迁移数据和已迁移数据是否一致。该方式中,仅需要对源数据库和目标数据库具有较低的查询权限,即可实现对待迁移数据和已迁移数据的一致性进行校验,可实现性高,且查询的数据量较小,能够快速确认数据是否不一致,数据校验耗时短,提高了数据一致性的校验效率,提高了数据库性能。
进一步的,上述待迁移数据获取模块还用于:在源数据库中执行第一查询指令,得到第一查询结果;其中,第一查询指令用于查询待迁移数据的数据量信息;第一查询结果包括待迁移数据的数据量信息。
进一步的,上述待迁移数据获取模块还用于:将第一查询结果保存在源数据库的第一数据表中;其中,第一数据表用于记录源数据库中待迁移数据的数据量信息。
进一步的,上述装置还用于:获取源数据库中待迁移数据的操作日志;如果从操作日志中解析到第一数据表,在目标数据库执行操作日志中记录的与第一数据表相关的操作;将第一数据表中的数据写入到目标数据库中的第二数据表中;其中,第一数据表和第二数据表分别用于记录源数据库中待迁移数据的数据量信息。
进一步的,上述装置还用于:将第一数据表的路由信息分发至串行线程,以通过串行线程将第一数据表中的数据写入到目标数据库中的第二数据表中。
进一步的,上述已迁移数据获取模块还用于:在目标数据库中执行第二查询指令,得到第二查询结果;其中,第二查询指令用于查询已迁移数据的数据量信息;第二查询结果包括已迁移数据的数据量信息。
进一步的,上述已迁移数据获取模块还用于:将第二查询结果保存在目标数据库的第二数据表中;其中,第二数据表用于记录目标数据库中已迁移数据的数据量信息。
进一步的,数据一致性确认模块还用于:在目标数据库中的第二数据表中,检查待迁移数据的数据量信息和已迁移数据的数据量信息是否相同;如果待迁移数据的数据量信息和已迁移数据的数据量信息相同,确认待迁移数据和已迁移数据一致。
本发明实施例提供的一种确认数据一致性的装置,与上述实施例提供的确认数据一致性的方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述确认数据一致性的方法。
参见图5所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述确认数据一致性的方法。
进一步地,图5所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
其中,存储器101可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述确认数据一致性的方法。
本发明实施例所提供的确认数据一致性的方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种确认数据一致性的方法,其特征在于,所述方法应用于运行有数据传输服务的设备;所述方法包括:
获取源数据库中待迁移数据的数据量信息;其中,所述数据量信息包括:数据表数量和/或每张数据表中的数据行数量;
所述待迁移数据迁移至目标数据库后,获取所述目标数据库中所述待迁移数据对应的已迁移数据的数据量信息;
基于所述待迁移数据的数据量信息和所述已迁移数据的数据量信息,确认所述待迁移数据和所述已迁移数据是否一致。
2.根据权利要求1所述的方法,其特征在于,获取源数据库中待迁移数据的数据量信息的步骤,包括:
在所述源数据库中执行第一查询指令,得到第一查询结果;其中,所述第一查询指令用于查询所述待迁移数据的数据量信息;所述第一查询结果包括所述待迁移数据的数据量信息。
3.根据权利要求2所述的方法,其特征在于,在所述源数据库中执行第一查询指令,得到第一查询结果的步骤之后,所述方法还包括:
将所述第一查询结果保存在所述源数据库的第一数据表中;其中,所述第一数据表用于记录所述源数据库中待迁移数据的数据量信息。
4.根据权利要求1所述的方法,其特征在于,获取所述目标数据库中所述待迁移数据对应的已迁移数据的数据量信息的步骤之前,所述方法还包括:
获取所述源数据库中所述待迁移数据的操作日志;
如果从所述操作日志中解析到第一数据表,在所述目标数据库执行所述操作日志中记录的与所述第一数据表相关的操作;
将所述第一数据表中的数据写入到所述目标数据库中的第二数据表中;其中,所述第一数据表和所述第二数据表分别用于记录所述源数据库中待迁移数据的数据量信息。
5.根据权利要求4所述的方法,其特征在于,将所述第一数据表中的数据写入到所述目标数据库中的第二数据表中的步骤,包括:
将所述第一数据表的路由信息分发至串行线程,以通过所述串行线程将所述第一数据表中的数据写入到所述目标数据库中的第二数据表中。
6.根据权利要求1所述的方法,其特征在于,获取所述目标数据库中所述待迁移数据对应的已迁移数据的数据量信息的步骤,包括:
在所述目标数据库中执行第二查询指令,得到第二查询结果;其中,所述第二查询指令用于查询所述已迁移数据的数据量信息;所述第二查询结果包括所述已迁移数据的数据量信息。
7.根据权利要求6所述的方法,其特征在于,在所述目标数据库中执行第二查询指令,得到第二查询结果的步骤之后,所述方法还包括:将所述第二查询结果保存在所述目标数据库的第二数据表中;其中,所述第二数据表用于记录所述目标数据库中已迁移数据的数据量信息。
8.根据权利要求1所述的方法,其特征在于,基于所述待迁移数据的数据量信息和所述已迁移数据的数据量信息,确认所述待迁移数据和所述已迁移数据是否一致的步骤,包括:
在所述目标数据库中的第二数据表中,检查所述待迁移数据的数据量信息和所述已迁移数据的数据量信息是否相同;
如果所述待迁移数据的数据量信息和所述已迁移数据的数据量信息相同,确认所述待迁移数据和所述已迁移数据一致。
9.一种确认数据一致性的装置,其特征在于,所述装置设置于运行有数据传输服务的设备;所述装置包括:
待迁移数据获取模块,用于获取源数据库中待迁移数据的数据量信息;其中,所述数据量信息包括:数据表数量和/或每张数据表中的数据行数量;
已迁移数据获取模块,用于所述待迁移数据迁移至目标数据库后,获取所述目标数据库中所述待迁移数据对应的已迁移数据的数据量信息;
数据一致性确认模块,用于基于所述待迁移数据的数据量信息和所述已迁移数据的数据量信息,确认所述待迁移数据和所述已迁移数据是否一致。
10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至8任一项所述的确认数据一致性的方法。
11.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1至8任一项所述的确认数据一致性的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010970081.3A CN114185867A (zh) | 2020-09-14 | 2020-09-14 | 确认数据一致性的方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010970081.3A CN114185867A (zh) | 2020-09-14 | 2020-09-14 | 确认数据一致性的方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114185867A true CN114185867A (zh) | 2022-03-15 |
Family
ID=80539233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010970081.3A Pending CN114185867A (zh) | 2020-09-14 | 2020-09-14 | 确认数据一致性的方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114185867A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116738026A (zh) * | 2023-06-27 | 2023-09-12 | 广东省高速公路有限公司 | 一种基于信创环境的电子档案管理系统及其方法 |
CN116821100A (zh) * | 2023-07-20 | 2023-09-29 | 广州云臻数据科技有限公司 | 一种基于双态协同的数据库高保真迁移方法 |
-
2020
- 2020-09-14 CN CN202010970081.3A patent/CN114185867A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116738026A (zh) * | 2023-06-27 | 2023-09-12 | 广东省高速公路有限公司 | 一种基于信创环境的电子档案管理系统及其方法 |
CN116821100A (zh) * | 2023-07-20 | 2023-09-29 | 广州云臻数据科技有限公司 | 一种基于双态协同的数据库高保真迁移方法 |
CN116821100B (zh) * | 2023-07-20 | 2023-12-22 | 广州云臻数据科技有限公司 | 一种基于双态协同的数据库高保真迁移方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
CN114185867A (zh) | 确认数据一致性的方法、装置和电子设备 | |
WO2017041578A1 (zh) | 一种获取数据库变更信息的方法和装置 | |
CN110851474A (zh) | 数据查询方法、数据库中间件、数据查询设备及存储介质 | |
CN110198327B (zh) | 一种数据传输方法及相关设备 | |
CN113722277A (zh) | 一种数据导入方法、装置、服务平台及存储介质 | |
CN112307124A (zh) | 数据库同步验证方法、装置、设备及存储介质 | |
CN113704790A (zh) | 一种异常日志信息汇总方法及计算机设备 | |
CN111966747A (zh) | 数据同步方法、系统、终端设备及存储介质 | |
CN111444208B (zh) | 一种数据更新方法及相关设备 | |
CN115617819B (zh) | 数据存储方法、系统、计算机设备及存储介质 | |
CN109344163B (zh) | 一种数据校验方法、装置和计算机可读介质 | |
CN111639087A (zh) | 数据库中数据更新方法、装置和电子设备 | |
WO2014180401A1 (zh) | 业务模型的适配方法及系统 | |
CN115086047B (zh) | 接口鉴权方法、装置、电子设备及存储介质 | |
EP3082050A1 (en) | Mass data fusion storage method and system | |
US8935200B2 (en) | Dynamic database dump | |
CN115827777A (zh) | 一种多数据源的自适应同步与差异识别方法、装置及设备 | |
CN109710698A (zh) | 一种数据汇聚方法、装置、电子设备及介质 | |
WO2019071899A1 (zh) | 电子装置、车辆数据导入方法及存储介质 | |
CN114153461A (zh) | 一种脚本处理方法、装置、电子设备及存储介质 | |
CN113268483A (zh) | 请求处理方法和装置、电子设备和存储介质 | |
CN115114258A (zh) | 数据复制方法、装置、电子设备及计算机存储介质 | |
CN105989021A (zh) | 一种文件处理方法和装置 | |
CN114428789B (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 |