CN110928891B - 数据一致性检测方法、装置、计算设备以及介质 - Google Patents
数据一致性检测方法、装置、计算设备以及介质 Download PDFInfo
- Publication number
- CN110928891B CN110928891B CN201911092268.1A CN201911092268A CN110928891B CN 110928891 B CN110928891 B CN 110928891B CN 201911092268 A CN201911092268 A CN 201911092268A CN 110928891 B CN110928891 B CN 110928891B
- Authority
- CN
- China
- Prior art keywords
- data
- data table
- information
- tables
- 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
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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种由计算设备执行的数据一致性检测方法,包括:获取主数据库的多个第一数据表和备数据库的多个第二数据表;将多个第一数据表的标识和多个第二数据表的标识进行比较处理,得到处理结果;在处理结果表征多个第一数据表的标识与多个第二数据表的标识不一致的情况下,将多个第一数据表和多个第二数据表分为第一数据库表集合和第二数据库表集合;确定第一数据表集合中的第一数据表或第二数据表是否为例外数据表,如果不是例外数据表,则生成报警信息;确定第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件,如果不满足则生成报警信息。本公开还提供了一种数据一致性检测装置、计算设备、介质。
Description
技术领域
本公开涉及计算机技术领域,特别是涉及一种数据一致性检测方法、一种数据一致性检测装置、一种计算设备以及一种计算机可读存储介质。
背景技术
在主机AA(ACTIVE-ACTIVE)双活架构中,主机镜像站点包括主站点和备份站点,其中,主站点具有主数据库,备份站点具有备数据库,可以通过各类数据复制工具实现主数据库和备数据库的数据同步。其中,主数据库和备数据库的数据是否一致,是双活架构中的关键环节,也是备份站点是否具备业务接管能力的先决条件。因此,需要实时检测主数据库和备数据库的数据是否一致,以便及时采取相应的措施来保证主数据库和备数据库的数据同步。
在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题。针对检测主数据库和备数据库的数据是否一致的问题,传统的检测方式是对主数据库和备数据库进行静态的数据全量比对,但是,在主数据库和备数据库处于非停机状态下,主数据库和备数据库的数据在持续更新,导致无法进行静态的数据全量比对,并且,通过静态的数据全量比对的方式检测数据的一致性,导致检测效率低。
发明内容
本公开的一个方面提供了一种由计算设备执行的数据一致性检测方法,包括:获取主数据库的多个第一数据表和备数据库的多个第二数据表,其中,所述主数据库里的数据信息能够被同步至所述备数据库,所述第一数据表和所述第二数据表均包括标识,所述标识包括数据表的表名和数据库表的索引字段。将所述多个第一数据表的标识和所述多个第二数据表的标识进行比较处理,得到处理结果。在所述处理结果表征所述多个第一数据表的标识与所述多个第二数据表的标识不一致的情况下,将所述多个第一数据表和所述多个第二数据表分为第一数据库表集合和第二数据库表集合,其中,所述第一数据库表集合中的第一数据表的标识与第二数据表的标识不一致,所述第二数据库表集合中的第一数据表的标识与第二数据表的标识一致。确定所述第一数据表集合中的第一数据表或第二数据表是否为例外数据表,如果不是例外数据表,则生成报警信息。确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件,如果不满足所述一致性条件,则生成报警信息。
根据本公开实施例,上述将所述多个第一数据表的标识和所述多个第二数据表的标识进行比较处理包括以下至少一项:将所述多个第一数据表的表名和所述多个第二数据表的表名进行比较处理,将所述多个第一数据表的索引字段和所述多个第二数据表的索引字段进行比较处理,将所述多个第一数据表的索引数组和所述多个第二数据表的索引数组进行比较处理,其中,所述索引数组包括所述索引字段和字段类型。
根据本公开实施例,上述确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:从所述第二数据表集合中确定当前第一数据表和与所述当前第一数据表的标识一致的当前第二数据表,获取所述当前第一数据表的第一信息量和所述当前第二数据表的第二信息量,其中,所述第一信息量包括所述当前第一数据表的记录数和索引键值数,所述第二信息量包括所述当前第二数据表的记录数和索引键值数,确定所述第一信息量与所述第二信息量的比值是否在预设比值范围之内,如果所述第一信息量与所述第二信息量的比值在预设比值范围之内,则确定所述当前第一数据表的数据内容和所述当前第二数据表的数据内容一致,如果所述第一信息量与所述第二信息量的比值在预设比值范围之外,则确定所述第一信息量与所述第二信息量的比值变化率是否在预设变化率范围之内。
根据本公开实施例,上述确定所述第一信息量与所述第二信息量的比值变化率是否在预设变化率范围之内包括:获取多个时刻的多个信息量比值,其中,所述多个信息量比值中的每个信息量比值为任一时刻的第一信息量与任一时刻的第二信息量的比值,对所述多个信息量比值进行拟合处理,得到多个信息量比值的比值变化率,如果所述比值变化率在预设变化率范围之内,则确定所述当前第一数据表的数据内容和所述当前第二数据表的数据内容一致,如果所述比值变化率在预设比值范围之外,则确定所述当前第一数据表的数据内容和所述当前第二数据表的数据内容不一致。
根据本公开实施例,上述获取主数据库的多个第一数据表和备数据库的多个第二数据表包括:在第一时刻获取主数据库的多个第一数据表和备数据库的多个第二数据表。所述确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:确定所述第一时刻的第二数据表是否具有与所述第一时刻的第一数据表不一致的信息,如果确定所述第一时刻的第二数据表具有与所述第一时刻的第一数据表不一致的信息,则在第二时刻获取所述第二数据表的数据内容,确定所述第二时刻的第二数据表是否具有增量信息,如果所述第二时刻的第二数据表不具有所述增量信息,则确定所述第一数据表的数据内容和所述第二数据表的数据内容不一致。
根据本公开实施例,上述确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:获取历史复制错误信息,其中,所述历史复制错误信息为将所述主数据库里的数据信息复制至所述备数据库的过程中产生错误的信息,如果所述历史复制错误信息表征复制错误类型为预设类型,确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性不满足一致性条件,并且生成报警信息。
根据本公开实施例,上述确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:获取异常索引信息,所述异常索引信息包括将所述主数据库里的数据信息复制至所述备数据库的过程中产生的异常查询语句,获取与所述异常索引信息对应的目标键值,确定所述第一数据表和所述第二数据表中是否均包括所述目标键值,如果所述第一数据表和所述第二数据表中任意一个不包括所述目标键值,则确定所述第一数据表的数据内容和所述第二数据表的数据内容不一致,并且生成报警信息。
本公开的另一个方面提供了一种数据一致性检测装置,包括:获取模块、处理模块、划分模块、第一确定模块以及第二确定模块。其中,获取模块,用于获取主数据库的多个第一数据表和备数据库的多个第二数据表,其中,所述主数据库里的数据信息能够被同步至所述备数据库,所述第一数据表和所述第二数据表均包括标识,所述标识包括数据表的表名和数据库表的索引字段。处理模块,用于将所述多个第一数据表的标识和所述多个第二数据表的标识进行比较处理,得到处理结果。划分模块,用于在所述处理结果表征所述多个第一数据表的标识与所述多个第二数据表的标识不一致的情况下,将所述多个第一数据表和所述多个第二数据表分为第一数据库表集合和第二数据库表集合,其中,所述第一数据库表集合中的第一数据表的标识与第二数据表的标识不一致,所述第二数据库表集合中的第一数据表的标识与第二数据表的标识一致。第一确定模块,用于确定所述第一数据表集合中的第一数据表或第二数据表是否为例外数据表,如果不是例外数据表,则生成报警信息。第二确定模块,用于确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件,如果不满足所述一致性条件,则生成报警信息。
根据本公开实施例,上述将所述多个第一数据表的标识和所述多个第二数据表的标识进行比较处理包括以下至少一项:将所述多个第一数据表的表名和所述多个第二数据表的表名进行比较处理,将所述多个第一数据表的索引字段和所述多个第二数据表的索引字段进行比较处理,将所述多个第一数据表的索引数组和所述多个第二数据表的索引数组进行比较处理,其中,所述索引数组包括所述索引字段和字段类型。
根据本公开实施例,上述第二确定模块包括:第一确定子模块、第一获取子模块、第二确定子模块、第三确定子模块以及第四确定子模块。其中,第一确定子模块,用于从所述第二数据表集合中确定当前第一数据表和与所述当前第一数据表的标识一致的当前第二数据表。第一获取子模块,用于获取所述当前第一数据表的第一信息量和所述当前第二数据表的第二信息量,其中,所述第一信息量包括所述当前第一数据表的记录数和索引键值数,所述第二信息量包括所述当前第二数据表的记录数和索引键值数。第二确定子模块,用于确定所述第一信息量与所述第二信息量的比值是否在预设比值范围之内。第三确定子模块,如果所述第一信息量与所述第二信息量的比值在预设比值范围之内,则确定所述当前第一数据表的数据内容和所述当前第二数据表的数据内容一致。第四确定子模块,如果所述第一信息量与所述第二信息量的比值在预设比值范围之外,则确定所述第一信息量与所述第二信息量的比值变化率是否在预设变化率范围之内。
根据本公开实施例,上述确定所述第一信息量与所述第二信息量的比值变化率是否在预设变化率范围之内包括:获取多个时刻的多个信息量比值,其中,所述多个信息量比值中的每个信息量比值为任一时刻的第一信息量与任一时刻的第二信息量的比值,对所述多个信息量比值进行拟合处理,得到多个信息量比值的比值变化率,如果所述比值变化率在预设变化率范围之内,则确定所述当前第一数据表的数据内容和所述当前第二数据表的数据内容一致,如果所述比值变化率在预设比值范围之外,则确定所述当前第一数据表的数据内容和所述当前第二数据表的数据内容不一致。
根据本公开实施例,上述获取主数据库的多个第一数据表和备数据库的多个第二数据表包括:在第一时刻获取主数据库的多个第一数据表和备数据库的多个第二数据表。所述第二确定模块还包括:第五确定子模块、第二获取子模块、第六确定子模块以及第七确定子模块。其中,第五确定子模块,用于确定所述第一时刻的第二数据表是否具有与所述第一时刻的第一数据表不一致的信息。第二获取子模块,如果确定所述第一时刻的第二数据表具有与所述第一时刻的第一数据表不一致的信息,则在第二时刻获取所述第二数据表的数据内容。第六确定子模块,用于确定所述第二时刻的第二数据表是否具有增量信息。第七确定子模块,如果所述第二时刻的第二数据表不具有所述增量信息,则确定所述第一数据表的数据内容和所述第二数据表的数据内容不一致。
根据本公开实施例,上述确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:获取历史复制错误信息,其中,所述历史复制错误信息为将所述主数据库里的数据信息复制至所述备数据库的过程中产生错误的信息,如果所述历史复制错误信息表征复制错误类型为预设类型,确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性不满足一致性条件,并且生成报警信息。
根据本公开实施例,上述确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:获取异常索引信息,所述异常索引信息包括将所述主数据库里的数据信息复制至所述备数据库的过程中产生的异常查询语句,获取与所述异常索引信息对应的目标键值,确定所述第一数据表和所述第二数据表中是否均包括所述目标键值,如果所述第一数据表和所述第二数据表中任意一个不包括所述目标键值,则确定所述第一数据表的数据内容和所述第二数据表的数据内容不一致,并且生成报警信息。
本公开的另一方面提供了一种计算设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种非易失性可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的数据一致性检测方法和数据一致性检测装置的应用场景;
图2示意性示出了根据本公开实施例的由计算设备执行的数据一致性检测方法的流程图;
图3示意性示出了根据本公开实施例的数据内容一致性检测的流程图;
图4示意性示出了根据本公开另一实施例的数据内容一致性检测的流程图;
图5示意性示出了根据本公开实施例的数据一致性检测装置的框图;
图6示意性示出了根据本公开实施例的第二确定模块的框图;
图7示意性示出了根据本公开另一实施例的第二确定模块的框图;以及
图8示意性示出了根据本公开实施例的用于实现数据一致性检测计算机系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程控制装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
本公开的实施例提供了一种由计算设备执行的数据一致性检测方法,包括:获取主数据库的多个第一数据表和备数据库的多个第二数据表,其中,主数据库里的数据信息能够被同步至备数据库,第一数据表和第二数据表均包括标识,标识包括数据表的表名和数据库表的索引字段。然后,将多个第一数据表的标识和多个第二数据表的标识进行比较处理,得到处理结果。在处理结果表征多个第一数据表的标识与多个第二数据表的标识不一致的情况下,将多个第一数据表和多个第二数据表分为第一数据库表集合和第二数据库表集合,其中,第一数据库表集合中的第一数据表的标识与第二数据表的标识不一致,第二数据库表集合中的第一数据表的标识与第二数据表的标识一致。其后,如果确定第一数据表集合中的第一数据表或第二数据表是否为例外数据表,如果不是例外数据表,则生成报警信息,如果确定第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件,如果不满足一致性条件,则生成报警信息。
图1示意性示出了根据本公开实施例的数据一致性检测方法和数据一致性检测装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景100例如包括服务器110和服务器120。其中,服务器110中例如配置有主数据库,服务器120中例如配置有备数据库。
根据本公开实施例,需要将主数据库的数据同步至备数据库中,以便在主数据库出现故障时,备数据库能够代替主数据库接收业务访问。
在本公开实施例中,由于主数据库和备数据库之间存在数据同步,因此,需要实时检测数据同步的效果,例如实时检测主数据库的数据与备数据库的数据是否一致,便于在数据不一致时采取相应的措施,尽可能提高主数据库的数据与备数据库的数据之间的一致性。
下面结合图1的应用场景,参考图2~图4来描述根据本公开示例性实施方式的数据一致性检测方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。
图2示意性示出了根据本公开实施例的由计算设备执行的数据一致性检测方法的流程图。
如图2所示,该方法可以包括操作S210~S250。
在操作S210,获取主数据库的多个第一数据表和备数据库的多个第二数据表,其中,主数据库里的数据信息能够被同步至备数据库,以便在主数据库出现故障时,备数据库能够代替主数据库接收业务访问。其中,第一数据表和第二数据表均包括标识,标识包括数据表的表名和数据库表的索引字段。
根据本公开实施例,主数据库中多个第一数据表中的每个第一数据表例如均包括表名和对应的索引字段,例如多个第一数据表的表名分别为TB1、TB2、TB31、……,多个第一数据表的索引字段分别为IX1、IX2、IX31、……。类似地,备数据库中多个第二数据表中的每个第二数据表例如也均包括表名和对应的索引字段,例如多个第二数据表的表名分别为TB1、TB2、TB32、……,多个第二数据表的索引字段分别为IX1、IX2、IX32、……。
根据本公开实施例,标识还可以包括数据库表的索引数组,索引数组例如可以包括索引字段和字段类型。其中,字段类型例如为索引字段的具体类型,字段类型例如可以是数值类型、字符类型等等。
例如,主数据库中多个第一数据表的索引数组例如分别为(IX1,TYPE1)、(IX2,TYPE2)、(IX31,TYPE31)、……。类似地,备数据库中多个第二数据表的索引数组例如分别为(IX1,TYPE1)、(IX2,TYPE2)、(IX32,TYPE32)、……。
在操作S220,将多个第一数据表的标识和多个第二数据表的标识进行比较处理,得到处理结果。
例如,可以将多个第一数据表的表名和多个第二数据表的表名进行比较处理。例如,将多个第一数据表的表名TB1、TB2、TB31、……和多个第二数据表的表名TB1、TB2、TB32、……进行对比处理,得到关于表名的对比结果。
或者,将多个第一数据表的索引字段和多个第二数据表的索引字段进行比较处理。例如,将多个第一数据表的索引字段IX1、IX2、IX31、……和多个第二数据表的索引字段IX1、IX2、IX32、……进行对比处理,得到关于索引字段的对比结果。
或者,将多个第一数据表的索引数组和多个第二数据表的索引数组进行比较处理。例如,将多个第一数据表的索引数组(IX1,TYPE1)、(IX2,TYPE2)、(IX31,TYPE31)、……和多个第二数据表的索引数组(IX1,TYPE1)、(IX2,TYPE2)、(IX32,TYPE32)、……进行对比处理,得到关于索引数组的对比结果。
在操作S230,在处理结果表征多个第一数据表的标识与多个第二数据表的标识不一致的情况下,将多个第一数据表和多个第二数据表分为第一数据库表集合和第二数据库表集合,其中,第一数据库表集合中的第一数据表的标识与第二数据表的标识不一致,第二数据库表集合中的第一数据表的标识与第二数据表的标识一致。
例如,针对标识为表名的情况,可知多个第一数据表的表名TB1、TB2、TB31、……和多个第二数据表的表名TB1、TB2、TB32、……不一致,将不一致的表名TB31对应的第一数据表和表名TB32对应的第二数据表划分到第一数据表集合中。将一致的表名TB1、TB2对应的第一数据表和表名TB1、TB2对应的第二数据表划分到第二数据表集合中。
例如,针对标识为索引字段的情况,可知多个第一数据表的索引字段IX1、IX2、IX31、……和多个第二数据表的索引字段IX1、IX2、IX32、……不一致,将不一致的索引字段IX31对应的第一数据表和索引字段IX32对应的第二数据表划分到第一数据表集合中。将一致的索引字段IX1、IX2对应的第一数据表和索引字段IX1、IX2对应的第二数据表划分到第二数据表集合中。
例如,针对标识为索引数组的情况,可知多个第一数据表的索引数组(IX1,TYPE1)、(IX2,TYPE2)、(IX31,TYPE31)、……和多个第二数据表的索引数组(IX1,TYPE1)、(IX2,TYPE2)、(IX32,TYPE32)、……不一致,将不一致的索引数组(IX31,TYPE31)对应的第一数据表和索引数组(IX32,TYPE32)对应的第二数据表划分到第一数据表集合中。将一致的索引数组(IX1,TYPE1)、(IX2,TYPE2)对应的第一数据表和索引数组(IX1,TYPE1)、(IX2,TYPE2)对应的第二数据表划分到第二数据表集合中。其中,表名、索引字段、索引数组分别针对的集合(包括第一数据表集合和第二数据表集合)例如可以为不同的集合。
另外,如果多个第一数据表的表名与多个第二数据表的表名均一致,可以将表名对应的多个第一数据表和多个第二数据表均划分至第二数据库表集合,此时,第一数据表集合可以为空集合。类似地,针对索引字段或者索引数组也可以作同样的处理。
在操作S240,确定第一数据表集合中的第一数据表或第二数据表是否为例外数据表,如果不是例外数据表,则生成报警信息。
根据本公开实施例,例如可以确认第一数据表集合中表名为TB31对应的第一数据表是否为例外数据表,如果不是例外数据表则生成报警信息,以及确认第一数据表集合中表名为TB32对应的第二数据表是否为例外数据表,如果不是例外数据表则生成报警信息。
或者,可以确认第一数据表集合中索引字段为IX31对应的第一数据表是否为例外数据表,如果不是例外数据表则生成报警信息,以及确认第一数据表集合中索引字段为IX32对应的第二数据表是否为例外数据表,如果不是例外数据表则生成报警信息。
或者,还可以确认第一数据表集合中索引数组为(IX31,TYPE31)对应的第一数据表是否为例外数据表,如果不是例外数据表则生成报警信息,以及确认第一数据表集合中索引字段为(IX32,TYPE32)对应的第二数据表是否为例外数据表,如果不是例外数据表则生成报警信息。
在本公开实施例中,例外数据表例如可以是允许主数据库和备数据库之间不一致的数据表,即,在主数据库和备数据库进行数据同步时,可以不对例外数据表进行同步。
在操作S250,确定第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件,如果不满足一致性条件,则生成报警信息。
根据本公开实施例,第二数据表集合中的第一数据表和第二数据表的表名、索引字段或者索引数据一致,可以进一步比较第二数据表集合中的第一数据表和第二数据表的数据内容,以确认数据内容是否一致,如果不一致则生成报警信息。
其中,一致性条件例如包括第一数据表的数据内容与第二数据表的数据内容存在一定差异,当该差异在容许的范围内即可表示满足一致性条件。其中,操作S250的具体实现过程例如在图3中描述。
根据本公开实施例,首先通过比较数据表的标识,将标识一致的数据表和标识不一致的数据表进行划分,针对标识不一致的数据表,可以通过判断是否为例外数据表来确定是否需要进行报警。另外,针对标识一致的数据表,可进一步判断数据表的数据内容,如果数据内容的一致性不满足一致性条件则进行报警。可以理解,首先通过对比数据表的标识,再对比数据表的数据内容的方式,提高了检测主数据库和备数据库一致性的效率。并且,基于一致性条件对比数据内容的一致性,允许数据内容存在容许的差异,实现在主数据库或备数据库动态更新的情况下,也可以较为准确地检测主数据库和备数据库之间数据同步的一致性。
图3示意性示出了根据本公开实施例的数据内容一致性检测的流程图。
如图3所示,上述操作S250例如包括操作S251a~S255a。
在操作S251a,从第二数据表集合中确定当前第一数据表和与当前第一数据表的标识一致的当前第二数据表。
在操作S252a,获取当前第一数据表的第一信息量和当前第二数据表的第二信息量,其中,第一信息量包括当前第一数据表的记录数和索引键值数,第二信息量包括当前第二数据表的记录数和索引键值数。
在操作S253a,确定第一信息量与第二信息量的比值是否在预设比值范围之内。
在操作S254a,如果第一信息量与第二信息量的比值在预设比值范围之内,则确定当前第一数据表的数据内容和当前第二数据表的数据内容一致。
在操作S255a,如果第一信息量与第二信息量的比值在预设比值范围之外,则确定第一信息量与第二信息量的比值变化率是否在预设变化率范围之内。
根据本公开实施例,操作S252a例如具体包括:首先获取多个时刻的多个信息量比值,其中,多个信息量比值中的每个信息量比值为任一时刻的第一信息量与任一时刻的第二信息量的比值。然后,对多个信息量比值进行拟合处理,得到多个信息量比值的比值变化率。如果比值变化率在预设变化率范围之内,则确定当前第一数据表的数据内容和当前第二数据表的数据内容一致,如果比值变化率在预设比值范围之外,则确定当前第一数据表的数据内容和当前第二数据表的数据内容不一致。
根据本公开实施例,上述操作S251a~S255a的具体实现例如包括两种情况,第一种情况例如可以是数据表的标识为表名的情况,第二种情况例如可以是数据表的标识为索引字段的情况。
第一种情况:
例如,第二数据表集合中例如包括多个第一数据表和多个第二数据表,依次从第二数据表集合中获取表名一致的一个第一数据表和一个第二数据表分别作为当前第一数据表和当前第二数据表。例如,获取表名为TBn的第一数据表作为当前第一数据表,获取表名为TBn的第二数据表作为当前第二数据表。
其中,表名为TBn的当前第一数据表的第一信息量例如为该表的记录数为AnEnt,表名为TBn的当前第二数据表的第二信息量例如为该表的记录数为BnEnt。
如果AnEnt=BnEnt,则表示当前第一数据表和当前第二数据表的记录数一致,则可以继续获取下一张第一数据表作为当前第一数据表以及获取表名一致的第二数据表作为当前第二数据表,并继续对比数据表的记录数。
如果AnEnt不等于BnEnt,则确定AnEnt/BnEnt的比值是否在预设比值范围之内,该预设比值范围例如为(1-x1,1+x1),其中,x1例如默认为3%,该预设比值范围为设定的数据库记录数允许动态误差比例。如果AnEnt/BnEnt的比值在预设比值范围之内,则认为误差在可接受范围,可以继续获取下一张第一数据表作为当前第一数据表以及获取表名一致的第二数据表作为当前第二数据表,并继续对比数据表的记录数。
如果AnEnt/BnEnt的比值在预设比值范围之外,则可以采集当前第一数据表和当前第二数据表在多个时刻的多个记录数比值(AnEnt/BnEnt)。例如,采样最近的10个记录数比值,将该10个记录数比值进行二次线性拟合,得到记录数比值变化率D1(斜率)。
然后,进一步确定记录数比值变化率D1是否在预设比值变化率范围之内,该预设比值变化率范围例如为(-x2,x2),其中,x2例如默认为5%,该预设比值变化率范围为设定的数据库记录数比值的斜率变化阈值。如果比值变化率D1在预设比值变化率范围之内,则认为记录数变化在可接受范围,可以继续获取下一张第一数据表作为当前第一数据表以及获取表名一致的第二数据表作为当前第二数据表,并继续对比数据表的记录数。如果比值变化率D1在预设比值变化率范围之外,例如D1>x2或D1<-x2,则产生报警文本,并记录该疑似记录数不一致的表名,并继续进入下一张数据库表进行记录数判断,例如获取下一张第一数据表作为当前第一数据表以及获取表名一致的第二数据表作为当前第二数据表,并继续对比数据表的记录数。
第二种情况:
与第一种情况类似,依次从第二数据表集合中获取索引字段一致的一个第一数据表和一个第二数据表分别作为当前第一数据表和当前第二数据表。例如,获取索引字段为IXn的第一数据表作为当前第一数据表,获取索引字段为IXn的第二数据表作为当前第二数据表。
其中,索引字段为IXn的当前第一数据表的第一信息量例如为该表的索引键值数为AiEnt,索引字段为IXn的当前第二数据表的第二信息量例如为该表的索引键值数为BiEnt。
如果AiEnt=BiEnt,则表示当前第一数据表和当前第二数据表的索引键值数一致,则可以继续获取下一张第一数据表作为当前第一数据表以及获取索引字段一致的第二数据表作为当前第二数据表,并继续对比数据表的索引键值数。
如果AiEnt不等于BiEnt,则确定AiEnt/BiEnt的比值是否在预设比值范围之内,该预设比值范围例如为(1-x3,1+x3),其中,x3例如默认为3%,该预设比值范围为设定的数据库索引键值数允许动态误差比例。如果AiEnt/BiEnt的比值在预设比值范围之内,则认为误差在可接受范围,可以继续获取下一张第一数据表作为当前第一数据表以及获取索引字段一致的第二数据表作为当前第二数据表,并继续对比数据表的索引键值数。
如果AiEnt/BiEnt的比值在预设比值范围之外,则可以采集当前第一数据表和当前第二数据表在多个时刻的多个索引键值数比值(AiEnt/BiEnt)。例如,采样最近10个索引键值数比值,将该10个索引键值数比值进行二次线性拟合,得到索引键值数比值变化率D2(斜率)。
然后,进一步确定索引键值数比值变化率D2是否在预设比值变化率范围之内,该预设比值变化率范围例如为(-x4,x4),其中,x4例如默认为5%,该预设比值变化率范围为设定的数据库索引键值数比值的斜率变化阈值。如果比值变化率D2在预设比值变化率范围之内,则认为索引键值数变化在可接受范围,可以继续获取下一张第一数据表作为当前第一数据表以及获取索引字段一致的第二数据表作为当前第二数据表,并继续对比数据表的索引键值数。如果比值变化率D2在预设比值变化率范围之外,例如D2>x4或D2<-x4,则产生报警文本,并记录该疑似索引键值数不一致的索引字段,并继续进入下一张数据库表进行索引键值数判断,例如获取下一张第一数据表作为当前第一数据表以及获取索引字段一致的第二数据表作为当前第二数据表,并继续对比数据表的索引键值数。
图4示意性示出了根据本公开另一实施例的数据内容一致性检测的流程图。
如图4所示,上述操作S250例如还可以包括操作S251b~S254b。
根据本公开实施例,上述操作S210例如包括:在第一时刻获取主数据库的多个第一数据表和备数据库的多个第二数据表。
在操作S251b,确定第一时刻的第二数据表是否具有与第一时刻的第一数据表不一致的信息。
例如,第二数据表集合中例如包括多个第一数据表和多个第二数据表,依次从第二数据表集合中获取表名一致的一个第一数据表和一个第二数据表。例如,获取表名为TBn的第一数据表和表名为TBn的第二数据表。对比第一数据表TBn与第二数据表TBn的信息,其中,对比的信息例如包括修改信息、新增信息或删除信息等等。
例如,比较第一数据表TBn的数据插入量Ainn与第二数据表TBn的数据插入量Binn,如果Ainn>0,Binn=0,则将第二数据库表TBn标记为疑似未插入记录的据库表。比较第一数据表TBn的数据更新量Aupn与第二数据表TBn的数据更新量Bupn,如果Aupn>0,Bupn=0,则将第二数据库表TBn标记为疑似未更新记录的数据库表。比较第一数据表TBn的数据删除量Aden与第二数据表TBn的数据删除量Bden,如果Aden>0,Bden=0,则将第二数据库表TBn标记为疑似未删除记录的数据库表。
在操作S252b,如果确定第一时刻的第二数据表具有与第一时刻的第一数据表不一致的信息,则在第二时刻获取第二数据表的数据内容。
其中,第一时刻T和第二时刻T+1之间的间隔例如可以预先设定,例如设定的间隔为1小时。
在操作S253b,确定第二时刻的第二数据表是否具有增量信息。其中,增量信息例如包括修改信息、新增信息或删除信息等等。
在操作S254b,如果第二时刻的第二数据表不具有增量信息,则确定第一数据表的数据内容和第二数据表的数据内容不一致。
例如,对于疑似未插入数据的第二数据库表TBn,在第二时刻T+1,检查该第二数据库表TBn的插入记录数Binn+1,如果Binn+1=0,则表示第二数据库表TBn未插入记录,则产生报警文本,提示插入记录丢失。
例如,对于疑似未更新数据的第二数据库表TBn,在第二时刻T+1,检查该第二数据库表TBn的更新记录数Bupn+1,如果Bupn+1=0,则表示第二数据库表TBn未更新记录,则产生报警文本,提示更新记录丢失。
例如,对于疑似未删除数据的第二数据库表TBn,在第二时刻T+1,检查该第二数据库表TBn的删除记录数Bden+1,如果Bden+1=0,则表示第二数据库表TBn未删除记录,则产生报警文本,提示删除记录丢失。
可以理解,由于数据库的数据同步存在一定的延时,导致在主数据库进行数据操作后,该操作带来的数据变化在一定时间间隔后才成功同步至备数据库中。因此,本公开实施例考虑了数据同步的延时因素,即通过获取第一时刻的数据的差异,并在第二时刻确定该差异是否被消除,如果被消除则表示数据同步成功,如果在第二时刻还存在该差异,则可以生成报警信息。其中,通过考虑数据同步的延时因素,使得在数据库动态更新的情况下,提高检测主数据库和备数据库的数据一致性的准确性。
根据本公开实施例,上述操作S250例如还可以包括根据历史复制错误信息来确定第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件。
具体地,获取历史复制错误信息,其中,历史复制错误信息为将主数据库里的数据信息复制至备数据库的过程中产生错误的信息。如果历史复制错误信息表征复制错误类型为预设类型,确定第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性不满足一致性条件,并且生成报警信息。其中,预设类型例如包括存在重复记录、未找到相应记录等等。
另外,上述操作S250例如还包括根据异常索引信息来确定第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件。
具体地,可以获取异常索引信息,异常索引信息包括将主数据库里的数据信息复制至备数据库的过程中产生的异常查询语句,异常查询语句例如可以是SQL语句。然后,获取与异常索引信息对应的目标键值,并确定第一数据表和第二数据表中是否均包括目标键值,如果第一数据表和第二数据表中任意一个不包括目标键值,则确定第一数据表的数据内容和第二数据表的数据内容不一致,并且生成报警信息。
根据本公开实施例,生成报警信息例如可以是根据预先定义的通知策略,通过展示界面、邮件发送、短信通知等方式发出报警。报警信息主要包括存在复制疑问的具体数据库的表名以及异常原因。具体地,报警信息例如包括:数据库表中各字段的定义不一致、数据库表的索引字段定义不一致、数据库表可能存在复制数据丢失、数据库表复制过程出现例外键值等等。
图5示意性示出了根据本公开实施例的数据一致性检测装置的框图。
如图5所示,数据一致性检测装置500例如包括获取模块510、处理模块520、划分模块530、第一确定模块540以及第二确定模块550。
获取模块510可以用于获取主数据库的多个第一数据表和备数据库的多个第二数据表,其中,主数据库里的数据信息能够被同步至备数据库,第一数据表和第二数据表均包括标识,标识包括数据表的表名和数据库表的索引字段。根据本公开实施例,获取模块510例如可以执行上文参考图2描述的操作S210,在此不再赘述。
处理模块520可以用于将多个第一数据表的标识和多个第二数据表的标识进行比较处理,得到处理结果。根据本公开实施例,处理模块520例如可以执行上文参考图2描述的操作S220,在此不再赘述。
划分模块530可以用于在处理结果表征多个第一数据表的标识与多个第二数据表的标识不一致的情况下,将多个第一数据表和多个第二数据表分为第一数据库表集合和第二数据库表集合,其中,第一数据库表集合中的第一数据表的标识与第二数据表的标识不一致,第二数据库表集合中的第一数据表的标识与第二数据表的标识一致。根据本公开实施例,划分模块530例如可以执行上文参考图2描述的操作S230,在此不再赘述。
第一确定模块540可以用于确定第一数据表集合中的第一数据表或第二数据表是否为例外数据表,如果不是例外数据表,则生成报警信息。根据本公开实施例,第一确定模块540例如可以执行上文参考图2描述的操作S240,在此不再赘述。
第二确定模块550可以用于确定第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件,如果不满足一致性条件,则生成报警信息。根据本公开实施例,第二确定模块550例如可以执行上文参考图2描述的操作S250,在此不再赘述。
根据本公开实施例,将多个第一数据表的标识和多个第二数据表的标识进行比较处理包括以下至少一项:将多个第一数据表的表名和多个第二数据表的表名进行比较处理,将多个第一数据表的索引字段和多个第二数据表的索引字段进行比较处理,将多个第一数据表的索引数组和多个第二数据表的索引数组进行比较处理,其中,索引数组包括索引字段和字段类型。
根据本公开实施例,上述确定第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:获取历史复制错误信息,其中,历史复制错误信息为将主数据库里的数据信息复制至备数据库的过程中产生错误的信息,如果历史复制错误信息表征复制错误类型为预设类型,确定第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性不满足一致性条件,并且生成报警信息。
根据本公开实施例,上述确定第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:获取异常索引信息,异常索引信息包括将主数据库里的数据信息复制至备数据库的过程中产生的异常查询语句,获取与异常索引信息对应的目标键值,确定第一数据表和第二数据表中是否均包括目标键值,如果第一数据表和第二数据表中任意一个不包括目标键值,则确定第一数据表的数据内容和第二数据表的数据内容不一致,并且生成报警信息。
图6示意性示出了根据本公开实施例的第二确定模块的框图。
如图6所示,第二确定模块550例如包括第一确定子模块551a、第一获取子模块552a、第二确定子模块553a、第三确定子模块554a以及第四确定子模块555a。
第一确定子模块551a可以用于从第二数据表集合中确定当前第一数据表和与当前第一数据表的标识一致的当前第二数据表。根据本公开实施例,第一确定子模块551a例如可以执行上文参考图3描述的操作S251a,在此不再赘述。
第一获取子模块552a可以用于获取当前第一数据表的第一信息量和当前第二数据表的第二信息量,其中,第一信息量包括当前第一数据表的记录数和索引键值数,第二信息量包括当前第二数据表的记录数和索引键值数。根据本公开实施例,第一获取子模块552a例如可以执行上文参考图3描述的操作S252a,在此不再赘述。
第二确定子模块553a可以用于确定第一信息量与第二信息量的比值是否在预设比值范围之内。根据本公开实施例,第二确定子模块553a例如可以执行上文参考图3描述的操作S253a,在此不再赘述。
第三确定子模块554a可以用于如果第一信息量与第二信息量的比值在预设比值范围之内,则确定当前第一数据表的数据内容和当前第二数据表的数据内容一致。根据本公开实施例,第三确定子模块554a例如可以执行上文参考图3描述的操作S254a,在此不再赘述。
第四确定子模块555a可以用于如果第一信息量与第二信息量的比值在预设比值范围之外,则确定第一信息量与第二信息量的比值变化率是否在预设变化率范围之内。根据本公开实施例,第四确定子模块555a例如可以执行上文参考图3描述的操作S255a,在此不再赘述。
根据本公开实施例,确定第一信息量与第二信息量的比值变化率是否在预设变化率范围之内包括:获取多个时刻的多个信息量比值,其中,多个信息量比值中的每个信息量比值为任一时刻的第一信息量与任一时刻的第二信息量的比值,对多个信息量比值进行拟合处理,得到多个信息量比值的比值变化率,如果比值变化率在预设变化率范围之内,则确定当前第一数据表的数据内容和当前第二数据表的数据内容一致,如果比值变化率在预设比值范围之外,则确定当前第一数据表的数据内容和当前第二数据表的数据内容不一致。
图7示意性示出了根据本公开另一实施例的第二确定模块的框图。
如图7所示,第二确定模块550例如还包括第五确定子模块551b、第二获取子模块552b、第六确定子模块553b以及第七确定子模块554b。
根据本公开实施例,获取主数据库的多个第一数据表和备数据库的多个第二数据表包括:在第一时刻获取主数据库的多个第一数据表和备数据库的多个第二数据表。
第五确定子模块551b可以用于确定第一时刻的第二数据表是否具有与第一时刻的第一数据表不一致的信息。根据本公开实施例,第五确定子模块551b例如可以执行上文参考图4描述的操作S251b,在此不再赘述。
第二获取子模块552b可以用于如果确定第一时刻的第二数据表具有与第一时刻的第一数据表不一致的信息,则在第二时刻获取第二数据表的数据内容。根据本公开实施例,第二获取子模块552b例如可以执行上文参考图4描述的操作S252b,在此不再赘述。
第六确定子模块553b可以用于确定第二时刻的第二数据表是否具有增量信息。根据本公开实施例,第六确定子模块553b例如可以执行上文参考图4描述的操作S253b,在此不再赘述。
第七确定子模块554b可以用于如果第二时刻的第二数据表不具有增量信息,则确定第一数据表的数据内容和第二数据表的数据内容不一致。根据本公开实施例,第七确定子模块554b例如可以执行上文参考图4描述的操作S254b,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块510、处理模块520、划分模块530、第一确定模块540、第二确定模块550、第一确定子模块551a、第一获取子模块552a、第二确定子模块553a、第三确定子模块554a、第四确定子模块555a、第五确定子模块551b、第二获取子模块552b、第六确定子模块553b以及第七确定子模块554b中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块510、处理模块520、划分模块530、第一确定模块540、第二确定模块550、第一确定子模块551a、第一获取子模块552a、第二确定子模块553a、第三确定子模块554a、第四确定子模块555a、第五确定子模块551b、第二获取子模块552b、第六确定子模块553b以及第七确定子模块554b中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块510、处理模块520、划分模块530、第一确定模块540、第二确定模块550、第一确定子模块551a、第一获取子模块552a、第二确定子模块553a、第三确定子模块554a、第四确定子模块555a、第五确定子模块551b、第二获取子模块552b、第六确定子模块553b以及第七确定子模块554b中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的用于实现数据一致性检测计算机系统的方框图。图8示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括处理器801、计算机可读存储介质802。该系统800可以执行根据本公开实施例的方法。
具体地,处理器801例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质802,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质802可以包括计算机程序803,该计算机程序803可以包括代码/计算机可执行指令,其在由处理器801执行时使得处理器801执行根据本公开实施例的方法或其任何变形。
计算机程序803可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序803中的代码可以包括一个或多个程序模块,例如包括803A、模块803B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器801执行时,使得处理器801可以执行根据本公开实施例的方法或其任何变形。
根据本公开的实施例,获取模块510、处理模块520、划分模块530、第一确定模块540、第二确定模块550、第一确定子模块551a、第一获取子模块552a、第二确定子模块553a、第三确定子模块554a、第四确定子模块555a、第五确定子模块551b、第二获取子模块552b、第六确定子模块553b以及第七确定子模块554b中的至少一个可以实现为参考图8描述的计算机程序模块,其在被处理器801执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现上述方法。
根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是--但不限于--电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (9)
1.一种由计算设备执行的数据一致性检测方法,包括:
获取主数据库的多个第一数据表和备数据库的多个第二数据表,其中,所述主数据库里的数据信息能够被同步至所述备数据库,所述第一数据表和所述第二数据表均包括标识,所述标识包括数据表的表名和数据库表的索引字段;
将所述多个第一数据表的标识和所述多个第二数据表的标识进行比较处理,得到处理结果;
在所述处理结果表征所述多个第一数据表的标识与所述多个第二数据表的标识不一致的情况下,将所述多个第一数据表和所述多个第二数据表分为第一数据库表集合和第二数据库表集合,其中,所述第一数据库表集合中的第一数据表的标识与第二数据表的标识不一致,所述第二数据库表集合中的第一数据表的标识与第二数据表的标识一致;
确定所述第一数据表集合中的第一数据表或第二数据表是否为例外数据表,如果不是例外数据表,则生成报警信息;以及
确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件,如果不满足所述一致性条件,则生成报警信息,
其中,所述获取主数据库的多个第一数据表和备数据库的多个第二数据表包括:在第一时刻获取主数据库的多个第一数据表和备数据库的多个第二数据表;
所述确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:
确定所述第一时刻的第二数据表是否具有与所述第一时刻的第一数据表不一致的信息;
如果确定所述第一时刻的第二数据表具有与所述第一时刻的第一数据表不一致的信息,则在第二时刻获取所述第二数据表的数据内容;
其中,所述不一致的信息具体包括:
修改信息、新增信息或删除信息;
确定所述第二时刻的第二数据表是否具有增量信息;以及
如果所述第二时刻的第二数据表不具有所述增量信息,则确定所述第一数据表的数据内容和所述第二数据表的数据内容不一致;
其中,所述增量信息具体包括:
修改信息、新增信息或删除信息。
2.根据权利要求1所述的方法,其中,所述将所述多个第一数据表的标识和所述多个第二数据表的标识进行比较处理包括以下至少一项:
将所述多个第一数据表的表名和所述多个第二数据表的表名进行比较处理;
将所述多个第一数据表的索引字段和所述多个第二数据表的索引字段进行比较处理;以及
将所述多个第一数据表的索引数组和所述多个第二数据表的索引数组进行比较处理,其中,所述索引数组包括所述索引字段和字段类型。
3.根据权利要求1所述的方法,其中,所述确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:
从所述第二数据表集合中确定当前第一数据表和与所述当前第一数据表的标识一致的当前第二数据表;
获取所述当前第一数据表的第一信息量和所述当前第二数据表的第二信息量,其中,所述第一信息量包括所述当前第一数据表的记录数和索引键值数,所述第二信息量包括所述当前第二数据表的记录数和索引键值数;
确定所述第一信息量与所述第二信息量的比值是否在预设比值范围之内;
如果所述第一信息量与所述第二信息量的比值在预设比值范围之内,则确定所述当前第一数据表的数据内容和所述当前第二数据表的数据内容一致;以及
如果所述第一信息量与所述第二信息量的比值在预设比值范围之外,则确定所述第一信息量与所述第二信息量的比值变化率是否在预设变化率范围之内。
4.根据权利要求3所述的方法,其中,所述确定所述第一信息量与所述第二信息量的比值变化率是否在预设变化率范围之内包括:
获取多个时刻的多个信息量比值,其中,所述多个信息量比值中的每个信息量比值为任一时刻的第一信息量与任一时刻的第二信息量的比值;
对所述多个信息量比值进行拟合处理,得到多个信息量比值的比值变化率;以及
如果所述比值变化率在预设变化率范围之内,则确定所述当前第一数据表的数据内容和所述当前第二数据表的数据内容一致;以及
如果所述比值变化率在预设比值范围之外,则确定所述当前第一数据表的数据内容和所述当前第二数据表的数据内容不一致。
5.根据权利要求1所述的方法,其中,所述确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:
获取历史复制错误信息,其中,所述历史复制错误信息为将所述主数据库里的数据信息复制至所述备数据库的过程中产生错误的信息;以及
如果所述历史复制错误信息表征复制错误类型为预设类型,确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性不满足一致性条件,并且生成报警信息。
6.根据权利要求1所述的方法,其中,所述确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:
获取异常索引信息,所述异常索引信息包括将所述主数据库里的数据信息复制至所述备数据库的过程中产生的异常查询语句;
获取与所述异常索引信息对应的目标键值;
确定所述第一数据表和所述第二数据表中是否均包括所述目标键值;以及
如果所述第一数据表和所述第二数据表中任意一个不包括所述目标键值,则确定所述第一数据表的数据内容和所述第二数据表的数据内容不一致,并且生成报警信息。
7.一种数据一致性检测装置,包括:
获取模块,用于获取主数据库的多个第一数据表和备数据库的多个第二数据表,其中,所述主数据库里的数据信息能够被同步至所述备数据库,所述第一数据表和所述第二数据表均包括标识,所述标识包括数据表的表名和数据库表的索引字段;
处理模块,用于将所述多个第一数据表的标识和所述多个第二数据表的标识进行比较处理,得到处理结果;
划分模块,用于在所述处理结果表征所述多个第一数据表的标识与所述多个第二数据表的标识不一致的情况下,将所述多个第一数据表和所述多个第二数据表分为第一数据库表集合和第二数据库表集合,其中,所述第一数据库表集合中的第一数据表的标识与第二数据表的标识不一致,所述第二数据库表集合中的第一数据表的标识与第二数据表的标识一致;
第一确定模块,用于确定所述第一数据表集合中的第一数据表或第二数据表是否为例外数据表,如果不是例外数据表,则生成报警信息;以及
第二确定模块,用于确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件,如果不满足所述一致性条件,则生成报警信息,
其中,所述获取主数据库的多个第一数据表和备数据库的多个第二数据表包括:在第一时刻获取主数据库的多个第一数据表和备数据库的多个第二数据表;
所述确定所述第二数据表集合中的第一数据表的数据内容和第二数据表的数据内容的一致性是否满足一致性条件包括:
确定所述第一时刻的第二数据表是否具有与所述第一时刻的第一数据表不一致的信息;
如果确定所述第一时刻的第二数据表具有与所述第一时刻的第一数据表不一致的信息,则在第二时刻获取所述第二数据表的数据内容;
其中,所述不一致的信息具体包括:
修改信息、新增信息或删除信息;
确定所述第二时刻的第二数据表是否具有增量信息;以及
如果所述第二时刻的第二数据表不具有所述增量信息,则确定所述第一数据表的数据内容和所述第二数据表的数据内容不一致;
其中,所述增量信息具体包括:
修改信息、新增信息或删除信息。
8.一种计算设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911092268.1A CN110928891B (zh) | 2019-11-08 | 2019-11-08 | 数据一致性检测方法、装置、计算设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911092268.1A CN110928891B (zh) | 2019-11-08 | 2019-11-08 | 数据一致性检测方法、装置、计算设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928891A CN110928891A (zh) | 2020-03-27 |
CN110928891B true CN110928891B (zh) | 2023-01-03 |
Family
ID=69852615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911092268.1A Active CN110928891B (zh) | 2019-11-08 | 2019-11-08 | 数据一致性检测方法、装置、计算设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928891B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737354A (zh) * | 2020-06-30 | 2020-10-02 | 中国工商银行股份有限公司 | 数据一致性的检测方法、装置、系统及介质 |
CN112235451B (zh) * | 2020-10-21 | 2022-09-23 | 广州三星通信技术研究有限公司 | 提供关于联系人被删除的报警的方法及装置 |
CN113742322A (zh) * | 2020-11-17 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种数据质量检测方法和装置 |
CN113760882B (zh) * | 2021-11-10 | 2022-01-28 | 北京每日菜场科技有限公司 | 数据异常报警方法、装置、电子设备和计算机可读介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120209817A1 (en) * | 2011-02-15 | 2012-08-16 | At&T Intellectual Property I, L.P. | Methods, Systems, and Products for Maintaining Data Consistency in a Stream Warehouse |
CN104111937A (zh) * | 2013-04-18 | 2014-10-22 | 中兴通讯股份有限公司 | 主、备数据库及其数据一致性检测、修复方法和装置 |
CN108153784A (zh) * | 2016-12-06 | 2018-06-12 | 北京京东尚科信息技术有限公司 | 同步数据处理方法和装置 |
CN109033186A (zh) * | 2018-06-27 | 2018-12-18 | 东软集团股份有限公司 | 数据一致性检测方法、装置、存储介质及电子设备 |
-
2019
- 2019-11-08 CN CN201911092268.1A patent/CN110928891B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120209817A1 (en) * | 2011-02-15 | 2012-08-16 | At&T Intellectual Property I, L.P. | Methods, Systems, and Products for Maintaining Data Consistency in a Stream Warehouse |
CN104111937A (zh) * | 2013-04-18 | 2014-10-22 | 中兴通讯股份有限公司 | 主、备数据库及其数据一致性检测、修复方法和装置 |
CN108153784A (zh) * | 2016-12-06 | 2018-06-12 | 北京京东尚科信息技术有限公司 | 同步数据处理方法和装置 |
CN109033186A (zh) * | 2018-06-27 | 2018-12-18 | 东软集团股份有限公司 | 数据一致性检测方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110928891A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928891B (zh) | 数据一致性检测方法、装置、计算设备以及介质 | |
US11500729B2 (en) | System and method for preserving data using replication and blockchain notarization | |
US8762337B2 (en) | Storage replication systems and methods | |
CN105989044A (zh) | 一种数据库校验方法及系统 | |
CN110188103A (zh) | 数据对账方法、装置、设备和存储介质 | |
WO2021017422A1 (zh) | 一种块链式账本中的索引创建方法、装置及设备 | |
CN111666186A (zh) | 数据访问异常的检测方法、装置、存储介质及计算机设备 | |
US11481284B2 (en) | Systems and methods for generating self-notarized backups | |
US10635575B2 (en) | Testing of enterprise resource planning systems | |
CN109284331B (zh) | 基于业务数据资源的制证信息获取方法、终端设备及介质 | |
US20170091044A1 (en) | Replicating data in a data storage system | |
CN110443034B (zh) | 风险程序文件的识别方法、装置、计算设备以及介质 | |
US10620872B2 (en) | Replicating data in a data storage system | |
CN110866031B (zh) | 数据库访问路径的优化方法、装置、计算设备以及介质 | |
CN111291065B (zh) | 由计算设备执行的资产数据变更方法、装置和计算设备 | |
CN114721943A (zh) | 测试范围的确定方法和装置 | |
CN113434603A (zh) | 一种基于可信账本数据库的数据存储方法、装置及系统 | |
US10901630B2 (en) | Method and apparatus for determining data duplication progress in real-time | |
CN114900531B (zh) | 数据同步方法、装置和系统 | |
KR20160057944A (ko) | 분산 시스템에서의 데이터베이스 동기화 방법 | |
CN112364010B (zh) | 一种重要业务记录的存在性验证方法及装置 | |
CN113077241B (zh) | 审批处理方法、装置、设备及存储介质 | |
CN110516439B (zh) | 一种检测方法、装置、服务器及计算机可读介质 | |
US8086567B2 (en) | Apparatus and method for storing data | |
CN115190015A (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 |