发明内容
本申请实施例提供了一种数据库校验方法、装置,以提高数据库一致性校验效率。
本申请实施例采用下述技术方案:
第一方面,本申请实施例提供一种数据库校验方法,由校验服务器执行,其中,所述方法包括:
接收数据库一致性校验请求,其中所述数据库一致性校验请求是指对多个目标数据库中的数据进行一致性校验的请求;
根据所述数据库一致性校验请求生成数据统计文件;
将所述数据统计文件发送到各目标数据库所在的机器上,以使各目标数据库所在的机器根据所述数据统计文件进行数据统计;
根据各目标数据库所在的机器返回的数据统计结果,对各目标数据库进行一致性校验,得到数据库一致性校验结果。
可选地,所述接收数据库一致性校验请求包括:
对所述数据库一致性校验请求进行验证;
若验证通过,则执行根据所述数据库一致性校验请求生成数据统计文件的步骤;
若验证未通过,则输出提示信息。
可选地,所述根据所述数据库一致性校验请求生成数据统计文件包括:
根据所述数据库一致性校验请求确定目标数据库的IP地址和校验范围;
根据所述目标数据库的IP地址和所述校验范围,生成所述数据统计文件。
可选地,所述数据库一致性校验请求中包括数据中心标识,所述根据所述数据库一致性校验请求确定目标数据库的IP地址包括:
根据所述数据中心标识确定目标数据中心及所述目标数据中心包含的至少一套分库,其中所述分库基于数据库之间的主备关系构建得到;
获取各分库中包含的全部数据库的IP地址,作为各分库的目标数据库的IP地址。
可选地,各分库中均包括主数据库和备用数据库,所述获取各分库中包含的全部数据库的IP地址,作为各分库的目标数据库的IP地址包括:
获取各分库中的主数据库的IP地址;
根据各分库中的主数据库的IP地址,获取各分库中的备用数据库的IP地址;
将各分库中的主数据库的IP地址和备用数据库的IP地址作为各分库的目标数据库的IP地址。
可选地,所述数据库一致性校验请求中包括至少一个数据库的IP地址,所述根据所述数据库一致性校验请求确定目标数据库的IP地址包括:
根据各数据库的IP地址,确定各数据库所在的分库;
获取各分库中的全部数据库的IP地址,作为各分库的目标数据库的IP地址。
可选地,所述将所述数据统计文件发送到各目标数据库所在的机器上,以使各目标数据库所在的机器根据所述数据统计文件进行数据统计包括:
通过SCP远程命令,将所述数据统计文件发送到处于同一分库下的目标数据库所在的机器上,以使同一分库下的目标数据库所在的机器分别根据所述数据统计文件进行数据统计;
接收同一分库下的目标数据库所在的机器返回的数据统计结果。
可选地,所述根据各目标数据库所在的机器返回的数据统计结果,对各目标数据库进行一致性校验,得到数据库一致性校验结果包括:
将同一分库下的目标数据库返回的数据统计结果进行相互比对;
若比对一致,则得到校验通过的数据库一致性校验结果;
若比对不一致,则得到校验未通过的数据库一致性校验结果。
可选地,在将所述数据统计文件发送到各目标数据库所在的机器上之后,所述方法还包括:
接收各目标数据库返回的过程日志文件;
将所述过程日志文件和所述数据库一致性校验结果存储到预设校验数据库中。
可选地,在根据各目标数据库所在的机器返回的数据统计结果,对各目标数据库进行一致性校验,得到数据库一致性校验结果之后,所述方法还包括:
若所述数据库一致性校验结果为校验未通过,则获取各目标数据库的过程日志文件;
根据各目标数据库的过程日志文件确定异常的目标数据库及异常数据。
可选地,所述方法还包括:
提供前端页面;
所述接收数据库一致性校验请求包括:
通过所述前端页面接收所述数据库一致性校验请求。
第二方面,本申请实施例还提供一种数据库校验装置,应用于校验服务器,其中,所述装置用于实现前述之任一所述方法。
第三方面,本申请实施例还提供一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行前述之任一所述方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行前述之任一所述方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本申请实施例的数据库校验方法可以由单独部署的校验服务器执行,在进行数据库校验时,先接收数据库一致性校验请求,这里的数据库一致性校验请求是指对多个目标数据库中的数据进行一致性校验的请求;然后根据数据库一致性校验请求生成数据统计文件;之后将数据统计文件发送到各目标数据库所在的机器上,以使各目标数据库所在的机器根据数据统计文件进行数据统计;最后根据各目标数据库所在的机器返回的数据统计结果,对各目标数据库进行一致性校验,得到数据库一致性校验结果。本申请实施例的数据库校验方法能够实现对多个数据库的数据一致性进行自动化校验,校验效率和灵活性更高,校验结果能够帮助数据库管理人员或业务人员尽快发现不一致的数据并及时解决,从而降低了对实际业务的影响,保证了数据库的高可用性和高安全性。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
本申请实施例的一种数据库校验方法,由校验服务器执行,如图1所示,提供了本申请实施例中一种数据库校验方法的流程示意图,所述方法至少包括如下的步骤S110至步骤S140:
步骤S110,接收数据库一致性校验请求,其中所述数据库一致性校验请求是指对多个目标数据库中的数据进行一致性校验的请求。
本申请实施例的数据库校验方法可以由单独部署的校验服务器来执行,即利用独立于数据库服务器以外的服务器来统一执行数据库校验操作,相比于直接在数据库服务器上进行数据一致性校验的方式来说,本申请实施例的数据库校验方法对于数据库服务器的入侵程度更低,占用的数据库服务器的资源也更少,进而可以降低对实际业务造成的影响。
在进行数据库校验时,先接收数据库一致性校验请求,这里的数据库一致性校验请求是指对多个目标数据库中的数据进行一致性校验的请求,具体可以是针对主备数据库之间的数据一致性校验请求。
上述数据库一致性校验请求可以由用户主动触发,当然也根据事先设定好的校验频率自动触发,具体如何触发,本领域技术人员可根据实际需求灵活设置,在此不作具体限定。
步骤S120,根据所述数据库一致性校验请求生成数据统计文件。
考虑到实际业务场景下,主备数据库之间出现数据不一致的情况较少,如果仅采用物理层面的数据库校验方法对所有数据库表中的数据进行校验,需要占用的IO负载将会非常高,耗时也较长,当数据库服务器处在业务高峰期时,将不能够高频率地执行物理层面的一致性校验操作,进而导致数据库一致性校验效率不高,实时性较差。
基于此,本申请实施例在接收到数据库一致性校验请求后,可以根据请求中携带的具体校验参数生成数据统计文件,这里的数据统计文件可以看作是事先定义好的业务逻辑层面的校验策略,具体可以包括数据统计的维度、统计的方式等等,例如可以统计每个数据表中的数据条数、数据大小以及业务状态等。当然具体如何配置数据统计文件中包含的信息,本领域技术人员可以根据实际的业务需求灵活调整,在此不作具体限定。
步骤S130,将所述数据统计文件发送到各目标数据库所在的机器上,以使各目标数据库所在的机器根据所述数据统计文件进行数据统计。
在生成数据统计文件后,将该数据统计文件分别发送到各个目标数据库所在的机器上,使得各个目标数据库能够根据数据统计文件中包含的统计维度和统计方式等对数据进行统计,并得到数据统计结果。
步骤S140,根据各目标数据库所在的机器返回的数据统计结果,对各目标数据库进行一致性校验,得到数据库一致性校验结果。
根据各个目标数据库所在的机器返回的数据统计结果,对各个数据库的数据进行一致性校验,进而可以得到数据库一致性校验结果。对于上述基于数据统计文件得到的各个目标数据库的数据统计结果,只要这些数据统计结果符合业务逻辑,就能够保证业务要求的一致性,相比于物理层面的校验方式,该过程执行效率更快,且对在线业务基本无影响。
本申请实施例的数据库校验方法能够实现对多个数据库的数据一致性进行自动化校验,校验效率和灵活性更高,校验结果能够帮助数据库管理人员或业务人员尽快发现不一致的数据并及时解决,从而降低了对实际业务的影响,保证了数据库的高可用性和高安全性。
在本申请的一个实施例中,所述接收数据库一致性校验请求包括:对所述数据库一致性校验请求进行验证;若验证通过,则执行根据所述数据库一致性校验请求生成数据统计文件的步骤;若验证未通过,则输出提示信息。
为了保证后续数据库校验过程的顺利进行,本申请实施例在接收到用户触发的数据库一致性校验请求后,还可以对数据库一致性校验请求中的参数进行合法性验证,例如可以验证请求中携带的参数的格式是否符合预先设定好的参数格式,参数类型是否符合业务要求等等。如果合法性验证通过,则可以执行后续的步骤,如果校验未通过,则可以通过输出提示信息的方式提醒用户重新发起数据库一致性校验请求。
在本申请的一个实施例中,所述根据所述数据库一致性校验请求生成数据统计文件包括:根据所述数据库一致性校验请求确定目标数据库的IP地址和校验范围;根据所述目标数据库的IP地址和所述校验范围,生成所述数据统计文件。
在分布式数据库场景下,数据库的数量很多,如果对全部的数据库进行一致性校验操作显然不能满足实际的业务需求,灵活性较差,且耗时也较高,因此本申请实施例在执行数据库校验操作时,可以先根据数据库一致性校验请求中携带的IP地址确定对哪些数据库执行一致性校验的操作,即确定出目标数据库的IP地址列表。
此外,由于一些业务场景下的业务通常是不中断进行的,例如交易业务,每时每刻都可能会产生交易数据,因此数据库服务器也是处于实时运行中的,导致数据库产生的数据量是十分庞大的,如果对全部的数据进行一致性校验,同样会存在耗时高、效率低等问题。因此本申请实施例可以根据数据库一致性校验请求中携带的时间信息如交易创建时间、交易批次号等确定对哪个时间范围内的数据执行一致性校验操作,即确定出校验范围,进而可以通过多次分段的校验操作来提高数据库一致性校验的效率以及校验的实时性。
基于上述确定出的目标数据库的IP地址和校验范围,可以生成相应的数据统计文件,即通过该数据统计文件可以确定对哪个时间范围的哪些数据库中的数据执行何种统计操作。
在本申请的一个实施例中,所述数据库一致性校验请求中包括数据中心标识,所述根据所述数据库一致性校验请求确定目标数据库的IP地址包括:根据所述数据中心标识确定目标数据中心及所述目标数据中心包含的至少一套分库,其中所述分库基于数据库之间的主备关系构建得到;获取各分库中包含的全部数据库的IP地址,作为各分库的目标数据库的IP地址。
如前所述,在分布式数据库场景下,数据中心主要采用主备模式进行数据库的部署,一个主数据库和多个备用数据库可以构成一套分库,一套分库中的主备数据库之间的数据应该是保持同步和一致的,因此本申请实施例的一致性校验可以看作是在分库维度执行的操作。
一个数据中心中通常会部署有多套分库,进而保障整个业务系统的高可用。基于此,本申请实施例在触发数据库一致性校验请求时,可以携带有数据中心标识,进而可以实现对一个数据中心下的所有数据库进行一致性校验。具体地,可以根据数据中心标识确定目标数据中心以及该目标数据中心中包含的分库,然后进一步获取每套分库中包含的全部数据库的IP地址,分别作为每套分库的目标数据库的IP地址,以便于后续分别对每套分库中的数据库进行一致性校验。
在本申请的一个实施例中,各分库中均包括主数据库和备用数据库,所述获取各分库中包含的全部数据库的IP地址,作为各分库的目标数据库的IP地址包括:获取各分库中的主数据库的IP地址;根据各分库中的主数据库的IP地址,获取各分库中的备用数据库的IP地址;将各分库中的主数据库的IP地址和备用数据库的IP地址作为各分库的目标数据库的IP地址。
在获取每个分库中的所有数据库的IP地址时,可以先确定这些分库的主数据库的IP地址,然后再根据主数据库的IP地址去获取每个分库中与主数据库的IP地址对应的备用数据库的IP地址,进而可以将每个分库中的主数据库的IP地址和备用数据库的IP地址作为该分库的目标数据库的IP地址。
当然,除了上述获取方式,本领域技术人员也可以直接从预设配置信息资源库中统一获取该数据中心下的各个分库中的所有数据库的IP地址,具体如何获取IP地址,本领域技术人员可根据实际需求灵活设置,在此不作具体限定。
在本申请的一个实施例中,所述数据库一致性校验请求中包括至少一个数据库的IP地址,所述根据所述数据库一致性校验请求确定目标数据库的IP地址包括:根据各数据库的IP地址,确定各数据库所在的分库;获取各分库中的全部数据库的IP地址,作为各分库的目标数据库的IP地址。
除了可以针对一个数据中心下的所有数据库进行一致性校验,用户也可以仅针对某一个或几个具体的数据库执行一致性校验操作,满足实际业务场景的不同校验需求。例如,可以在数据库一致性校验请求中携带有一个或多个数据库的IP地址,由于数据库一致性校验是在分库的维度进行的,因此可以先根据每个数据库的IP地址确定每个数据库所在的分库,然后再去获取每个分库中除该数据库以外的其他数据库的IP地址,或者也可以直接获取全部数据库的IP地址,作为每个分库的目标数据库的IP地址。
举例说明,假设数据库一致性校验请求中携带有数据库A1的IP地址,根据数据库A1的IP地址可以确定数据库A1位于分库01中,那么可以进一步去获取分库01中的其它数据库的IP地址,例如包括数据库A2、数据库A3和数据库A4,之后将数据库A1的IP地址、数据库A2的IP地址、数据库A3的IP地址以及数据库A4的IP地址作为该分库01的目标数据库的IP地址,以便于后续对数据库A1、数据库A2、数据库A3和数据库A4中的数据进行一致性校验。
在本申请的一个实施例中,所述将所述数据统计文件发送到各目标数据库所在的机器上,以使各目标数据库所在的机器根据所述数据统计文件进行数据统计包括:通过SCP远程命令,将所述数据统计文件发送到处于同一分库下的目标数据库所在的机器上,以使同一分库下的目标数据库所在的机器分别根据所述数据统计文件进行数据统计;接收同一分库下的目标数据库所在的机器返回的数据统计结果。
本申请实施例在将数据统计文件发送到目标数据库所在的机器上时,可以利用SCP(Secure copy)远程命令来实现,SCP远程命令是用于进行远程拷贝文件的命令,能够实现本地和远程之间的数据传输。当然,本领域技术人员也可以根据实际情况采用其他通信命令进行数据传输,在此不一一列举。
本申请实施例通过SCP远程命令,可以将数据统计文件发送到处于同一分库下的所有目标数据库所在的机器上,使得同一分库中的目标数据库所在的机器能够分别根据数据统计文件进行数据统计,进而可以得到同一分库下的所有目标数据库的数据统计结果。
针对上述各个实施例,需要说明的是,实际应用场景下,对于不同的数据中心或者不同的分库,用户的校验需求可能不同。例如一些分库可以仅校验最近2天的数据,而另一些分库则需校验最近3天的数据等等,这就导致针对不同的分库,生成的数据统计文件可能有多个,例如可能包括数据统计文件x1、x2、x3等,在下发数据统计文件时,可以按照分库的维度分别下发,例如将数据统计文件x1下发给分库01中的所有数据库,将将数据统计文件x2下发给分库02中的所有数据库,将数据统计文件x3下发给分库03中的所有数据库等等,以使各分库中的数据库分别根据接收到的数据统计文件执行相应的数据统计操作。
在本申请的一个实施例中,所述根据各目标数据库所在的机器返回的数据统计结果,对各目标数据库进行一致性校验,得到数据库一致性校验结果包括:将同一分库下的目标数据库返回的数据统计结果进行相互比对;若比对一致,则得到校验通过的数据库一致性校验结果;若比对不一致,则得到校验未通过的数据库一致性校验结果。
在得到各个目标数据库所在的机器返回的数据统计结果后,可以在分库的维度,对同一分库下的各个目标数据库返回的数据统计结果进行相互比对,如果比对一致,则说明一致性校验通过,如果比对不一致,则说明一致性校验未通过,需要进一步确定异常数据,以避免影响业务处理的准确性。
为了便于对本申请实施例的理解,如下表1所示,提供了一种数据统计结果的示例,从表1中可以看出,在数据表总条数和数据表大小两个统计维度,主数据库A1和备用数据库A2、A3及A4中各数据表的统计结果均相同,因此可以认为分库01中的所有数据库的一致性校验结果为校验通过。
表1
在本申请的一个实施例中,在将所述数据统计文件发送到各目标数据库所在的机器上之后,所述方法还包括:接收各目标数据库返回的过程日志文件;
将所述过程日志文件和所述数据库一致性校验结果存储到预设校验数据库。
为了便于后续对每个目标数据库的数据统计过程进行管理以及异常排查,本申请实施例在将数据统计文件发送到各个目标数据库所在的机器上之后,还可以获取各个目标数据库返回的过程日志文件,这里的过程日志文件可以理解为是记录了每个目标数据库根据接收到的数据统计文件执行统计操作的整个过程的文件。
将各个目标数据库返回的过程日志文件和数据库一致性校验结果一起存储到预设校验数据库中,作为后续查阅的基础。此外,为了节省存储空间,过程日志文件和数据库一致性校验结果的保留时间可以根据实际情况灵活设置,例如可以设置保留时间为5天,5天后即对5天前产生的过程日志文件和数据库一致性校验结果进行清理,以通过及时清理过期文件节省存储空间。
在本申请的一个实施例中,在根据各目标数据库所在的机器返回的数据统计结果,对各目标数据库进行一致性校验,得到数据库一致性校验结果之后,所述方法还包括:若所述数据库一致性校验结果为校验未通过,则获取各目标数据库的过程日志文件;根据各目标数据库的过程日志文件确定异常的目标数据库及异常数据。
当得到的数据库一致性校验结果为校验未通过的结果时,说明分库中的某一个或者几个数据库之间的数据统计结果不完全一致,一方面可能是数据同步出现了问题,另一方面也可能是数据统计出现了问题。
为了及时定位问题所在,可以获取该分库下的各个目标数据库的过程日志文件,通过过程日志文件可以还原出每个目标数据库的数据统计过程,进而可以快速确定出异常出现的原因。当然,如果通过过程日志文件发现每个目标数据库的数据统计过程都没有问题,则可以认为是数据同步出现了问题,可以对异常的目标数据库进行同步关系等检查操作。
例如,若上述主数据库A1中的数据表a12、备用数据库A3中的数据表a32以及备用数据库A4中的数据表a42统计得到数据表总条数均为2000条,而备用数据库A2中的数据表a22统计得到数据表总条数为1900条,那么可以确定备用数据库A2是异常的目标数据库,因此可以进一步检查备用数据库A2是在同步阶段还是在统计阶段出现了问题,以便于对备用数据库A2及时进行故障处理。
在本申请的一个实施例中,所述方法还包括:提供前端页面;所述接收数据库一致性校验请求包括:通过所述前端页面接收所述数据库一致性校验请求。
为了实现数据库校验过程的可视化,本申请实施例还提供了前端页面,在前端页面上,用户可以通过输入或选择校验参数的方式来触发数据库一致性校验请求。
除此之外,还可以将数据库一致性校验结果在前端页面上进行展示,具体可以包括数据库一致性校验通过的结果或者数据库一致性校验未通过的结果,对于数据库一致性校验未通过的结果,还可以具体展示校验未通过的目标数据库及具体不一致的统计内容,以便于用户能够直观、及时地查看到数据库的一致性校验结果,提高了用户的使用体验。
为了便于对本申请各实施例的理解,如图2所示,提供了本申请实施例中一种数据库校验流程示意图。首先,接收数据库一致性校验请求,然后对数据库一致性校验请求中的校验参数进行合法性验证,如果合法性验证未通过,则输出提示信息,如果合法性验证通过,则确定数据库一致性校验请求中携带的校验参数是IDC标识还是IP地址,如果是IDC标识,则需要根据IDC标识确定该数据中心下的所有主数据库的IP地址,然后根据主数据库的IP地址,获取每个主数据库所在的分库中的所有备用数据库的IP地址,并将每个分库中的主数据库的IP地址和所有备用数据库的IP地址作为各个分库的目标数据库的IP地址。如果数据库一致性校验请求中携带的校验参数是IP地址,则直接获取该数据库所在的分库中的其他所有数据库的IP地址,并将该数据库的IP地址和其他所有数据库的IP地址作为该分库的目标数据库的IP地址。
在获取到各个目标数据库的IP地址后,需要结合数据库一致性校验请求中携带的校验范围生成数据统计文件,然后通过SCP远程命令将数据统计文件下发到各个目标数据库所在的机器上,使得各个目标数据库所在的机器能够根据相应的数据统计文件进行数据统计,并得到数据统计结果以及过程日志文件。
根据各个目标数据库所在的机器返回的数据统计结果,在分库的维度进行相互核对,输出数据库一致性校验结果,将数据库一致性校验结果和过程日志文件存储到预设校验数据库中,以便于后续查看。
本申请的数据库校验流程基于业务要求的对比逻辑,实现了对多个数据库的数据一致性的自动校验,并将一致性校验结果展示给用户,在满足基本校验功能的同时提高了用户使用体验。此外,本申请可以支持对要检查的目标数据库及校验范围的设定,与数据库的数量多少无关,操作灵活性高,可以对多个数据中心内的多套分库并发进行校验,校验效率更高。
本申请实施例还提供了一种数据库校验装置300,应用于校验服务器,如图所示,提供了本申请实施例中一种数据库校验装置的结构示意图,所述装置300包括:第一接收单元310、生成单元320、发送单元330及校验单元340,其中:第一接收单元310、生成单元320、发送单元330和校验单元340,其中:
第一接收单元310,用于接收数据库一致性校验请求,其中所述数据库一致性校验请求是指对多个目标数据库中的数据进行一致性校验的请求;
生成单元320,用于根据所述数据库一致性校验请求生成数据统计文件;
发送单元330,用于将所述数据统计文件发送到各目标数据库所在的机器上,以使各目标数据库所在的机器根据所述数据统计文件进行数据统计;
校验单元340,用于根据各目标数据库所在的机器返回的数据统计结果,对各目标数据库进行一致性校验,得到数据库一致性校验结果。
在本申请的一个实施例中,所述第一接收单元310具体用于:对所述数据库一致性校验请求进行验证;若验证通过,则执行根据所述数据库一致性校验请求生成数据统计文件的步骤;若验证未通过,则输出提示信息。
在本申请的一个实施例中,所述生成单元320具体用于:根据所述数据库一致性校验请求确定目标数据库的IP地址和校验范围;根据所述目标数据库的IP地址和所述校验范围,生成所述数据统计文件。
在本申请的一个实施例中,所述生成单元320具体用于:根据所述数据中心标识确定目标数据中心及所述目标数据中心包含的至少一套分库,其中所述分库基于数据库之间的主备关系构建得到;获取各分库中包含的全部数据库的IP地址,作为各分库的目标数据库的IP地址。
在本申请的一个实施例中,各分库中均包括主数据库和备用数据库,所述生成单元320具体用于:获取各分库中的主数据库的IP地址;根据各分库中的主数据库的IP地址,获取各分库中的备用数据库的IP地址;将各分库中的主数据库的IP地址和备用数据库的IP地址作为各分库的目标数据库的IP地址。
在本申请的一个实施例中,所述数据库一致性校验请求中包括至少一个数据库的IP地址,所述生成单元320具体用于:根据各数据库的IP地址,确定各数据库所在的分库;获取各分库中的全部数据库的IP地址,作为各分库的目标数据库的IP地址。
在本申请的一个实施例中,所述发送单元330具体用于:通过SCP远程命令,将所述数据统计文件发送到处于同一分库下的目标数据库所在的机器上,以使同一分库下的目标数据库所在的机器分别根据所述数据统计文件进行数据统计;接收同一分库下的目标数据库所在的机器返回的数据统计结果。
在本申请的一个实施例中,所述校验单元340具体用于:将同一分库下的目标数据库返回的数据统计结果进行相互比对;若比对一致,则得到校验通过的数据库一致性校验结果;若比对不一致,则得到校验未通过的数据库一致性校验结果。
在本申请的一个实施例中,所述装置还包括:第二接收单元,用于接收各目标数据库返回的过程日志文件;存储单元,用于将所述过程日志文件和所述数据库一致性校验结果存储到预设校验数据库中。
在本申请的一个实施例中,所述装置还包括:获取单元,用于若所述数据库一致性校验结果为校验未通过,则获取各目标数据库的过程日志文件;确定单元,用于根据各目标数据库的过程日志文件确定异常的目标数据库及异常数据。
在本申请的一个实施例中,所述装置还包括:提供单元,用于提供前端页面;所述第一接收单元310具体用于:通过所述前端页面接收所述数据库一致性校验请求。
能够理解,上述数据库校验装置,能够实现前述实施例中提供的由校验服务器执行的数据库的数据校验方法方法的各个步骤,关于数据库的数据校验方法方法的相关阐释均适用于数据库校验装置,此处不再赘述。
图4是本申请的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据库校验装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
接收数据库一致性校验请求,其中所述数据库一致性校验请求是指对多个目标数据库中的数据进行一致性校验的请求;
根据所述数据库一致性校验请求生成数据统计文件;
将所述数据统计文件发送到各目标数据库所在的机器上,以使各目标数据库所在的机器根据所述数据统计文件进行数据统计;
根据各目标数据库所在的机器返回的数据统计结果,对各目标数据库进行一致性校验,得到数据库一致性校验结果。
上述如本申请图1所示实施例揭示的数据库校验装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1中数据库校验装置执行的方法,并实现数据库校验装置在图1所示实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中数据库校验装置执行的方法,并具体用于执行:
接收数据库一致性校验请求,其中所述数据库一致性校验请求是指对多个目标数据库中的数据进行一致性校验的请求;
根据所述数据库一致性校验请求生成数据统计文件;
将所述数据统计文件发送到各目标数据库所在的机器上,以使各目标数据库所在的机器根据所述数据统计文件进行数据统计;
根据各目标数据库所在的机器返回的数据统计结果,对各目标数据库进行一致性校验,得到数据库一致性校验结果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。