CN102982087A - 一种检测数据库数据一致性的方法、装置及数据库系统 - Google Patents

一种检测数据库数据一致性的方法、装置及数据库系统 Download PDF

Info

Publication number
CN102982087A
CN102982087A CN201210430758XA CN201210430758A CN102982087A CN 102982087 A CN102982087 A CN 102982087A CN 201210430758X A CN201210430758X A CN 201210430758XA CN 201210430758 A CN201210430758 A CN 201210430758A CN 102982087 A CN102982087 A CN 102982087A
Authority
CN
China
Prior art keywords
data
tables
database
new logo
standby 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.)
Granted
Application number
CN201210430758XA
Other languages
English (en)
Other versions
CN102982087B (zh
Inventor
彭正元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210430758.XA priority Critical patent/CN102982087B/zh
Publication of CN102982087A publication Critical patent/CN102982087A/zh
Priority to PCT/CN2013/073476 priority patent/WO2014067254A1/zh
Application granted granted Critical
Publication of CN102982087B publication Critical patent/CN102982087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本发明实施例公开了一种检测数据库数据一致性的方法、装置及数据库系统,能够提高数据库系统处理数据库倒换的效率、减小数据库系统对资源的消耗。该方法包括:所述数据库系统更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识;在所述主数据库和备用数据库进行倒换后,所述数据库系统将每个所述数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表;所述数据库系统对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。本发明适用于计算机应用领域。

Description

一种检测数据库数据一致性的方法、装置及数据库系统
技术领域
本发明涉及计算机应用领域,尤其涉及一种检测数据库数据一致性的方法、装置及数据库系统。
背景技术
对于大型且可靠性要求高的数据库系统,为了保证系统的正常运行,数据库系统采用建立主、备两套数据库的方式。同时,为了保证数据库访问的效率,数据库系统会缓存数据库中的数据以实现数据的快速访问,并且缓存数据与数据库实时保持一致。
在数据库系统运行过程中,主数据库和备用数据库进行周期或者实时的数据同步,但是,由于网络不稳定或者延时等原因,难以保证主数据库和备用数据库的一致性。当主数据库失效,由备用数据库接管数据提供数据服务,但是,由于主数据库和备用数据库的不一致性,使得数据库系统不能正常运行。
现有技术中,为了保证数据库系统的正常运行,数据库系统的每个应用程序独立检测主数据库和备用数据库的倒换,并在每个应用程序检测到主数据库和备用数据库倒换后,每个应用程序都将该应用程序对应的内存中的多份缓存数据与备用数据库中对应的数据进行比较,并将不一致的数据持久化到备份数据库中。这样的处理方式,没有统一的检测主数据库和备用数据库倒换的方法,同时,每个应用程序将该应用程序对应的所有缓存数据与备用数据库中对应的数据进行比较,使得数据库系统处理数据库倒换耗时长、效率低,并且对资源的消耗较大。
发明内容
本发明的实施例提供一种检测数据库数据一致性的方法、装置及数据库系统,可以提高数据库系统处理数据库倒换的效率、减少数据库系统对资源的消耗。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,提供了一种检测数据库数据一致性的方法,该方法应用于数据库系统,该数据库系统至少包括一个主数据库和与所述主数据库对应的备用数据库,所述数据库被至少一个应用程序访问,该方法包括所述数据库系统更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,所述第一更新标识指示与所述数据表对应的缓存中的数据表的更新状态,所述第二更新标识指示与所述数据表对应的备用数据库中的数据表的更新状态;在所述主数据库与备用数据库进行倒换后,将每个所述数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表;对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。
第二方面,本发明实施例提供了一种检测数据库数据一致性的装置,该装置包括更新单元、获取单元和处理单元;所述更新单元,用于更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,所述第一更新标识指示与所述数据表对应的缓存中的数据表的更新状态,所述第二更新标识指示与所述数据表对应的备用数据库中的数据表的更新状态;所述获取单元,用于在所述主数据库与备用数据库进行倒换后,将每个所述数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表;所述处理单元,用于对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。
第三方面,本发明实施例提供了一种数据库系统,所述数据库系统包括:至少一个主数据库、与所述主数据库对应的备用数据库、数据库访问装置、倒换监控装置和检测数据库数据一致性的装置;所述主数据库,用于存储应用程序需要访问的数据;所述备用数据库,用于当所述主数据库失效时,由所述备用数据库为所述应用程序提供数据;所述数据库访问装置,用于接收所述应用程序对所述主数据库或所述备用数据库的访问请求,根据所述访问请求从所述主数据库或所述备用数据库中获取对应的数据;所述倒换监控装置,用于监控所述主数据库与备用数据库是否倒换,并在所述主数据库与备用数据库倒换后,通知所述检测数据库数据一致性的装置进行数据一致性处理;所述检测数据库数据一致性的装置,用于更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,所述第一更新标识指示与所述数据表对应的缓存中的数据表的更新状态,所述第二更新标识指示与所述数据表对应的备用数据库中的数据表的更新状态;所述检测数据库数据一致性的装置,还用于在所述倒换监控装置监控到所述主数据库与备用数据库进行倒换后,将每个所述数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表;所述检测数据库数据一致性的装置,还用于对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。
可见,本发明实施例提供一种检测数据库一致性的方法、装置及数据库系统,该方法具体包括:所述数据库系统更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,在所述主数据库与备用数据库进行倒换后,所述数据库系统将每个所述数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表,并对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。在主数据库和备用数据库倒换后,由于该数据库系统只对应用程序访问的数据的第一更新标识和第二更新标识进行比较检测,而不需要对数据库中的所有数据依次进行比较,从而,提高了数据库系统处理数据库倒换的效率、减小了数据库系统对资源的消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种检测数据库数据一致性的方法流程示意图;
图2为本发明实施例提供的另一种检测数据库数据一致性的方法流程示意图;
图3为本发明实施例提供的另一种检测数据库数据一致性的方法流程示意图;
图4为本发明实施例提供的一种检测数据库数据一致性的装置结构示意图;
图5为本发明实施例提供的另一种检测数据库数据一致性的装置结构示意图;
图6为本发明实施例提供的一种数据库系统的结构示意图;
图7为本发明实施例提供的一种数据库系统检测数据库数据一致性的交互示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一、
本发明实施例提供一种检测数据库数据一致性的方法,该方法应用于数据库系统,该数据库系统的数据库至少包括一个主数据库和所述主数据库对应的备用数据库,所述数据库被至少一个应用程序访问。所述每个应用程序在运行时需要访问主数据库中数据表,为了提高应用程序的处理速度,所述应用程序通常将要访问主数据库中的数据表预先缓存在运行所述应用程序的装置的缓存中。为了保证系统正常运行,所述数据库中的数据应当与所述缓存数据保持实时一致。例如,在主数据库和备用数据库未倒换时,缓存中的数据实时的与主数据库数据保持一致。所述主数据库也会周期或实时的将主数据库的数据发送给备用数据库,以使得主数据库与备用数据库的数据进行同步,但是由于网络不稳定或延迟不能保证主数据库和备用数据库数据完全实时同步,这样在主数据库和备用数据库倒换后,为了保证系统正常运行,需要对数据库数据的一致性进行检测,使得缓存数据与备用数据库的数据保持一致。具体的如图1所示,该方法具体包括:
101、更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,所述第一更新标识指示与所述数据表对应的缓存中的数据表的更新状态,所述第二更新标识指示与所述数据表对应的备用数据库中的数据表的更新状态。
所述更新状态包括以下信息中的至少一种信息:指示该数据表已更新的信息和指示该数据表被更新的次数。
当所述应用程序在缓存中对访问的主数据库中的数据进行更改操作时,所述数据表的第一更新标识会根据对应的更改操作来改变,用以记录此次的更改操作。所述更改操作可以是对数据的删除、增加等操作,但不包括对数据的查询操作。在所述备用数据库与主数据库数据同步之后,所述第二更新标识更新为所述第一更新标识,用以表示所述备用数据库的数据和主数据库的数据、缓存中的数据保持同步的状态。在所述备用数据库与主数据库没有同步时,所述第二更新标识维持原有的状态值。
102、在所述主数据库和备用数据库进行倒换后,将所述每个数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表。
所述数据库系统可以对所述主数据库和备用数据库进行倒换监控。
当所述数据库系统检测到所述主数据库和所述备用数据库倒换后,所述数据库系统将所述每个数据表的第一更新标识和第二更新标识进行比较,获得所述第一更新标识和第二更新标识不一致的第一数据表。所述第一数据表为缓存与备用数据库中数据不一致的数据表,所述数据库系统需要对缓存与备用数据库中的第一数据表对应的数据表进行一致性处理。
103、对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。
可见,本发明实施例提供一种检测数据库数据一致性的方法,所述数据库系统更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,在所述主数据库与备用数据库进行倒换后,所述数据库系统将每个所述数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表,并对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。这样在主数据库和备用数据库倒换后,由于该数据库系统只对应用程序访问的数据的第一更新标识和第二更新标识进行比较检测,而不需要对数据库中的所有数据依次进行比较,从而,提高了数据库系统处理数据库倒换的效率、减小了数据库系统对资源的消耗。
实施例二、
本发明实施例提供一种检测数据库一致性的方法,该方法应用于数据库系统。所述每个应用程序向所述数据库系统注册应用程序的标识、该应用程序需要访问的数据库的名称、该应用程序需要访问的每个数据库中的数据表的名称。所述数据库系统中存储有每个应用程序对应的第一特征表,所述第一特征表至少包括对应的应用程序的标识、该应用程序访问的数据库的名称、该应用程序访问的数据库中每个数据表的名称、该应用程序访问的每个数据表的第一更新标识和第二更新标识,这样每个数据表的所述第一更新标识和第二更新标识包含于对应的应用程序的第一特征表中。每个应用程序运行时,应用程序将访问的数据缓存到运行所述应用程序的装置的缓存中,应用程序访问对应数据库中数据是通过访问缓存数据来实现的。如图2所示,所述检测数据库数据一致性的方法具体包括:
201、更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,所述第一更新标识指示与所述数据表对应的缓存中的数据表的更新状态,所述第二更新标识指示与所述数据表对应的备用数据库中的数据表的更新状态。
所述更新状态包括以下信息中的至少一种信息:指示该数据表已更新的信息和指示该数据表被更新的次数。
当所述应用程序在缓存中对访问的主数据库中的数据进行更改操作时,所述第一特定表中对应的每个数据的数据表的第一更新标识会根据对应的更改操作来改变,用以记录此次的更改操作。所述更改操作可以是对数据的删除、增加等操作,但不包括对数据的查询操作。在所述备用数据库与主数据库数据同步之后,所述第一特征表中的第二更新标识更新为所述第一特征表中的第一更新标识,用以表示所述备用数据库的数据和主数据库的数据、缓存中的数据保持同步的状态。在所述备用数据库与主数据库没有同步时,所述第一特征表中的第二更新标识维持原有的状态值。
可选的,所述第一特征表中还可以包括有第三更新标识,所述第三更新标识用于指示对应数据的数据表在所述主数据库中的更新状态。这样在主数据库和备用数据库同步时,所述主数据库可以仅将所述第三更新标识发生变化的数据表同步到所述备用数据库即可,同时将所述第二更新标识更新为第三更新标识,从而提高了主备数据库的同步速率。
202、在所述主数据库和备用数据库进行倒换后,对每个应用程序的第一特征表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的数据表的名称为第一数据表,以及存储该第一数据表的数据库的名称为第一数据库。
所述数据库系统可以对所述主数据库和备用数据库进行监控。所述数据库系统对所述主数据库和所述备用数据库的倒换监控可以是数据库系统中的一个监控应用程序,也可以是一个独立的监控装置。
所述监控应用程序或监控装置对主数据库和备用数据库的设备进行统一监控管理,当主数据库出现故障,所述数据库系统对所述主数据库和备用数据库进行切换后,所述监控应用程序或监控装置监控到所述主数据库和备用数据库切换后,会通知所述数据库系统和应用程序。
采用独立的监控应用程序或监控装置对该数据库系统包括的主数据库和备份数据库统一进行监控,相比较于现有技术中的数据库系统中,每个应用程序分别监控访问的主数据库和备份数据库进行倒换的技术方案,能够提高该数据库系统的工作效率,节省系统资源。
当所述数据库系统监测到所述主数据库和备用数据库倒换后,所述数据库系统将所述第一特定表中的每个数据表对应的第一更新标识和第二更新标识进行比较,获得第一数据表,所述第一数据表为第一特定表中的第一更新标识和第二更新标识不一致的数据表的名称。所述第一数据表为缓存中与备用数据库中数据不一致的数据表,所述数据库系统需要进行缓存和备用数据库中的第一数据表对应的数据表进行一致性处理。
203、对所述第一数据库对应的第一备用数据库中与所述第一数据表对应的数据表和所述第一数据库对应的缓存中的与所述第一数据表对应的数据表进行一致性处理。
当然,不同数据库系统对所述第一备用数据库和缓存中的第一数据表对应的数据表进行一致性处理的原则有所不同。
当对所述第一备用数据库和缓存中的第一数据表对应的数据表进行一致性处理是由所述数据库系统进行时,所述数据库系统可以根据获得的所述第一数据表以及所述第一数据库,可以将所述第一备用数据库的第一数据表对应的数据表的内容更新为所述缓存中的第一数据表对应的数据表的内容;当然所述数据库系统也可以将所述缓存中的第一数据表对应的数据表的内容更新为所述第一备用数据库中的第一数据表对应的数据表的内容,当然,也可以以其他方式对所述第一数据表对应的数据表进行处理,本发明实施例在此不作具体限定。
可选的,当对所述第一备用数据库和缓存中的第一数据表对应的数据表进行一致性处理是由数据库系统中访问该第一数据表对应的应用程序处理的,所述数据库系统向访问所述第一数据表的每个应用程序发送一致性处理消息,所述一致性处理消息包括所述第一数据表以及所述第一数据库的信息。
所述对应的应用程序接收到所述一致性处理消息后,对所述第一备用数据库中和所述缓存中的第一数据表对应的数据表进行一致性处理。
对于不同的数据库系统,所述一致性处理有所不同。具体处理过程可以参见上述数据库系统对所述第一备用数据库和缓存中的第一数据表对应的数据表进行一致性处理的过程,当然本发明实施例仅是示例性的说明,对此并不作具体限定。
可见,本发明实施例提供一种检测数据库数据一致性的方法,所述数据库系统更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,若所述数据库系统检测到所述主数据库和备用数据库进行倒换,所述数据库系统将所述每个数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表,并对所述备用数据库和缓存中的第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。这样在主数据库和备用数据库倒换后,由于该数据库系统只对应用程序访问的数据的第一更新标识和第二更新标识进行比较检测,而不需要对数据库中的所有数据依次进行比较,从而,提高了数据库系统处理数据库倒换的效率、减小了数据库系统对资源的消耗。
实施例三、
本发明实施例提供了一种检测数据库数据一致性的方法,该方法应用于数据库系统。所述每个应用程序向所述数据库系统注册应用程序的标识、该应用程序需要访问的数据库的名称、该应用程序需要访问的每个数据库中的数据表的名称。所述数据库系统中存储有每个应用程序对应的第一特征表和第二特征表,所述第一特征表至少包括对应的应用程序的标识、该应用程序访问的数据库的名称、该应用程序访问的数据库中每个数据表的名称、该应用程序访问的每个数据表的第一更新标识,所述第二特征表至少包括对应的应用程序的标识、该应用程序访问的数据库的名称、该应用程序访问的数据库中每个数据表的名称和该应用程序访问的每个数据表的第二更新标识。每个应用程序运行时,应用程序通常将访问的数据缓存到运行所述应用程序的装置的缓存中,应用程序访问对应数据库中数据是通过访问缓存数据来实现的。如图3所示,所述检测数据库数据一致性的方法具体包括:
301、更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,所述第一更新标识指示与所述数据表对应的缓存中的数据表的更新状态,所述第二更新标识指示与所述数据表对应的备用数据库中的数据表的更新状态。
所述更新状态包括以下信息中的至少一种信息:指示该数据表已更新的信息和指示该数据表被更新的次数。
在当所述应用程序在缓存中对访问的主数据库中的数据进行更改操作时,所述第一特征表中对应的数据表的第一更新标识会根据对应的更改操作来改变,用以记录此次的更改操作。所述更改操作可以是对数据的删除、增加等更改操作,但不包括对数据的查询操作。在所述备用数据库与主数据库数据同步之后,所述第二特征表中的第二更新标识更新为所述第一特征表中的第一更新标识,用以表示所述备用数据库的数据和主数据库的数据、缓存中的数据保持同步的状态。在所述备用数据库与主数据库没有同步时,所述第二特征表中的第二更新标识维持原有的状态值。
可选的,为了更方便主数据库和备用数据库进行数据同步,所述数据库系统还可以建立第三特征表,所述第三特征表至少包括对应的应用程序的标识、该应用程序访问的数据库的名称、该应用程序访问的数据库中每个数据表的名称和该应用程序访问的每个数据表的第三更新标识。所述第三更新标识用于指示对应数据表在所述主数据库中的更新状态。所述第三特征表也可以存储在所述数据库系统中。当每个应用程序更改对应的缓存中的数据时,数据库系统相应的更新第一更新标识和第三更新标识。当所述备用数据库与主数据库没有同步时,所述第二特征表中的第二更新标识维持原有的状态值。当备用数据库与主数据库同步时,所述数据库系统可以仅将所述第三更新标识发生变化的数据同步到所述备用数据库即可,同时将第二特征表更新为第三特征表。
需要说明的是,在该数据库系统中,若执行所述检测数据库数据一致性的方法的装置、所述运行应用程序的装置、主数据库和备用数据库分别为独立的装置中,所述第一特征表、第二特征表和第三特征表可以存储在所述运行应用程序的装置或所述执行所述检测数据库数据一致性的方法的装置中。当然第二特征表还可以直接存储在所述备用数据库中,所述第三特征表还可以存储在所述主数据库中。
这样,在所述第二特征表存储在所述备用数据库中,所述第三特征表存储在所述主数据库中时,当备用数据库与主数据库同步时,所述数据库系统可以仅将所述主数据库中的第三特征表中的所述第三更新标识发生变化的数据同步到所述备用数据库即可,同时将第二特征表更新为第三特征表。
302、若所述主数据库和备用数据库进行倒换后,根据所述每个应用程序第一特征表和第二特征表,对每个应用程序访问的数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的数据表的名称为第一数据表,以及存储该第一数据表的数据库的名称为第一数据库。
所述数据库系统对所述主数据库和备用数据库进行监控。所述数据库系统对所述主数据库和所述备用数据库的倒换监控可以是数据库系统中的一个监控应用程序,也可以是一个独立的监控装置。
根据不同的数据库系统,主数据库和备用数据库可以建立在同一设备上,也可以是不同的独立设备。
所述监控应用程序或监控装置对主数据库和备用数据库的设备进行统一监控管理,当主数据库出现故障,所述数据库系统对所述主数据库和备用数据库进行切换后,所述监控应用程序或监控装置监控到所述主数据库和备用数据库切换后,会通知所述数据库系统。
采用独立的监控应用程序或监控装置对该数据库系统包括的主数据库和备份数据库统一进行监控,相比较于现有技术中的数据库系统中,每个应用程序分别监控访问的主数据库和备份数据库进行倒换的技术方案,能够提高该数据库系统的工作效率,节省系统资源。
当所述数据库系统监测到所述主数据库和备用数据库倒换后,所述数据库系统将所述第一特定表中的每个数据表对应的第一更新标识和第二特定表中的第二更新标识进行比较,获得所述第一特定表中的第一更新标识和第二特征表中的第二更新标识不一致的第一数据表。所述第一数据表为缓存与备用数据库数据不一致的数据表对应的所述主数据库的数据表,所述数据库系统需要对缓存和备用数据库中的第一数据表对应的数据表进行一致性处理。
当然,当所述第二特征表存储在备用数据库中时,在所述数据库系统中的根据所述每个应用程序第一特征表和第二特征表,对每个应用程序访问的数据表的第一更新标识和第二更新标识进行比较之前,还需要从备用数据库中获取所述第二特征表。
303、对所述第一数据库对应的第一备用数据库中与所述第一数据表对应的数据表和所述第一数据库对应的缓存中的与所述第一数据表对应的数据表进行一致性处理。
当然,不同数据库系统对所述第一备用数据库和缓存中的第一数据表对应的数据表进行一致性处理的原则有所不同。
当对所述第一备用数据库和缓存中的第一数据表对应的数据表进行一致性处理是由所述数据库系统进行时,所述数据库系统可以根据获得的所述第一数据表以及所述第一数据库,可以将所述第一备用数据库的第一数据表对应的数据表的内容更新为所述缓存中的第一数据表对应的数据表的内容;也可以将所述缓存中的第一数据表对应的数据表的内容更新为所述第一备用数据库中的第一数据表对应的数据表的内容,当然,也可以以其他方式对所述第一数据表对应的数据表进行处理,本发明实施例在此不作具体限定。
可选的,当对所述第一备用数据库和缓存中的第一数据表对应的数据表进行一致性处理是由数据库系统中访问该第一数据表对应的应用程序处理的,所述数据库系统向访问所述第一数据表的每个应用程序发送一致性处理消息,所述一致性处理消息包括所述第一数据表以及所述第一数据库的信息。
所述对应的应用程序接收到所述一致性处理消息后,对所述第一备用数据库中和所述缓存中的第一数据表对应的数据表进行一致性处理。
对于不同的数据库系统,所述一致性处理有所不同。具体处理过程参见上述数据库系统对所述第一备用数据库和缓存中的第一数据表对应的数据表进行一致性处理的过程,当然本发明实施例仅是示例性的说明,对此并不作具体限定。
本发明实施例提供一种检测数据库数据一致性的方法,所述数据库系统更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,在所述数据库系统检测到所述主数据库和备用数据库进行倒换后,所述数据库系统将所述每个数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表,并对所述备用数据库和缓存中的第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。这样在主数据库和备用数据库倒换后,由于该数据库系统只对应用程序访问的数据的第一更新标识和第二更新标识进行比较检测,而不需要对数据库中的所有数据依次进行比较,从而,提高了数据库系统处理数据库倒换的效率、减小了数据库系统对资源的消耗。
实施例四、
本发明实施例提供一种检测数据库数据一致性的装置,如图4所示,该装置用于检测至少一个主数据库和所述主数据库对应的备用数据库的数据一致性,所述主数据库被至少一个应用程序访问。所述每个应用程序在运行时需要访问主数据库中数据表,为了提高应用程序的处理速度,所述应用程序将要访问主数据库中的数据表预先缓存在运行所述应用程序的装置的缓存中。为了保证系统正常运行,所述数据库中的数据应当与所述缓存数据保持实时一致。例如,在主数据库和备用数据库未倒换时,缓存数据实时的与主数据库数据保持一致。所述主数据库也会周期或实时的将主数据库的数据发送给备用数据库,以使得主数据库与备用数据库的数据进行同步,但是由于网络不稳定或延迟不能保证主数据库、备用数据库数据完全实时同步,这样在主数据库和备用数据库倒换后,为了保证系统正常运行,需要对数据库数据的一致性进行检测,使得缓存数据与备用数据库的数据保持一致。具体的,该装置40包括:更新单元41、获取单元42和处理单元43。
所述更新单元41,用于更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,所述第一更新标识指示与所述数据表对应的缓存中的数据表的更新状态,所述第二更新标识指示与所述数据表对应的备用数据库中的数据表的更新状态。
所述更新状态包括以下信息中的至少一种信息:指示该数据表已更新的信息和指示该数据表被更新的次数。
在所述应用程序在缓存中对访问的主数据库中的数据进行更改操作时,所述更新单元41更新对应数据的数据表的第一更新标识,用以记录此次的更改操作。所述更改操作可以是对数据的删除、增加等操作,但不包括对数据的查询操作。在所述备用数据库与主数据库数据同步之后,所述更新单元41将所述第二更新标识更新为所述第一更新标识,用以表示所述备用数据库的数据和主数据库的数据、缓存中的数据保持同步的状态。在所述备用数据库与主数据库没有同步时,所述第二更新标识维持原有的状态值。
根据不同的数据库系统,主数据库和备用数据库可以建立在同一设备上,也可以是不同的独立设备。
所述监控应用程序或监控装置对主数据库和备用数据库的设备进行统一监控管理,当主数据库出现故障,所述数据库系统对所述主数据库和备用数据库进行切换后,所述监控应用程序或监控装置监控到所述主数据库和备用数据库切换后,会通知所述数据库系统。
采用独立的监控应用程序或监控装置对该数据库系统包括的主数据库和备份数据库统一进行监控,相比较于现有技术中的数据库系统中,每个应用程序分别监控访问的主数据库和备份数据库进行倒换的技术方案,能够提高该数据库系统的工作效率,节省系统资源。
所述获取单元42,用于在所述主数据库和备用数据库进行倒换后,将所述每个数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表。
在所述主数据库和所述备用数据库倒换后,所述获取单元42将所述每个数据表的第一更新标识和第二更新标识进行比较,获得所述第一更新标识和第二更新标识不一致的第一数据表。所述第一数据表为缓存中与备用数据库中数据不一致的数据表对应的所述主数据库的数据表,所述处理单元43需要对缓存和备用数据库中的第一数据表对应的数据表进行一致性处理。
所述处理单元43,用于对所述备用数据库和缓存中与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。
根据不同数据库系统的一致性处理的原则不同,所述处理单元43,可以具体用于将所述备用数据库中的第一数据表对应的数据表的内容更新为所述缓存中的第一数据表的内容。
所述处理单元43,还可以具体用于将所述缓存中的第一数据表对应的数据表的内容更新为所述备用数据库中的第一数据表的内容。
可选的,每个数据表的所述第一更新标识和第二更新标识包含于与应用程序对应的第一特征表中,所述第一特征表至少包括所述应用程序的标识、所述应用程序访问的主数据库的名称、所述应用程序访问的主数据库中的每个数据表的名称、所述应用程序访问的每个数据表的第一更新标识和第二更新标识;所述装置40还包括存储单元44。
所述存储单元44,用于存储所述第一特征表。
此时,当所述应用程序在缓存中对访问的主数据库中的数据进行更改操作时,所述更新单元41更新第一特定表中对应的每个数据表的第一更新标识,用以记录此次的更改操作。所述更改操作可以是对数据的删除、增加等操作,但不包括对数据的查询操作。在所述备用数据库与主数据库数据同步之后,所述更新单元41将所述第一特征表中的第二更新标识更新为所述第一更新标识,用以表示所述备用数据库的数据和主数据库的数据、缓存中的数据保持同步的状态。在所述备用数据库与主数据库没有同步时,所述第一特征表中的第二更新标识维持原有的状态值。
可选的,所述第一特征表中还包括有第三更新标识,所述第三更新标识用于指示对应数据的数据表在所述主数据库中的更新状态。这样在主数据库和备用数据库同步时,所述主数据库可以仅将所述第三更新标识发生变化的数据表同步到所述备用数据库即可,同时将所述第二更新标识更新为第三更新标识,从能提高了主备数据库的同步速率。
所述获取单元42,具体用于在所述主数据库和备用数据库倒换后,根据所述每个应用程序第一特征表和第二特征表,对每个应用程序访问的数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的数据表的名称为第一数据表,以及存储该第一数据表的数据库的名称为第一数据库。
在所述主数据库和备用数据库倒换后,所述获取单元42将所述第一特定表中的每个数据表对应的第一更新标识和第二更新标识进行比较,获得第一数据表,所述第一数据表为第一特定表中的第一更新标识和第二更新标识不一致的数据表的名称。所述第一数据表为缓存中与备用数据库中数据不一致的数据表,所述处理单元43需要进行缓存和备用数据库中的第一数据表对应的数据表进行一致性处理。
所述处理单元43,具体用于对所述第一数据库对应的第一备用数据库中与所述第一数据表对应的数据表和所述第一数据库对应的缓存中的与所述第一数据表对应的数据表进行一致性处理。
当然,不同的数据库系统一致性处理原则有所不同。具体的处理过程参见实施例二所述的描述,本发明实施例在此不再赘述。
可选的,所述第一更新标识和第二更新标识分别包含于与应用程序对应的第一特征表和第二特征表中,所述第一特征表至少包括所述应用程序的标识、所述应用程序访问的主数据库的名称、所述应用程序访问的主数据库中的每个数据表的名称和所述应用程序访问的每个数据表的第一更新标识,所述第二特征表至少包括所述应用程序的标识、所述应用程序访问的主数据库的名称、所述应用程序访问的主数据库中的每个数据表的名称和所述应用程序访问的每个数据表的第二更新标识。所述存储单元44,还用于存储所述第一特征表和第二特征表。
此时,在当所述应用程序在缓存中对访问的主数据库中的数据进行更改操作时,所述更新单元41更新第一特定表中对应的数据表的第一更新标识,用以记录此次的更改操作。所述更改操作可以是对数据的删除、增加等操作,但不包括对数据的查询操作。在所述备用数据库与主数据库数据同步之后,所述更新单元41将所述第二特征表中的第二更新标识更新为所述第一特征表中的第一更新标识,用以表示所述备用数据库的数据和主数据库的数据、缓存中的数据保持同步的状态。在所述备用数据库与主数据库没有同步时,所述第二特征表中的第二更新标识维持原有的状态值。
可选的,为了更方便主数据库和备用数据库进行数据同步,所述存储单元44还存储有第三特征表,所述第三特征表至少包括对应的应用程序的标识、该应用程序访问的数据库的名称、该应用程序访问的数据库中每个数据表的名称和该应用程序访问的每个数据表的第三更新标识。所述第三更新标识用于指示所述每个数据表在所述主数据库中的更新状态。当每个应用程序对对应的缓存中的数据进行更改操作时,所述更新单元41更新第一更新标识和第三更新标识。当所述备用数据库与主数据库没有同步时,所述第二特征表中的第二更新标识维持原有的状态值。当备用数据库与主数据库同步时,所述更新单元41将第二特征表更新为第三特征表。所述获取单元42,具体用于在所述主数据库和备用数据库进行倒换后,根据所述每个应用程序第一特征表和第二特征表,对每个应用程序访问的数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的数据表的名称为第一数据表,以及存储该第一数据表的数据库的名称为第一数据库。
在所述主数据库和备用数据库倒换后,所述获取单元42将所述第一特定表中的每个数据表对应的第一更新标识和第二特定表中的第二更新标识进行比较,获得所述第一特定表中的第一更新标识和第二特征表中的第二更新标识不一致的第一数据表。所述第一数据表为缓存与备用数据库中不一致的数据表对应的所述主数据库的数据表,所述处理单元43需要进行缓存和备用数据库中的第一数据表对应的数据表进行一致性处理。
所述处理单元43,具体用于对所述第一数据库对应的第一备用数据库中与所述第一数据表对应的数据表和所述第一数据库对应的缓存中的与所述第一数据表对应的数据表进行一致性处理。
当然,不同的数据库系统一致性处理原则有所不同。具体的处理过程参见实施例三所述的描述,本发明实施例在此不再赘述。
本发明实施例提供一种检测数据库数据一致性的装置,所述更新单元更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,在所述主数据库和备用数据库进行倒换后,所述获取单元将所述每个数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表,所述处理单元对所述备用数据库和缓存中的第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。这样在主数据库和备用数据库倒换后,由于该获取单元只对应用程序访问的数据的第一更新标识和第二更新标识进行比较检测,而不需要对数据库中的所有数据依次进行比较,从而,提高了数据库系统处理数据库倒换的效率、减小了数据库系统对资源的消耗。
实施例五、
本发明实施例提供一种检测数据库数据一致性的装置,如图5所示,该装置70包括存储器71和处理器72。
其中,所述存储器71至少存储一个主数据库和所述主数据库对应的备用数据库,所述数据库被至少一个应用程序访问。所述每个应用程序在运行时需要访问主数据库中数据表,为了提高应用程序的处理速度,所述应用程序将要访问主数据库中的数据表预先缓存在缓存中。为了保证系统正常运行,所述数据库中的数据应当与所述缓存数据保持实时一致。例如,在主数据库和备用数据库未倒换时,缓存数据实时的与主数据库数据保持一致。所述主数据库也会周期或实时的将主数据库的数据发送给备用数据库,以使得主数据库与备用数据库的数据进行同步,但是由于网络不稳定或延迟不能保证主数据库、备用数据库数据完全实时同步,这样在主数据库和备用数据库倒换后,为了保证系统正常运行,需要对数据库数据的一致性进行检测,使得缓存数据与备用数据库的数据保持一致。
所述处理器72,用于更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,所述第一更新标识指示与所述数据表对应的缓存中的数据表的更新状态,所述第二更新标识指示与所述数据表对应的备用数据库中的数据表的更新状态。
所述更新状态包括以下信息中的至少一种信息:指示该数据表已更新的信息和指示该数据表被更新的次数。
在当所述应用程序要对访问的数据库进行更改操作时,所述处理器72更新对应数据的数据表的第一更新标识,用以记录此次的更改操作。所述更改操作可以是对数据的删除、增加等操作,但不包括对数据的查询操作。在所述备用数据库与主数据库数据同步之后,所述处理器72将所述第二更新标识更新为所述第一更新标识,用以表示所述备用数据库的数据和主数据库的数据、缓存中的数据保持同步的状态。在所述备用数据库与主数据库没有同步时,所述第二更新标识维持原有的状态值。
根据不同的数据库系统,主数据库和备用数据库可以建立在同一设备上,也可以是不同的独立设备。
所述监控应用程序或监控装置对主数据库和备用数据库的设备进行统一监控管理,当主数据库出现故障,所述数据库系统对所述主数据库和备用数据库进行切换后,所述监控应用程序或监控装置监控到所述主数据库和备用数据库切换后,会通知所述数据库系统。
采用独立的监控应用程序或监控装置对该数据库系统包括的主数据库和备份数据库统一进行监控,相比较于现有技术中的数据库系统中,每个应用程序分别监控访问的主数据库和备份数据库进行倒换的技术方案,能够提高该数据库系统的工作效率,节省系统资源。
所述处理器72,还用于在所述主数据库和备用数据库进行倒换后,将所述每个数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表。
在所述主数据库和所述备用数据库倒换后,所述获处理器72将所述每个数据表的第一更新标识和第二更新标识进行比较,获得所述第一更新标识和第二更新标识不一致的第一数据表。所述第一数据表为缓存中与备用数据库中数据不一致的数据表,所述处理器72需要对缓存和备用数据库中的第一数据表对应的数据表进行一致性处理。
所述处理器72,还用于对所述备用数据库和缓存中与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。
根据不同数据库系统的一致性处理的原则不同,所述处理器72,可以具体用于将所述备用数据库中的第一数据表的内容更新为所述缓存中的第一数据表的内容;或者,具体用于将所述缓存中的第一数据表的内容更新为所述备用数据库中的第一数据表的内容。
存储器71还用于存储处理器72需要执行的程序或处理器72执行程序过程中的中间结果等。
需说明的是,图5所示存储器71与处理器72直接连接,在本发明其它一些实施例中,存储器71与处理器72以及该装置70的其它模块还可以通过总线进行连接,该总线可以是ISA(Industry StandardArchitecture,工业标准体系结构)总线、PCI(Peripheral Component,外部设备互连)总线或EISA(Extended Industry Standard Architecture,扩展工业标准体系结构)总线等。所述总线可以是一条或多条物理线路,当是多条物理线路时可以分为地址总线、数据总线、控制总线等。
另外,对于本领域普通技术人员而言,处理器72和存储器71的具体实现可以参考前述实施例所述,在此不再赘述。
可见,本发明实施例提供一种检测数据库数据一致性的装置,所述处理器更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,在所述主数据库和备用数据库进行倒换后,所述处理器将所述每个数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表,所述处理器对所述备用数据库和缓存中的第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。这样在主数据库和备用数据库倒换后,由于该获取单元只对应用程序访问的数据的第一更新标识和第二更新标识进行比较检测,而不需要对数据库中的所有数据依次进行比较,从而,提高了数据库系统处理数据库倒换的效率、减小了数据库系统对资源的消耗。
实施例六、
本发明实施例提供一种数据库系统。如图6所示,所述数据库系统50包括:至少一个主数据库51、与所述主数据库对应的备用数据库52、数据库访问装置53、倒换监控装置54、检测数据库数据一致性的装置55。
所述主数据库51,用于存储应用程序需要访问的数据。
所述备用数据库52,当所述主数据库失效时,由所述备用数据库为所述应用程序提供数据。
所述数据库访问装置53,用于接收所述应用程序对所述主数据库或所述备用数据库的访问请求,根据所述访问请求从所述主数据库或所述备用数据库中获取对应的数据。
所述倒换监控装置54,用于监控所述主数据库与备用数据库是否倒换,并在所述主数据库与备用数据库倒换后,通知所述检测数据库数据一致性的装置进行数据一致性处理。
所述装置55用于当所述应用程序通过数据库访问装置对访问的数据表进行更新操作时,更新第一更新标识;当所述主数据库51和备用数据库52同步后,更新第二更新标识;并当所述倒换监控装置54监控到所述主数据库51和备用数据库52进行倒换后,获取第一更新标识和第二更新标识不一致的第一数据表、存储所述第一数据表的第一数据库、所述第一数据表对应的应用程序的标识;然后,所述装置55可以直接对备用数据库52和缓存中与所述第一数据表对应的数据表进行一致性处理,也可以向所述第一数据表对应的应用程序发送一致性处理消息,使得所述对应的应用程序对备用数据库52和缓存中与所述第一数据表对应的数据表进行一致性处理。
所述数据库访问装置53、倒换监控装置54、装置55可以是集成在同一硬件上,当然也可以是数据库访问装置中的一个或多个应用模块,也可以是独立的装置。
具体的,所述数据库系统中的主数据库51、备用数据库52、数据库访问装置53、倒换监控装置54、检测数据库数据一致性的装置55之间的工作过程如图7所示,具体包括:
601、所述每个应用程序向所述数据库访问装置53注册所述应用程序的标识、所述应用程序访问的数据表的名称、存储所述数据表的数据库的名称。
602、所述应用程序向所述数据库访问装置53发送访问请求,请求所述主数据库的数据表。
603、所述数据库访问装置53接收所述访问请求,从所述主数据库中获取所述访问请求的数据表发送给所述应用程序。
所述应用程序将从所述主数据库访问的数据通常缓存到缓存中。
604、所述应用程序对访问的数据进行更改操作。
605、所述应用程序指示所述装置55更新所述数据对应的数据表的第一更新标识,所述第一更新标识指示所述数据表在缓存中的更新状态。
606、所述主数据库51和备用数据库52同步。
607、所述备用数据库52指示所述装置55更新第二更新标识,所述第二更新标识指示所述数据表在所述备用数据库中的更新状态。
具体的,上述步骤606和607中的所述更新状态包括以下信息中的至少一种信息:指示该数据表已更新的信息和指示该数据表被更新的次数。
所述检测数据库数据一致性装置55中存储第一特征表,所述第一特征表至少包括对应的应用程序的标识、该应用程序访问的数据库的名称、该应用程序访问的数据库中每个数据表的名称、该应用程序访问的每个数据表的第一更新标识和第二更新标识,这样每个数据表的所述第一更新标识和第二更新标识包含于对应的应用程序的第一特征表中。
进一步的,所述第一特征表中还包括有第三更新标识,所述第三更新标识用于指示存储对应数据的数据表在所述主数据库51中的更新状态。这样在主数据库51和备用数据库52同步时,所述主数据库51可以仅将所述第三更新标识发生变化的数据表同步到所述备用数据库52即可,同时将所述第二更新标识更新为第三更新标识,从而提高了主备数据库的同步速率。
可选的,所述检测数据库数据一致性的装置55存储第一特征表和第二特征表,所述第一特征表至少包括对应的应用程序的标识、该应用程序访问的数据库的名称、该应用程序访问的数据库中每个数据表的名称、该应用程序访问的每个数据表的第一更新标识,所述第二特征表至少包括对应的应用程序的标识、该应用程序访问的数据库的名称、该应用程序访问的数据库中每个数据表的名称和该应用程序访问的每个数据表的第二更新标识。
进一步的,为了更方便主数据库51和备用数据库52进行数据同步,所述检测数据库数据一致性的装置55还存储有第三特征表,所述第三特征表至少包括对应的应用程序的标识、该应用程序访问的数据库的名称、该应用程序访问的数据库中每个数据表的名称和第三更新标识,所述第三更新标识用于指示对应数据在所述主数据库51中的更新状态。当每个应用程序对访问的数据进行更改时,装置55相应的更新第一更新标识和主数据库中的第三更新标识。当所述备用数据库52与主数据库51没有同步时,所述第二特征表中的第二更新标识维持原有的状态值。当备用数据库52与主数据库51同步时,所述主数据库51可以仅将所述第三更新标识发生变化的数据同步到所述备用数据库52即可,同时将第二特征表更新为第三特征表。
每个应用程序运行时,应用程序将访问的数据缓存到该数据库系统的缓存中,应用程序访问对应数据库中数据是通过访问缓存数据来实现的。
当所述应用程序在缓存中对访问的主数据库中的数据进行更改操作时,所述检测数据库数据一致性的装置55更新所述第一特定表中存储的对应的每个数据的数据表的第一更新标识,用以记录此次的更改操作。
在所述备用数据库52与主数据库51数据同步之后,所述装置55将所述第二更新标识更新为所述第一特征表中的第一更新标识,用以表示所述备用数据库52的数据和主数据库51的数据、缓存中的数据保持同步的状态。在所述备用数据库52与主数据库51没有同步时,所述第二更新标识维持原有的状态值。
当主数据库51和备用数据库52进行实时或周期更新时,所述检测数据库数据一致性的装置55更新第二更新标识。
608、所述倒换监控装置54监控到所述主数据库51和备用数据库52倒换。
609、所述倒换监控装置54通知所述检测数据库数据一致性的装置55进行备用数据库52和缓存数据的一致性处理。
所述倒换监控装置54对主数据库51和备用数据库52的设备进行统一监控管理,当主数据库51出现故障,所述数据库系统对所述主数据库51和备用数据库52进行切换后,所述倒换监控装置54监控到所述主数据库51和备用数据库52切换后,会通知所述检测数据库数据一致性的装置55。
采用独立的倒换监控装置54对该数据库系统包括的主数据库51和备份数据库52统一进行监控,相比较于现有技术中的数据库系统中,每个应用程序分别监控访问的主数据库51和备份数据库52进行倒换的技术方案,能够提高该数据库系统的工作效率,节省系统资源。
当所述倒换监控装置54检测到所述主数据库51和备用数据库52倒换时,所述倒换监控装置54通知所述检测数据库数据一致性的装置55进行备用数据库52和缓存数据的一致性处理。
610、所述检测数据库数据一致性的装置55对备用数据库52和缓存数据进行一致性处理。
具体的,首先所述检测数据库数据一致性的装置55比较所述第一更新标识和第二更新标识,获取所述第一更新标识和第二更新标识不一致的第一数据表、所述第一数据表对应的第一数据库、所述第一数据表对应的应用程序的标识。
然后,所述检测数据库数据一致性的装置55对所述备用数据库52和缓存中的第一数据表对应的数据表进行一致性处理。
所述检测数据库数据一致性的装置55对所述备用数据库52和缓存中的第一数据表对应的数据表进行一致性处理时,所述检测数据库数据一致性的装置55将所述备用数据库52中与所述第一数据库中的第一数据表对应的数据表的内容更新为所述缓存中的与所述第一数据库中的第一数据表对应的数据表的内容。所述检测数据库数据一致性的装置55也可以将所述缓存中的与所述第一数据库中的第一数据表对应的数据表的内容更新为所述备用数据库52中的与所述第一数据库中的第一数据表对应的数据表的内容。
可选的,当所述检测数据库数据一致性的装置55比较所述第一更新标识和第二更新标识,获取所述第一更新标识和第二更新标识不一致的第一数据表、所述第一数据表对应的第一数据库、所述第一数据表对应的应用程序的标识之后,所述检测数据库数据一致性的装置55可以向所述第一数据表对应的应用程序标识对应的应用程序发送第一数据表以及所述第一数据表对应的第一数据库。所述应用程序对所述备用数据库和缓存中与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库52和缓存中的数据同步。
所述应用程序将所述备用数据库52中与所述第一数据库中的第一数据表对应的数据表的内容更新为所述缓存中的与所述第一数据库中的第一数据表对应的数据表的内容。所述应用程序也可以将所述缓存中的与所述第一数据库中的第一数据表对应的数据表的内容更新为所述备用数据库52中的与所述第一数据库中的第一数据表对应的数据表的内容。
本发明实施例提供一种数据库系统,所述每个应用程序向所述数据库访问装置注册所述应用程序的标识、所述应用程序访问的数据表的名称、存储所述数据表的数据库的名称;当所述应用程序对所述数据库中的数据进行更改操作时,所述检测数据库数据一致性的装置更新所述数据对应的数据表的第一更新标识,当所述主数据库和备用数据库同步时,所述检测数据库数据一致性的装置更新第二更新标识;当所述倒换监控装置监控到所述主数据库和备用数据库倒换时,通知所述检测数据库数据一致性的装置进行备用数据库和缓存数据的一致性处理;所述检测数据库数据一致性的装置比较所述第一更新标识和第二更新标识,获取所述第一更新标识和第二更新标识不一致的第一数据表、所述第一数据表对应的第一数据库、所述第一数据表对应的应用程序的标识;所述检测数据库数据一致性的装置对所述备用数据库和缓存中的第一数据表对应的数据表进行一致性处理。这样在主数据库和备用数据库倒换后,由于检测数据库数据一致性的装置只对应用程序访问的数据的第一更新标识和第二更新标识进行比较检测,而不需要对数据库中的所有数据依次进行比较,从而,提高了数据库系统处理数据库倒换的效率、减小了数据库系统对资源的消耗。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (11)

1.一种检测数据库数据一致性的方法,该方法应用于数据库系统,该数据库系统至少包括一个主数据库和与所述主数据库对应的备用数据库,所述数据库被至少一个应用程序访问,其特征在于,该方法包括:
更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,所述第一更新标识指示与所述数据表对应的缓存中的数据表的更新状态,所述第二更新标识指示与所述数据表对应的备用数据库中的数据表的更新状态;
在所述主数据库与备用数据库进行倒换后,将每个所述数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表;
对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。
2.根据权利要求1所述的方法,其特征在于,每个数据表的所述第一更新标识和第二更新标识包含于与应用程序对应的第一特征表中,所述第一特征表至少包括所述应用程序的标识、所述应用程序访问的主数据库的名称、所述应用程序访问的主数据库中的每个数据表的名称、所述应用程序访问的每个数据表的第一更新标识和第二更新标识;
所述将所述每个数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表具体包括:
对每个应用程序的第一特征表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的数据表为第一数据表,以及存储该第一数据表的数据库为第一数据库;
所述对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步具体包括:
对所述第一数据库对应的第一备用数据库中与所述第一数据表对应的数据表和所述第一数据库对应的缓存中的与所述第一数据表对应的数据表进行一致性处理。
3.根据权利要求1所述的方法,其特征在于,所述第一更新标识和第二更新标识分别包含于与应用程序对应的第一特征表和第二特征表中,所述第一特征表至少包括所述应用程序的标识、所述应用程序访问的主数据库的名称、所述应用程序访问的主数据库中的每个数据表的名称和所述应用程序访问的每个数据表的第一更新标识,所述第二特征表至少包括所述应用程序的标识、所述应用程序访问的主数据库的名称、所述应用程序访问的主数据库中的每个数据表的名称和所述应用程序访问的每个数据表的第二更新标识;
所述将所述每个数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表具体包括:
根据所述每个应用程序的第一特征表和第二特征表,对每个应用程序访问的数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的数据表为第一数据表,以及存储该第一数据表的数据库为第一数据库;
所述对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步具体包括:
对所述第一数据库对应的第一备用数据库中与所述第一数据表对应的数据表和所述第一数据库对应的缓存中的与所述第一数据表对应的数据表进行一致性处理。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述更新状态包括以下信息中的至少一种信息:指示该数据表已更新的信息和指示该数据表被更新的次数。
5.根据权利要求4所述的方法,其特征在于,所述对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步具体包括:
将所述备用数据库中与所述第一数据表对应的数据表的内容更新为所述缓存中的与所述第一数据表对应的数据表的内容;或
将所述缓存中的与所述第一数据表对应的数据表的内容更新为所述备用数据库中的与所述第一数据表对应的数据表的内容。
6.一种检测数据库数据一致性的装置,其特征在于,所述数据库系统至少包括一个主数据库和与所述主数据库对应的备用数据库,所述数据库被至少一个应用程序访问,该装置包括:更新单元、获取单元和处理单元;
所述更新单元,用于更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,所述第一更新标识指示与所述数据表对应的缓存中的数据表的更新状态,所述第二更新标识指示与所述数据表对应的备用数据库中的数据表的更新状态;
所述获取单元,用于在所述主数据库与备用数据库进行倒换后,将每个所述数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表;
所述处理单元,用于对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。
7.根据权利要求6所述的装置,其特征在于,每个数据表的所述第一更新标识和第二更新标识包含于与应用程序对应的第一特征表中,所述第一特征表至少包括所述应用程序的标识、所述应用程序访问的主数据库的名称、所述应用程序访问的主数据库中的每个数据表的名称、所述应用程序访问的每个数据表的第一更新标识和第二更新标识;所述装置还包括:存储单元;
所述存储单元,用于存储所述第一特征表;
所述获取单元,具体用于对每个应用程序的第一特征表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的数据表为第一数据表,以及存储该第一数据表的数据库为第一数据库;
所述处理单元,具体用于对所述第一数据库对应的第一备用数据库中与所述第一数据表对应的数据表和所述第一数据库对应的缓存中的与所述第一数据表对应的数据表进行一致性处理。
8.根据权利要求6所述的装置,其特征在于,所述第一更新标识和第二更新标识分别包含于与应用程序对应的第一特征表和第二特征表中,所述第一特征表至少包括所述应用程序的标识、所述应用程序访问的主数据库的名称、所述应用程序访问的主数据库中的每个数据表的名称和所述应用程序访问的每个数据表的第一更新标识,所述第二特征表至少包括所述应用程序的标识、所述应用程序访问的主数据库的名称、所述应用程序访问的主数据库中的每个数据表的名称和所述应用程序访问的每个数据表的第二更新标识;所述装置还包括:存储单元;
所述存储单元,用于存储所述第一特征表和第二特征表;
所述获取单元,具体用于根据所述每个应用程序的第一特征表和第二特征表,对每个应用程序访问的数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的数据表为第一数据表,以及存储该第一数据表的数据库为第一数据库;
所述处理单元,具体用于对所述第一数据库对应的第一备用数据库中与所述第一数据表对应的数据表和所述第一数据库对应的缓存中的与所述第一数据表对应的数据表进行一致性处理。
9.根据权利要求6-8任一项所述的装置,其特征在于,所述更新状态包括以下信息中的至少一种信息:指示该数据表已更新的信息和指示该数据表被更新的次数。
10.根据权利要求9所述的装置,其特征在于,所述处理单元,具体用于
将所述备用数据库中与所述第一数据表对应的数据表的内容更新为所述缓存中的与所述第一数据表对应的数据表的内容;或
将所述缓存中的与所述第一数据表对应的数据表的内容更新为所述备用数据库中的与所述第一数据表对应的数据表的内容。
11.一种数据库系统,其特征在于,所述数据库系统包括:至少一个主数据库、与所述主数据库对应的备用数据库、数据库访问装置、倒换监控装置和检测数据库数据一致性的装置;
所述主数据库,用于存储应用程序需要访问的数据;
所述备用数据库,用于当所述主数据库失效时,由所述备用数据库为所述应用程序提供数据;
所述数据库访问装置,用于接收所述应用程序对所述主数据库或所述备用数据库的访问请求,根据所述访问请求从所述主数据库或所述备用数据库中获取对应的数据;
所述倒换监控装置,用于监控所述主数据库与备用数据库是否倒换,并在所述主数据库与备用数据库倒换后,通知所述检测数据库数据一致性的装置进行数据一致性处理;
所述检测数据库数据一致性的装置,用于更新每个应用程序访问的所述主数据库的数据表的第一更新标识和第二更新标识,所述第一更新标识指示与所述数据表对应的缓存中的数据表的更新状态,所述第二更新标识指示与所述数据表对应的备用数据库中的数据表的更新状态;
所述检测数据库数据一致性的装置,还用于在所述倒换监控装置监控到所述主数据库与备用数据库进行倒换后,将每个所述数据表的第一更新标识和第二更新标识进行比较,获得第一更新标识和第二更新标识不一致的第一数据表;
所述检测数据库数据一致性的装置,还用于对所述备用数据库和缓存中的与所述第一数据表对应的数据表进行一致性处理,以使得所述备用数据库和缓存中的数据同步。
CN201210430758.XA 2012-11-01 2012-11-01 一种检测数据库数据一致性的方法、装置及数据库系统 Active CN102982087B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210430758.XA CN102982087B (zh) 2012-11-01 2012-11-01 一种检测数据库数据一致性的方法、装置及数据库系统
PCT/CN2013/073476 WO2014067254A1 (zh) 2012-11-01 2013-03-29 一种检测数据库数据一致性的方法、装置及数据库系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210430758.XA CN102982087B (zh) 2012-11-01 2012-11-01 一种检测数据库数据一致性的方法、装置及数据库系统

Publications (2)

Publication Number Publication Date
CN102982087A true CN102982087A (zh) 2013-03-20
CN102982087B CN102982087B (zh) 2016-05-25

Family

ID=47856107

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210430758.XA Active CN102982087B (zh) 2012-11-01 2012-11-01 一种检测数据库数据一致性的方法、装置及数据库系统

Country Status (2)

Country Link
CN (1) CN102982087B (zh)
WO (1) WO2014067254A1 (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324679A (zh) * 2013-05-28 2013-09-25 杭州朗和科技有限公司 一种缓存服务器中数据更新的控制方法和设备
CN103605776A (zh) * 2013-11-28 2014-02-26 北京国双科技有限公司 信息数据库的数据处理方法和装置
WO2014067254A1 (zh) * 2012-11-01 2014-05-08 华为技术有限公司 一种检测数据库数据一致性的方法、装置及数据库系统
CN104021192A (zh) * 2014-06-13 2014-09-03 北京联时空网络通信设备有限公司 一种数据库更新方法及装置
CN104317737A (zh) * 2014-10-10 2015-01-28 浪潮集团有限公司 一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法
CN105338078A (zh) * 2015-10-26 2016-02-17 北京百度网讯科技有限公司 用于存储系统的数据存储方法和装置
CN106802892A (zh) * 2015-11-26 2017-06-06 阿里巴巴集团控股有限公司 用于主备数据一致性校验的方法和设备
CN107193821A (zh) * 2016-03-14 2017-09-22 阿里巴巴集团控股有限公司 监控方法和系统
CN107784043A (zh) * 2016-08-31 2018-03-09 北京京东尚科信息技术有限公司 数据仓库数据表的监控方法、装置及系统
CN109547269A (zh) * 2019-01-04 2019-03-29 烽火通信科技股份有限公司 一种ip ran设备实现lsp保护的方法及装置
CN109710688A (zh) * 2018-11-26 2019-05-03 福建天泉教育科技有限公司 一种数据实时比对校验方法及消息中间件
CN111988155A (zh) * 2019-05-22 2020-11-24 烽火通信科技股份有限公司 一种集群设备的主备框间配置同步方法及系统
CN113672639A (zh) * 2021-08-27 2021-11-19 成都长城开发科技有限公司 多类型数据库表结构对比方法、系统、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689697A (en) * 1994-06-27 1997-11-18 International Business Machines Corporation System and method for asynchronous database command processing
CN101409614A (zh) * 2007-10-12 2009-04-15 华为技术有限公司 一种数据同步方法、系统和设备
CN102194009A (zh) * 2011-06-09 2011-09-21 北京新媒传信科技有限公司 一种数据库托管方法和一种数据库托管平台系统
CN102541927A (zh) * 2010-12-30 2012-07-04 北京新媒传信科技有限公司 一种实现数据缓存的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402562A (zh) * 2010-09-14 2012-04-04 中兴通讯股份有限公司 数据库异地容灾方法及系统
CN102982087B (zh) * 2012-11-01 2016-05-25 华为技术有限公司 一种检测数据库数据一致性的方法、装置及数据库系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689697A (en) * 1994-06-27 1997-11-18 International Business Machines Corporation System and method for asynchronous database command processing
CN101409614A (zh) * 2007-10-12 2009-04-15 华为技术有限公司 一种数据同步方法、系统和设备
CN102541927A (zh) * 2010-12-30 2012-07-04 北京新媒传信科技有限公司 一种实现数据缓存的方法和装置
CN102194009A (zh) * 2011-06-09 2011-09-21 北京新媒传信科技有限公司 一种数据库托管方法和一种数据库托管平台系统

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014067254A1 (zh) * 2012-11-01 2014-05-08 华为技术有限公司 一种检测数据库数据一致性的方法、装置及数据库系统
CN103324679B (zh) * 2013-05-28 2017-03-08 杭州朗和科技有限公司 一种缓存服务器中数据更新的控制方法和设备
CN103324679A (zh) * 2013-05-28 2013-09-25 杭州朗和科技有限公司 一种缓存服务器中数据更新的控制方法和设备
CN103605776A (zh) * 2013-11-28 2014-02-26 北京国双科技有限公司 信息数据库的数据处理方法和装置
CN103605776B (zh) * 2013-11-28 2017-04-12 北京国双科技有限公司 信息数据库的数据处理方法和装置
CN104021192A (zh) * 2014-06-13 2014-09-03 北京联时空网络通信设备有限公司 一种数据库更新方法及装置
CN104317737A (zh) * 2014-10-10 2015-01-28 浪潮集团有限公司 一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法
CN105338078A (zh) * 2015-10-26 2016-02-17 北京百度网讯科技有限公司 用于存储系统的数据存储方法和装置
CN105338078B (zh) * 2015-10-26 2019-01-01 北京百度网讯科技有限公司 用于存储系统的数据存储方法和装置
CN106802892B (zh) * 2015-11-26 2021-12-28 阿里巴巴集团控股有限公司 用于主备数据一致性校验的方法和设备
CN106802892A (zh) * 2015-11-26 2017-06-06 阿里巴巴集团控股有限公司 用于主备数据一致性校验的方法和设备
CN107193821A (zh) * 2016-03-14 2017-09-22 阿里巴巴集团控股有限公司 监控方法和系统
CN107784043A (zh) * 2016-08-31 2018-03-09 北京京东尚科信息技术有限公司 数据仓库数据表的监控方法、装置及系统
CN107784043B (zh) * 2016-08-31 2022-04-12 北京京东尚科信息技术有限公司 数据仓库数据表的监控方法、装置及系统
CN109710688A (zh) * 2018-11-26 2019-05-03 福建天泉教育科技有限公司 一种数据实时比对校验方法及消息中间件
CN109710688B (zh) * 2018-11-26 2021-10-08 福建天泉教育科技有限公司 一种数据实时比对校验方法及消息中间件
CN109547269B (zh) * 2019-01-04 2021-12-14 烽火通信科技股份有限公司 一种ip ran设备实现lsp保护的方法及装置
CN109547269A (zh) * 2019-01-04 2019-03-29 烽火通信科技股份有限公司 一种ip ran设备实现lsp保护的方法及装置
CN111988155A (zh) * 2019-05-22 2020-11-24 烽火通信科技股份有限公司 一种集群设备的主备框间配置同步方法及系统
CN113672639A (zh) * 2021-08-27 2021-11-19 成都长城开发科技有限公司 多类型数据库表结构对比方法、系统、设备及存储介质
CN113672639B (zh) * 2021-08-27 2024-04-26 成都长城开发科技股份有限公司 多类型数据库表结构对比方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN102982087B (zh) 2016-05-25
WO2014067254A1 (zh) 2014-05-08

Similar Documents

Publication Publication Date Title
CN102982087A (zh) 一种检测数据库数据一致性的方法、装置及数据库系统
CN109873904B (zh) 消息推送的用户消息状态上报处理方法、装置及存储介质
CN102291416B (zh) 一种客户端与服务器端双向同步的方法及系统
CN111078147B (zh) 一种缓存数据的处理方法、装置、设备及存储介质
KR101663215B1 (ko) 데이터 저장 방법 및 장치
CN103744906A (zh) 一种数据同步系统、方法及装置
EP3722973A1 (en) Data processing method and device for distributed database, storage medium, and electronic device
CN111625383B (zh) 进程异常事件处理方法、装置、电子设备及存储介质
CN103716384A (zh) 跨数据中心实现云存储数据同步的方法和装置
CN104462342B (zh) 数据库快照同步处理方法及装置
CN110740155A (zh) 分布式系统中的请求处理方法及装置
CN103034650A (zh) 一种数据处理系统和方法
CN104517067A (zh) 访问数据的方法、装置及系统
CN105607968A (zh) 一种增量备份方法及设备
CN112506432A (zh) 一种动静分离的电力自动化系统实时数据存储和管理方法及装置
CN102436405B (zh) 一种进程上下文保存、篡改检测方法及装置
CN111309740A (zh) 一种数据处理的方法、装置、设备及存储介质
CN111708576A (zh) 跨操作系统的设备网卡适配和管理方法、装置及系统
TW200500872A (en) System, method and computer readable storage medium for automated equipment automation program (EAP) refresh
CN105511808A (zh) 一种数据操作方法、系统及相关装置
CN111984723A (zh) 数据同步方法、装置及终端设备
CN113760950B (zh) 指标数据查询方法、装置、电子设备以及存储介质
CN111376255A (zh) 机器人数据采集方法、装置及终端设备
CN110569231B (zh) 数据迁移方法、装置、设备和介质
TW201431319A (zh) 資料中心基板管理控制器管理系統及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant