数据一致性检查方法、装置及系统的制作方法

文档序号:6400518阅读:220来源:国知局
专利名称:数据一致性检查方法、装置及系统的制作方法
技术领域
本发明实施例涉及数据库技术,尤其涉及一种数据一致性检查方法、装置及系统。
背景技术
数据库系统通常采用为主机设置一台或多台备机来实现高可用性。主备间通过网络复制数据,保持双机的数据一致。然而,数据库的数据量通常很大,由于网络、硬件和软件平台等复杂环境的不确定性,以及数据库系统本身的缺陷,可能会导致备机从主机复制过来的数据出现与主机数据不一致,最终失去高可用性。在对数据一致性和可靠性要求很高的业务环境下,如电信系统、银行系统等,或者开发测试阶段,需要一些手段来检查双机的数据是否严格一致,以确保切换后应用业务的持续性,或验证数据库系统自身的正确性。现有技术中检查双机数据一致性的方法一般是主机必须先停止接受业务的写请求,以便让数据库处于静止状态。待备机完全复制主机的数据后,开始按二进制方式比较双方的数据文件,检查出不一致的情况。但是在现有技术中,最大的问题是需要停机检查,这在需要7X24服务的环境下是不可接受的。

发明内容
本发明提供一种数据一致性检查方法、装置及系统,以实现在线检测数据库系统中主备机间的数据一致性,提高检测的性能和准确性。第一方面,本发明实施例提供一种数据一致性检查方法,包括:主机采用消息摘要算法为自身的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息。主机将各个存储单元的所述摘要信息发送给备机,以使备机根据所述各个存储单元的的摘要信息进行数据一致性检查。在第一方面的第一种可能的实现方式中,主机采用消息摘要算法为自身的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息,包括:所述主机采用消息摘要算法为自身的所有存储单元分别生成与每个存储单元中数据对应的摘要信息。根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述主机将各个存储单元的所述摘要信息发送给备机之后,所述方法还包括:所述主机接受数据写请求,根据所述数据写请求更改至少一个存储单元中的数据,并采用消息摘要算法重新为数据发生更改的存储单元生成更新的摘要信息;所述主机将所述各个存储单元中,数据发生更改的存储单元的更新的摘要信息发送给备机,以使备机根据更新的摘要信息对更改的存储单元进行数据一致性检查。根据第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述主机采用消息摘要算法为自身的所有存储单元分别生成与每个存储单元中数据对应的摘要信息,包括:所述主机顺序遍历自身所有的存储单元,通过消息摘要算法依次对每个存储单元中数据进行运算,得到各个存储单元对应的摘要信息,并顺序存储。所述主机将各个存储单元的所述摘要信息发送给备机,包括:所述主机将所述顺序存储的摘要信息发送给所述备机。根据第一方面,在第四种可能的实现方式中,在所述主机采用消息摘要算法为自身的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息之后,还包括:所述主机将各个存储单元的摘要信息记录至检查日志,其中,所述检查日志为记录所述摘要信息的日志。相应地,所述主机将各个存储单元的所述摘要信息发送给备机,以使备机根据所述各个存储单元的的摘要信息进行数据一致性检查,包括所述主机将所述检查日志发送给所述备机,以使所述备机根据所述检查日志进行数据一致性检查。第二方面,本发明实施例提供一种数据一致性检查方法,包括:备机接收主机发送的至少一个第一摘要信息,其中每个所述第一摘要信息与所述主机的一个存储单元对应,为该存储单元内的二进制数据采用消息摘要算法计算得到的信息;所述备机对自身与所述主机对应的存储单元内的二进制数据分别采用消息摘要算法计算得到所述存储单元的第二摘要信息;所述备机将第一摘要信息和第二摘要信息进行比对,以进行存储单元内数据的一致性检查。在第二方面的第一种可能的实现方式中,所述备机接收主机发送的至少一个第一摘要信息,包括:所述备机接收所述主机发送的检查日志,所述检查日志为包含至少一个第
一摘要信息。根据第二方面,在第二种可能的实现方式中,备机接收主机发送的至少一个第一摘要信息包括:所述备机接收主机发送的与主机内全部存储单元分别对应的各第一摘要信
肩、O根据第二方面的第二种实现方式,在第三中可能的实现方式中,还包括:所述备机接收所述主机发送的数据更新日志,并根据所述数据更新日志更改所述备机的至少一个存储单元内的数据,其中所述数据更新日志,为记录存储单元内的数据变化的日志。所述备机接收所述主机发送的更新的第一摘要信息,并对所述备机中数据发生更改的存储单元内的二进制数据分别采用消息摘要算法计算得到第二摘要信息;其中,所述更新的第一摘要信息,为所述主机中,与所述数据发生更改的存储单元相对应的各个存储单元更新后的第一摘要信息。所述备机将更新的第一摘要信息和第二摘要信息进行比对,以进行更改的存储单元内数据的一致性检查。第三方面,本发明实施例提供一种数据一致性检查装置,包括生成模块和发送模块。其中,生成模块,用于采用消息摘要算法为的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息;发送模块,用于将所述主机的各个存储单元的所述摘要信息发送给备机,以使备机根据所述各个存储单元的摘要信息进行数据一致性检查。在第三方面的第一种可能的实现方式中,生成模块,具体用于采用消息摘要算法为所述主机的所有存储单元分别生成与每个存储单元中数据对应的摘要信息。根据第三方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:处理写请求模块和更新信息发送模块。其中,处理写请求模块,用于在将所述主机的各个存储单元的所述摘要信息发送给所述备机之后,接受数据写请求,根据所述数据写请求更改所述主机的至少一个存储单元中的数据,并采用消息摘要算法重新为数据发生更改的存储单元生成更新的摘要信息。更新信息发送模块,用于将所述数据发生更改的存储单元的更新的摘要信息发送给所述备机,以使所述备机根据更新的摘要信息对所述数据发生更改的存储单元进行数据一致性检查。根据第三方面的第一种可能的实现方式,在第三种可能的实现方式中,生成模块,具体用于顺序遍历所述主机所有的存储单元,通过消息摘要算法依次对每个存储单元中数据进行运算,得到各个存储单元对应的摘要信息,并顺序存储。发送模块,具体用于将所述顺序存储的摘要信息发送给所述备机。根据第三方面,在第四种可能的实现方式中,还包括:日志生成模块,用于在所述生成模块采用消息摘要算法为所述主机的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息之后,将所述主机的各个存储单元的摘要信息记录至检查日志,其中,所述检查日志为记录所述摘要信息的日志。所述发送模块,具体用于将所述检查日志发送给所述备机,以使所述备机根据所述检查日志进行数据一致性检查。第四方面,本发明实施例提供一种数据一致性检查装置,包括接收模块、第二摘要生成模块和检查模块。其中,接收模块,用于接收主机发送的至少一个第一摘要信息,其中每个所述第一摘要信息与所述主机的一个存储单元,为该存储单元内的二进制数据采用消息摘要算法计算得到的信息;第二摘要生成模块,用于将所述备机中与所述主机对应的各个存储单元内的二进制数据分别采用消息摘要算法计算得到所述对应的各个存储单元的第二摘要信息;检查模块,用于将所述第一摘要信息和所述第二摘要信息进行比对,以进行数据的一致性检查。在第四方面的第一种可能的实现方式中,接收模块,具体用于接收所述主机发送的检查日志,所述检查日志包含至少一个第一摘要信息。根据第四方面,在第二种可能的实现方式中,所述接收模块,具体用于接收所述主机发送的与所述主机内所有存储单元分别对应的各第一摘要信息。根据第四方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:更新模块、更新信息计算模块和更新信息比对模块。其中,更新模块,用于接收所述主机发送的数据更新日志,并根据所述数据更新日志更改所述备机的至少一个存储单元内的数据,其中所述数据更新日志,为记录存储单元内的数据变化的日志。更新信息计算模块,用于接收所述主机发送的更新的第一摘要信息,并对所述备机中数据发生更改的存储单元内的二进制数据分别采用消息摘要算法计算得到第二摘要信息;其中,所述更新的第一摘要信息,为所述主机中,与所述数据发生更改的存储单元相对应的各个存储单元更新后的第一摘要信息。更新信息比对模块,用于将所述更新的第一摘要信息和所述第二摘要信息进行比对,以进行所述主机和所述备机之间数据的一致性检查。第五方面,本发明实施例提供一种数据一致性检查系统,包括主机和备机,所述主机中配置包括上述第三方面任一所述的数据一致性检查装置,所述备机中配置有包括上述任一第四方面任一所述的数据一致性检查装置。本发明实施例提供的数据一致性检查方法、装置及系统,通过所述第一摘要信息与备机中存储单元数据所对应的第二摘要信息进行比对,来进行存储单元内数据的一致性检查,可以在主机运行过程中进行摘要传输检测,以进行主备机之间的数据一致性检查,不需要中断业务,从而提升了数据库系统的可靠性、一致性,以及提高系统开发测试的效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一提供的数据一致性检查方法的流程图;图2为本发明实施例二提供的数据一致性检查方法的流程图;图3为本发明实施例三提供的数据一致性检查方法的流程图;图4为本发明实施例四提供的数据一致性检查方法的流程图;图5为本发明实施例五提供的数据一致性检查装置的结构示意图;图6为本发明实施例六提供的数据一致性检查装置的结构示意图;图7为本发明实施例七提供的数据一致性检查装置的结构示意图;图8为本发明数据一致性检查系统的主机结构示意图;图9为本发明数据一致性检查系统的备机结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一图1为本发明实施例一提供的数据一致性检查方法的流程图,本实施例可适用于对数据一致性和可靠性很高的情况下,该方法由数据一致性检查装置执行,该装置通常以硬件和/或软件的方式来实现,集成在主机中。本实施例的方法可以包括如下步骤:步骤10、主机采用消息摘要算法为自身的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息。其中,主机的数据库作为数据产生源的部分,备机的数据库是作为备份的部分,存储单元是指数据库中的最小存储单位,例如页,也可以选择其他存储单位,所述第一摘要信息是通过对主机的存储单元中数据的二进制进行消息摘要算法生成,用于比较一致性。消息摘要算法可针对任意长的消息生成固定长的摘要,相同的消息一定生成相同的摘要,不同的消息可能产生碰撞,这取决于算法和摘要长度等,该算法可以优选消息摘要算法第五版(Message Digest5,简称 MD5)、安全哈希算法(Secure Hash Algorithm,简称 SHA),循环冗余校验码(Cyclic Redundancy Check,简称CRC)等算法,也可以选用其他消息摘要算法。当要对数据库中的主机和备机进行一致性检查时,例如用户需要检查数据库中某个数据、某表格或某些条件下的数据时,主机首先可以为用户所要检查的数据生成对应的摘要信息。步骤20、主机将各个存储单元的所述摘要信息发送给备机,以使备机根据所述各个存储单元的摘要信息进行数据一致性检查。其中,主机将所述摘要信息发送给备机,备机可以将所述摘要信息和备机中采用和主机同样的消息摘要算法对各个存储单元的数据分别生成对应的摘要信息进行比较,如果摘要信息一致则说明备机和主机中的数据是一致的,而不是对比存储单元的数据。本方案,通过主机发送给备机的所述摘要信息以使备机根据所述摘要信息进行一致性检查,使得主备机之间的传输量减小,且比对的工作量小,能够在主机运行过程中实时来执行,迅速完成信息传输和比对。所以,本实施例的技术方案能够有效解决需停机进行一致性检查的问题。从而可以避免由于网络、硬件和软件等复杂环境下导致备机复制过来的数据不一致,从而有效提升数据库系统的可靠性、一致性具体地,在上述方案中,当用户需要对数据库中所有的数据进行一致性检查时,步骤10中,具体包括:所述主机采用消息摘要算法为自身的所有存储单元分别生成与每个存储单元中数据对应的摘要信息。上述方案中,进行数据一致性检查可以由用户或管理员发起,也可以数据库系统设定触发机制进行,例如在初始化时、发生检测触发条件时或按设定周期进行等。进一步地,当有主机有新数据写入时,步骤20之后可优选包括以下步骤:步骤201、所述主机接受数据写请求,根据所述数据写请求更改至少一个存储单元中的数据,并采用消息摘要算法重新为数据发生更改的存储单元生成更新的摘要信息。步骤202、所述主机将数据发生更改的存储单元的更新的摘要信息发送给备机,以使备机根据更新的摘要信息对更改的存储单元进行数据一致性检查。上述方案中,主机通过根据所述数据写请求更改存储单元的数据,并生成更新数据的摘要信息,可以使主机在在每次有新数据写入时,可以及时更新摘要信息,无需停止写请求,只需将更新摘要信息发送给备机进行一致性检查,无需每次均执行全部存储单元摘要信息的计算,从而实现在线数据一致性检查,满足7X24服务的环境。具体的,在上述方案基础上,所述主机采用消息摘要算法为自身的所有存储单元分别生成与每个存储单元中数据对应的摘要信息,可以优选地包括:所述主机顺序遍历自身所有的存储单元,通过消息摘要算法依次对每个存储单元中数据进行运算,得到各个存储单元对应的摘要信息,并顺序存储。相应的,所述主机将所述顺序存储的摘要信息发送给所述备机。例如,主机为所有存储单元可以是按照空间(space)、区(device)、页(page)的层次遍历所有页,对每个页中数据生成对应的摘要信息。将顺序存储的摘要信息发送给所述备机。上述方案中,将摘要信息顺序存储,与存储单元的顺序对应,能够使得备机也可顺序解析获取摘要信息,并与存储单元对应。当然,也可以不依赖于默认顺序来识别摘要信息与存储单元的对应性,例如,可以为每个摘要信息配置存储单元标识,以指示与哪个存储单元对应。实施例二图2为本发明实施例二提供的数据一致性检查方法的流程图,本实施例是在上述实施例基础上,根据在主机和备机之间往往会按照设定规律传输各种日志,本实施例中将摘要信息记录到日志中,依靠日志机制来进行一致性检测,能够减少对主备机的改变,方便推广实施。具体地,在所述主机采用消息摘要算法为自身的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息之后,还包括以下步骤:步骤203、所述主机将各个存储单元的摘要信息记录至检查日志,其中,所述检查日志为记录所述摘要信息的日志。步骤204、所述主机将所述检查日志发送给所述备机,以使所述备机根据所述检查日志进行数据一致性检查。其中,所述存储单元可以为页,也可为其他存储单位,本实施例优选页,包括页头和页数据。所述检查日志由日志头和检查信息组成。日志头包括日志类型和长度。检查信息包括页标识、所述摘要信息和其它信息组成。页标识唯一标识一个数据页,页中的数据可能包含一些主备间不必一致的临时的(内部机制所需的)信息,如页头中的锁标识、事务标识等,这些信息将不参与摘要的计算。本实施例的技术方案,通过主机将页中的数据生成所述摘要信息并记录至检查日志,并将所述检查日志发送给所述备机,简化了现有技术按二进制方式比较双方的数据文件,优化了数据的一致性检查方案。实施例三图3为本发明实施例三提供的数据一致性检查方法的流程图,本实施例可适用于对数据一致性和可靠性很高的情况下,备机对备机中的数据和主机进行一致性检查,该方法由数据一致性检查装置执行,该装置通常以硬件和/或软件的方式来实现,集成在备机中,本实施例的方法可以包括如下步骤::
步骤30、备机接收主机发送的至少一个第一摘要信息,其中每个所述第一摘要信息与所述主机的一个存储单元对应,为该存储单元内的二进制数据采用消息摘要算法计算得到的信息。其中,第一摘要信息可采用上述各实施例同样的过程生成。步骤40、所述备机对自身与所述主机对应的存储单元内的二进制数据分别采用消息摘要算法计算得到所述存储单元的第二摘要信息。其中,备机生成的第二摘要信息和接受到主机发送的第一摘要信息是采用同样的摘要算法,例如,主机采用CRC算法生成第一摘要信息,备机也采用CRC算法生成第二摘要信息。步骤50、所述备机将第一摘要信息和第二摘要信息进行比对,以进行存储单元内数据的一致性检查。具体地,备机将第一摘要信息和第二摘要信息进行比对,如果相同,那么备机该存储单元内的数据和主机该存储单元内的数据时一致的;如果不同,则执行数据不一致的操作,例如打印数据不一致的消息或置备机为不可用状态等操作。本实施例的技术方案,通过备机中的第二摘要信息和接收到的主机的第一摘要信息进行比对,提高了数据一致性检查的效率,有效提升备机数据的可靠性。在上述方案基础上,由于主备机之间经常采用日志机制,步骤30中所述备机接收主机发送的至少一个第一摘要信息,可优选包括:所述备机接收所述主机发送的检查日志,所述检查日志为包含至少一个第一摘要信息。
所述第一摘要信息与所述主机的一个存储单元对应,为该存储单元内的二进制数据采用消息摘要算法计算得到的信息。其中,所述备机接收所述主机发送的检查日志之前,还包括所述备机判断所述日志是否为检查日志,当所述日志为检查日志时,所述备机将所述检查日志中的第一摘要信息与第二摘要信息进行比对,以进行存储单元内数据的一致性检查。其中,所述检查日志为记录所述第一摘要信息的日志,判断所述日志是否为检查日志的方法可以根据日志中的日志头,因为日志头包含了日志类型。本方案中,所述第二摘要信息和上述实施例中的所述第一摘要信息采用相同的信息摘要算法生成。本方案中,如果第二摘要信息与第一摘要信息一致,则判断备机和主机的数据一致,如果不一致,则执行数据不一致的操作,例如打印该日志或置备机为不可用状态等操作。本实施例的技术方案,通过备机中的第二摘要信息和接收到的主机的第一摘要进行比对,提高了数据一致性检查的效率,有效提升备机数据的可靠性。并且,本实施例的技术方案,利用了日志来传输第一摘要信息,将第一摘要信息记录作为检查日志,依靠日志机制来进行一致性检测,能够减少对主备机的改变,方便推广实施。在上述实施例基础上,当需要对备机中所有数据进行一致性检查时,备机接收主机发送的至少一个第一摘要信息可优选包括:所述备机接收主机发送的与主机内全部存储单元分别对应的各第一摘要信息。上述实施例基础上,当主机有新数据写入之后,可以优选增加以下步骤:步骤3011、所述备机接收所述主机发送的数据更新日志,并根据所述数据更新日志更改所述备机的至少一个存储单元内的数据。其中所述数据更新日志,为记录存储单元内的数据变化的日志。步骤3012、所述备机接收所述主机发送的更新的第一摘要信息,并对所述备机中数据发生更改的存储单元内的二进制数据分别采用消息摘要算法计算得到第二摘要信息。需要说明的是,上述步骤中,更新的第一摘要信息具体是指,所述主机中,与所述数据发生更改的存储单元相对应的各个存储单元更新后的第一摘要信息。具体地,由于备机是用于备份主机中的数据,因此,主机中的每一个存储单元,在备机中都有一个与其相对应的存储单元,以备份主机中该存储单元的数据。即主机的各个存储单元与备机的各个存储单元之间是一一对应的,且主备机之中,相对应的两个存储单元存储同一数据。另外,更新的第一摘要信息是主机在将数据更新日志发送给备机之后,重新生成的。步骤3013、所述备机将更新的第一摘要信息和第二摘要信息进行比对,以对数据发生更改的存储单元内的数据进行一致性检查。本方案,备机通过更新日志更新存储单元内的数据,可以有效保持备机数据是实时和主机同步跟新的,从而更可靠的保持数据一致性。实施例四图4为本发明实施例四提供的数据一致性检查方法的流程图。本实施例是在上述实施例基础上,优选采用以下步骤:步骤401、触发数据一致性检查。
具体地,可由用户或管理员触发进行一致性检查,也可以定时触发。步骤402、主机按顺序为每个存储单元成生相应的第一摘要信息,将第一摘要信息记录至检查日志中。步骤403、主机是否收到新数据写入的数据写请求,如果是则进行步骤404;如果否,则进行步骤405。步骤404、主机收到新数据写入的数据写请求,主机处理数据写请求,同时生成数据更新日志,并为新数据生成更新的摘要信息,将所述更新的摘要信息记录至更新的检查日志。步骤405、主机将包含检查日志和数据更新日志在内的所有日志按时间顺序发送至备机。步骤406、备机接受主机发送的所有日志。步骤407、备机判断接受到的日志是否为检查日志,如果是,则进行步骤409、步骤410 ;如果不是则进行步骤408。步骤408、按日志的时间顺序依次处理日志。其中,日志在数据库系统中一般是记录数据变更过程的文件,备机首先根据接受到的主机发送的日志相应对备机中对应的存储单元的数据进行和主机同样的变更,即更新备机中存储单元的数据,使备机中的数据实时更新。步骤409、备机对自身的各个存储单元内的二进制数据分别采用消息摘要算法计算得到所述各个存储单元的第二摘要信息,步骤410、备机将第二摘要信息和检查日志中的第一摘要信息进行比对,判断第二摘要信息和第一摘要信息是否一致。如果一致,则进行下一日志操作,按照步骤407进行同样的操作;如果不一致,则进行步骤411。步骤411、进行数据不一致操作。本实施例通过数据更新日志和检查日志,实现了主机在不需要停止数据更新时的在线数据一致性检查,同时也适用离线时进行数据一致性检查。可以保证备机中的数据是实时更新的,保证一致性检查的高效性和可靠性。实施例五图5为本发明实施例五提供的数据一致性检查装置的结构示意图,该装置基于上述数据一致性检查方法实现,包括:生成模块51和发送模块52。生成模块51,用于采用消息摘要算法为主机的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息;发送模块52,用于将该主机各个存储单元的所述摘要信息发送给备机,以使备机根据所述各个存储单元的的摘要信息进行数据一致性检查。上述方案中,当需要对所有数据进行一致性检查时,生成模块51具体用于采用消息摘要算法为该主机的所有存储单元分别生成与每个存储单元中数据对应的摘要信息。上述方案基础上,当主机有新数据写入时可优选包括处理写请求模块53和更新信息发送模块54。具体地,处理写请求模块53具体用于在将所述主机的各个存储单元的摘要信息发送给备机之后,接受数据写请求,根据所述数据写请求更改所述主机的至少一个存储单元中的数据,并采用消息摘要算法重新为数据发生更改的存储单元生成更新的摘要信息。更新信息发送模块54,用于将所述数据发生更改的存储单元的更新的摘要信息发送给备机,以使备机根据更新的摘要信息对所述发生更改的存储单元进行数据一致性检查。在上述实施例基础上,主机可按时间顺序生成所述摘要信息。具体地,可通过生成模块51顺序遍历所述主机所有的存储单元,通过消息摘要算法依次对每个存储单元中数据进行运算,得到各个存储单元对应的摘要信息,并顺序存储。相应地,发送模块52具体用于将所述顺序存储的摘要信息发送给所述备机。本实施例中所提供的数据一致性检查装置,能够执行本发明实施例提供的数据一致性检查方法,通过发送所述摘要信息,以使备机根据摘要信息进行数据一致性检查,提高数据一致性检查效率。实施例六在上述实施例基础上,本实施例优选通过日志机制实现。图6为本发明实施例六提供的数据一致性检查装置的结构示意图,参考图6,该数据一致性检查装置包括:日志生成模块61和发送模块52。日志生成模块61,用于在所述生成模块51采用消息摘要算法为自身的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息之后,将所述主机的各个存储单元的摘要信息记录至检查日志。其中,所述检查日志为记录所述摘要信息的日志;相应地,发送模块52具体用于将所述检查日志发送给所述备机,以使所述备机根据所述检查日志进行数据一致性检查。本实施例中所提供的数据一致性检查装置,能够执行本发明实施例提供的数据一致性检查方法,通过发送所述检查日志,以使备机根据检查日志进行数据一致性检查,提高数据一致性检查效率。实施例七图7为本发明实施例七提供的数据一致性检查装置的结构示意图,参考图7,该数据一致性检查装置包括:接收模块71、第二摘要生成模块72和检查模块73。其中,接收模块71,用于接收主机发送的至少一个第一摘要信息,其中每个所述第一摘要信息与所述主机的一个存储单元,为该存储单元内的二进制数据采用消息摘要算法计算得到的息。第二摘要生成模块72,用于将所述备机中与所述主机对应的各个存储单元内的二进制数据分别采用消息摘要算法计算得到所述对应的各个存储单元的第二摘要信息。检查模块73,用于将所述第一摘要信息和所述第二摘要信息进行比对,以进行主机和备机之间数据的一致性检查。当备机采用日志机制时,可通过接收模块71接收所述主机发送的检查日志,所述检查日志包含至少一个第一摘要信息。通过接收模块71,所述备机接收主机发送的日志。在此基础上,还可优选包括判断模块74。其中,判断模块74,用于所述备机接收主机发送的日志之后,判断所述日志是否为检查日志。相应的,检查模块73,具体用于将所述检查日志中的第一摘要信息与第二摘要信息进行比对,以进行存储单元内数据的一致性检查。在上述方案基础上,当需要对所有数据进行一致性检查时,所述接收模块71具体用于接收主机发送的与主机内全部存储单元分别对应的各第一摘要信息。在上述方案基础上,还可优先包括更新模块730、更新信息计算模块731和更新信息比对模块732。更新模块730,用于接收所述主机发送的数据更新日志,并根据所述数据更新日志更改所述备机的至少一个存储单元内的数据。其中所述数据更新日志,为记录存储单元内的数据变化的日志;更新信息计算模块731,用于接收所述主机发送的更新的第一摘要信息,并对所述备机中数据发生更改的存储单元内的二进制数据分别采用消息摘要算法计算得到第二摘要信息;需要说明的是,上述步骤中,更新的第一摘要信息具体是指,所述主机中,与所述数据发生更改的存储单元相对应的各个存储单元更新后的第一摘要信息。具体地,由于备机是用于备份主机中的数据,因此,主机中的每一个存储单元,在备机中都有一个与其相对应的存储单元,以备份主机中该存储单元的数据。即主机的各个存储单元与备机的各个存储单元之间是一一对应的,且主备机之中,相对应的两个存储单元存储同一数据。另外,更新的第一摘要信息是主机在将数据更新日志发送给备机之后,重新生成的。更新信息比对模块732,用于将所述更新的第一摘要信息和所述第二摘要信息进行比对,以进行所述主机和所述备机之中数据发送更改的存储单元的数据一致性检查。本方案在主机有新数据写入时通过更新模块730、更新信息计算模块731和更新信息比对模块732可以对更改的存储单元的数据进行一致性检查。本实施例中所提供的数据一致性检查装置,能够执行本发明实施例提供的数据一致性检查方法,实现在线进行数据一致性检查,并提高数据一致性检查效率。本发明实施例还提供了一种数据一致性检查系统,包括主机和备机,所述主机配置有包括本发明实施例五和实施例六任一所提供的数据一致性检查装置,所述备机配置有包括本发明实施例七所提供的数据一致性检查装置。其具备相应的功能和有益效果,此处不再赘述。本发明实施例提供了一种主机,图8为本发明数据一致性检查系统的主机结构示意图,参考图8该主机包括通信接口 81、存储器82和至少一个处理器83。处理器83、存储器82和通信接口 81通过总线连接并完成相互间的通信。所述总线可以是工业标准结构总线(Industrial Standard Architecture,简称 ISA)、外设互联标准(PeripheralComponent Interconnect简称PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中,通信接口 81可以为网口、通用串行总线(Universal Serial BUS,简称USB)接口、射频单元、天线、无线保真(Wireless Fidelity,简称wi_fi)通信模块等可以实现数据收发功能的器件或单元。处理器83可能是一个中央处理器(Central Processing Unit,简称为 CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器82用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器82可能包含高速随机存取存储器(Random-Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。包括多个存储单元,用于存储数据,且部分存储单元中存储有可执行程序代码。在一个实施例中,处理器83通过读取存储器82中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:采用消息摘要算法为主机的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息;将各个存储单元的所述摘要信息发送给备机,以使备机根据所述各个存储单元的摘要信息进行数据一致性检查。其中,采用消息摘要算法为自身的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息,包括:采用消息摘要算法为自身的所有存储单元分别生成与每个存储单元中数据对应的摘要信息。进一步地,处理器83还通过执行存储器82中的可执行程序,以用于:在所述主机将各个存储单元的所述摘要信息发送给备机之后,接受数据写请求,根据所述数据写请求更改至少一个存储单元中的数据,并采用消息摘要算法重新为数据发生更改的存储单元生成更新的摘要信息;将数据发生更改的存储单元的更新的摘要信息通过通信接口 81发送给备机,以使备机根据更新的摘要信息对更改的存储单元进行数据一致性检查。其中,采用消息摘要算法为自身的所有存储单元分别生成与每个存储单元中数据对应的摘要信息,包括:顺序遍历主机所有的存储单元,通过消息摘要算法依次对每个存储单元中数据进行运算,得到各个存储单元对应的摘要信息,并顺序存储;将各个存储单元的所述摘要信息发送给备机,包括:将所述顺序存储的摘要信息通过通信接口 81发送给所述备机。在另一个实施例中,处理器83还通过执行存储器82中的可执行程序,以用于:在采用消息摘要算法为主机的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息之后,将各个存储单元的摘要信息记录至检查日志,其中,所述检查日志为记录所述摘要信息的日志。另外上述处理器83除了执行存储器中的可执行代码以实现上述功能之外,还可用于执行可执行代码以完成上述方法实施例中的其他步骤,在此不再赘述。本发明实施例提供了一种备机,图9为本发明数据一致性检查系统的备机结构示意图,参考图9该备机包括:通信接口 91、存储器92和至少一个处理器93。处理器93、存储器92和通信接口 91通过总线连接并完成相互间的通信。所述总线可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中,通信接口 91可以为网口、USB接口、射频单元、天线、w1-fi通信模块等可以实现数据收发功能的器件或单元。处理器93可能是一个CPU,或者是ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路。存储器92用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器92可能包含高速RAM存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。包括多个存储单元,用于存储数据,且部分存储单元中存储有可执行程序代码。在一个实施例中,处理器93通过读取存储器92中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:通过通信接口 91接收主机发送的至少一个第一摘要信息,其中每个所述第一摘要信息与所述主机的一个存储单元对应,为该存储单元内的二进制数据采用消息摘要算法计算得到的息;对备机中与所述主机对应的存储单元内的二进制数据分别采用消息摘要算法计算得到各个存储单元的第二摘要信息;将第一摘要信息和第二摘要信息进行比对,以进行主机和备机之间的数据一致性检查。另外上述处理器93除了执行存储器中的可执行代码以实现上述功能之外,还可用于执行可执行代码以完成上述方法实施例中的其他步骤,在此不再赘述。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种数据一致性检查方法,其特征在于,包括: 主机采用消息摘要算法为自身的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息; 主机将各个存储单元的所述摘要信息发送给备机,以使备机根据所述各个存储单元的摘要信息进行数据一致性检查。
2.根据权利要求1所述的数据一致性检查方法,其特征在于,主机采用消息摘要算法为自身的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息,包括: 所述主机采用消息摘要算法为自身的所有存储单元分别生成与每个存储单元中数据对应的摘要信息。
3.根据权利要求2所述的数据一致性检查方法,其特征在于,在所述主机将各个存储单元的所述摘要信息发送给备机之后,所述方法还包括: 所述主机接受数据写请求,根据所述数据写请求更改至少一个存储单元中的数据,并采用消息摘要算法重新为数据发生更改的存储单元生成更新的摘要信息; 所述主机将数据发生更改的存储单元的更新的摘要信息发送给备机,以使备机根据更新的摘要信息对更改的存储单元进行数据一致性检查。
4.根据权利要求2所述的数据一致性检查方法,其特征在于: 所述主机采用消息摘要算法为自身的所有存储单元分别生成与每个存储单元中数据对应的摘要信息,包括:所述主机顺序遍历自身所有的存储单元,通过消息摘要算法依次对每个存储单元中数据进行运算,得到各个存储单元对应的摘要信息,并顺序存储; 所述主机将各个存储单元的所述摘要信息发送给备机,包括:所述主机将所述顺序存储的摘要信息发送给所述备机。
5.根据权利要求1所述的数据一致性检查方法,其特征在于: 在所述主机采用消息摘要算法为自身的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息之后,还包括:所述主机将各个存储单元的摘要信息记录至检查日志,其中,所述检查日志为记录所述摘要信息的日志; 相应地,所述主机将各个存储单元的所述摘要信息发送给备机,以使备机根据所述各个存储单元的摘要信息进行数据一致性检查,包括: 所述主机将所述检查日志发送给所述备机,以使所述备机根据所述检查日志进行数据一致性检查。
6.一种数据一致性检查方法,其特征在于,包括: 备机接收主机发送的至少一个第一摘要信息,其中,每个所述第一摘要信息与所述主机的一个存储单元对应,为该存储单元内的二进制数据采用消息摘要算法计算得到的信息; 所述备机对自身与所述主机对应的存储单元内的二进制数据分别采用消息摘要算法计算得到所述存储单元的第二摘要信息; 所述备机将第一摘要信息和第二摘要信息进行比对,以进行所述备机与主机之间的数据一致性检查。
7.根据权利要求6所述的数据一致性检查方法,其特征在于,所述备机接收主机发送的至少一个第一摘要信息,包括:所述备机接收所述主机发送的检查日志,所述检查日志包含至少一个第一摘要信息。
8.根据权利要求6所述的数据一致性检查方法,其特征在于,备机接收主机发送的至少一个第一摘要信息包括: 所述备机接收所述主机发送的与所述主机内全部存储单元分别对应的各个第一摘要信息。
9.根据权利要求8所述的数据一致性检查方法,其特征在于,还包括: 所述备机接收所述主机发送的数据更新日志,并根据所述数据更新日志更改所述备机的至少一个存储单元内的数据,其中所述数据更新日志,为记录存储单元内的数据变化的曰志; 所述备机接收所述主机发送的更新的第一摘要信息,并对所述备机中数据发生更改的存储单元内的二进制数据分别采用消息摘要算法计算得到第二摘要信息;其中,所述更新的第一摘要信息,为所述主机中,与所述数据发生更改的存储单元相对应的各个存储单元更新后的第一摘要信息; 所述备机将所述更新的第一摘要信息和计算得到的所述第二摘要信息进行比对,以对所述数据发生更改的存储单元进行数据一致性检查。
10.一种数据一致性检查装置,其特征在于,包括: 生成模块,用于采用消息摘要算法为的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息; 发送模块,用于将所述主机的各个存储单元的所述摘要信息发送给备机,以使备机根据所述各个存储单元的摘要信息进行数据一致性检查。
11.根据权利要求10所述的数据一致性检查装置,其特征在于,所述生成模块,具体用于采用消息摘要算法为所述主机的所有存储单元分别生成与每个存储单元中数据对应的摘要信息。
12.根据权利要求11所述的数据一致性检查装置,其特征在于,还包括: 处理写请求模块,用于在将所述主机的各个存储单元的所述摘要信息发送给所述备机之后,接受数据写请求,根据所述数据写请求更改所述主机的至少一个存储单元中的数据,并采用消息摘要算法重新为数据发生更改的存储单元生成更新的摘要信息; 更新信息发送模块,用于将所述数据发生更改的存储单元的更新的摘要信息发送给所述备机,以使所述备机根据更新的摘要信息对所述数据发生更改的存储单元进行数据一致性检查。
13.根据权利要求11所述的数据一致性检查装置,其特征在于: 所述生成模块,具体用于顺序遍历所述主机所有的存储单元,通过消息摘要算法依次对每个存储单元中数据进行运算,得到各个存储单元对应的摘要信息,并顺序存储; 所述发送模块,具体用于将所述顺序存储的摘要信息发送给所述备机。
14.根据权利要求10所述的数据一致性检查装置,其特征在于; 还包括日志生成模块,用于在所述生成模块采用消息摘要算法为所述主机的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息之后,将所述主机的各个存储单元的摘要信息记录至检查日志,其中,所述检查日志为记录所述摘要信息的日志; 所述发送模块,具体用于将所述检查日志发送给所述备机,以使所述备机根据所述检查日志进行数据一致性检查。.
15.一种数据一致性检查装置,其特征在于,包括: 接收模块,用于接收主机发送的至少一个第一摘要信息,其中每个所述第一摘要信息与所述主机的一个存储单元,为该存储单元内的二进制数据采用消息摘要算法计算得到的信息; 第二摘要生成模块,用于将所述备机中与所述主机对应的各个存储单元内的二进制数据分别采用消息摘要算法计算得到所述对应的各个存储单元的第二摘要信息; 检查模块,用于将所述第一摘要信息和所述第二摘要信息进行比对,以进行数据的一致性检查。
16.根据权利要求15所述的数据一致性检查装置,其特征在于,所述接收模块,具体用于接收所述主机发送的检查日志,所述检查日志包含至少一个第一摘要信息。
17.根据权利 要求15所述的数据一致性检查装置,其特征在于:所述接收模块,具体用于接收所述主机发送的与所述主机内所有存储单元分别对应的各第一摘要信息。
18.根据权利要求17所述的数据一致性检查装置,其特征在于,还包括: 更新模块,用于接收所述主机发送的数据更新日志,并根据所述数据更新日志更改所述备机的至少一个存储单元内的数据,其中所述数据更新日志,为记录存储单元内的数据变化的日志; 更新信息计算模块,用于接收所述主机发送的更新的第一摘要信息,并对所述备机中数据发生更改的存储单元内的二进制数据分别采用消息摘要算法计算得到第二摘要信息;其中,所述更新的第一摘要信息,为所述主机中,与所述数据发生更改的存储单元相对应的各个存储单元更新后的第一摘要信息; 更新信息比对模块,用于将所述更新的第一摘要信息和所述第二摘要信息进行比对,以进行所述主机和所述备机之间数据的一致性检查。
19.一种数据一致性检查系统,包括主机和备机,其特征在于,所述主机配置有权利要求10-14任一所述的数据一致性检查装置,所述备机配置有权利要求15-18任一所述的数据一致性检查装置。
全文摘要
本发明提供了一种数据一致性检查方法、装置及系统。该方法包括主机采用消息摘要算法为自身的至少一个存储单元分别生成与每个存储单元中数据对应的摘要信息;主机将各个存储单元的所述摘要信息发送给备机,以使备机根据所述各个存储单元的摘要信息进行数据一致性检查。本发明可以高性能的进行数据一致性检查从而有效提升数据库系统的可靠性、一致性,以及提高系统开发测试的效率。
文档编号G06F17/30GK103164523SQ201310087918
公开日2013年6月19日 申请日期2013年3月19日 优先权日2013年3月19日
发明者何雄辉, 覃超立, 谢锐 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1