CN102549550B - 一种数据访问方法及系统 - Google Patents

一种数据访问方法及系统 Download PDF

Info

Publication number
CN102549550B
CN102549550B CN201180003067.5A CN201180003067A CN102549550B CN 102549550 B CN102549550 B CN 102549550B CN 201180003067 A CN201180003067 A CN 201180003067A CN 102549550 B CN102549550 B CN 102549550B
Authority
CN
China
Prior art keywords
data area
main
module
abnormal
standby
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
Application number
CN201180003067.5A
Other languages
English (en)
Other versions
CN102549550A (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 Cloud Computing 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
Publication of CN102549550A publication Critical patent/CN102549550A/zh
Application granted granted Critical
Publication of CN102549550B publication Critical patent/CN102549550B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及信息技术领域,尤其涉及一种数据访问方法及系统。本发明实施例提供一种数据访问方法,在主用数据区发生异常时,主备数据区切换模块将备用数据区的信息更新为主用数据区的信息。通过本发明实施例提供的方法,应用模块在主用数据区发生异常时仍能提供连续的服务。

Description

一种数据访问方法及系统
技术领域
本发明涉及信息技术(Information Technology,简称:IT)领域,尤其涉及一种数据访问方法及系统。
背景技术
现有的数据的处理系统中,应用模块直接访问数据区读写数据,并根据操作系统提供的互斥机制保证某一时刻只有一个应用模块有权限访问数据区读写数据。
应用模块访问数据区时,生成读写操作日志,在数据区中的数据异常时,应用模块根据读写操作日志恢复数据区中的数据。
通过对现有技术的分析,发明人认为现有技术至少存在以下问题:
当数据区中的数据发生异常时,在使用读写日志恢复数据之前,数据区中的数据是不可用的,应用模块不能继续访问数据区读写数据,使得应用模块在恢复数据期间不能提供连续的服务。
发明内容
本发明实施例的目的在于提供一种数据异常的处理方法、系统及装置,使得应用模块在主用数据区发生异常时能够提供连续的服务。
本发明实施例提供的一种数据访问的方法,包括:
应用模块根据主用数据区的信息访问所述主用数据区的数据,并监控是自身或者所述主用数据区是否发生异常,其中,所述主用数据区的信息存储在主备数据区切换模块,所述主用数据区的信息包括所述主用数据区的地址或标识;
若所述应用模块监控到自身或者所述主用数据区有异常发生,所述应用模块向数据区异常判决模块发送第一异常指示,所述第一异常指示携带应用模块异常标识或主用数据区异常标识;
所述数据区异常判决模块根据所述第一异常指示确定所述主用数据区是否发生异常,若是,则向所述主备数据区切换模块发送第二异常指示;
所述主备数据区切换模块根据所述第二异常指示,将备用数据区的信息更新为所述主用数据区的信息,以便所述应用模块根据更新后的主用数据区的信息访问数据,其中,所述备用数据区的信息的信息存储在主备数据区切换模块,所述备用数据区的信息包括所述备用数据区的地址或标识。
本发明实施例提供的一种数据访问系统,包括:应用模块,数据区异常判决模块,主备数据区切换模块以及主用数据区,其中,
所述应用模块,用于根据主用数据区的信息访问所述主用数据区的数据,并监控自身或者所述主用数据区是否发生异常,若监控到自身或者所述主用数据区有异常发生,则向所述数据区异常判决模块发送第一异常指示,其中,所述主用数据区的信息包括所述主用数据区的地址或标识,所述第一异常指示携带应用模块异常标识或主用数据区异常标识;
所述数据区异常判决模块,用于根据所述应用模块发送的第一异常指示,确定所述主用数据区是否发生异常,若是,则向所述主备数据区切换模块发送第二异常指示;
所述主备数据区切换模块,用于根据所述数据区异常判决模块发送的第二异常指示,将备用数据区的信息更新为主用数据区的信息,以便所述应用模块根据更新后的主用数据区的信息访问数据,所述备用数据区的信息包括所述备用数据区的地址或标识;
所述主备数据区切换模块还用于存储所述主用数据区的信息以及所述备用数据区的信息;
所述主用数据区,用于存储所述应用模块访问的数据。
本发明实施例提供的一种数据访问方法及系统,在主用数据区发生异常时,主备数据区切换模块将备用数据区的信息更新为主用数据区的信息,使得应用模块在主用数据区发生异常时仍能够提供连续的服务。
附图说明
图1为本发明实施例提供的一种数据访问架构图;
图2为本发明实施例提供的在图1的架构图下一种数据访问方法;
图3为本发明实施例提供的在图1的架构图方法实施例二的实现流程图;
图4为本发明实施例提供的一种数据访问系统。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
如图1所示,为本发明实施例提供的一种数据访问的架构图。其中,应用模块根据主备数据区切换模块的主用数据区的信息,访问主用数据区的数据进行读写操作,在应用模块监控到有异常发生时,应用模块向数据区异常判决模块发送第一异常指示,数据区异常判决模块根据第一异常指示确定主用数据区是否发生异常,并在主用数据区发生异常时,向主备数据区切换模块发送第二异常指示,主备数据区切换模块根据第二异常指示将备用数据区的信息更新为主用数据区的信息更新为主用数据区的信息,使得应用模块能够根据更新后的主用数据区的信息访问数据,保证了在主用数据区发生异常时能够提供连续的服务。
其中,需要说明的是,应用模块可以包括应用处理子模块以及数据访问子模块,其中,数据访问子模块提供了读写数据的接口,可直接对数据区进行访问,数据访问子模块可以是专用的硬件模块,也可以是实现读写数据功能的函数库,通过操作系统提供的互斥机制,可以保证同一时刻只有一个数据访问子模块能够获得主用数据区的访问权限;应用处理子模块处理上层应用,并通过数据访问子模块访问主用数据区的数据。
从图1可知,主备数据区切换模块中保存了主用数据区的信息以及备用数据区的信息,所述主用数据区的信息包括但不限于所述主用数据区的地址或标识,所述备用数据区的信息包括但不限于所述备用数据区的地址或标识。从图1可知,数据区包括一个主用数据区以及至少一个备用数据区,备用数据区与主用数据区的数据保持一致,其中,主用数据区为应用模块访问数据进行读写操作的数据区,用于存储应用模块访问的数据。
在此,需要指出的是,主用数据区以及备用数据区可以是任何能被应用模块访问的存储器,该存储器包括易失性存储设备和非易失性存储设备、可移动存储设备和不可移动存储设备。作为示例,而非限制,所述存储器中的存储介质包括包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字化多功能光盘(DVD)或其他光学存储技术、磁卡、磁带、磁盘或其他磁性存储设备、或任何其他可用于存储所需信息并可由所述应用模块访问的存储介质。
在此,需要进一步指出的是,备用数据区可以有一个或多个,备用数据区的数目并不构成对本发明的限制。
从图1可知,在应用模块访问主用数据区进行写操作时,主备数据区复制模块接收应用模块发送的写操作参数,根据所述写操作参数对备用数据区进行写操作,使得备用数据区中的数据与主用数据区中的数据保持一致,其中,所述写操作参数包括主用数据区的写操作的类型以及主用数据区的写操作的操作数。
如图2所示,为本发明实施例提供的在图1的架构图下的一种数据访问方法,包括:
S201:应用模块根据主用数据区的信息访问所述主用数据区的数据,并监控是否有异常,其中,所述主用数据区的信息存储在主备数据区切换模块,所述主用数据区的信息包括所述主用数据区的地址或标识;
其中,本发明实施例提供的应用模块访问所述主用数据区进行写操作时,向主备数据区复制模块写入写操作参数,所述写操作参数包括所述主用数据区的写操作的类型以及所述主用数据区的写操作的操作数;所述主备数据区复制模块根据备用数据区的信息以及所述写操作参数,对所述备用数据区进行写操作,从而使得所述备用数据区中的数据与所述主用数据区中的数据保持一致;
需要说明的是,所述应用模块根据所述主用数据区的信息访问所述主用数据区进行写操作时,对于增加或者更新操作,所述应用模块实时计算数据的校验码,并将所述数据的校验码写入所述主用数据区,以便应用模块在读数据时,可以对数据进行校验,从而确定主用数据区是否发生异常;主备数据区复制模块在接收到写操作参数时,对备用数据区执行与上述相同的操作;
需要说明的是,所述应用模块监控是否有异常发生的方式,具体包括:
所述应用模块监控自身或者主用数据区是否发生异常;
S202:若所述应用模块监控到有异常发生,所述应用模块向数据区异常判决模块发送第一异常指示;
其中,需要说明的是,若所述应用模块发生异常,所述应用模块向所述数据区异常判决模块发送所述第一异常指示,所述第一异常指示携带应用模块异常标识;或者,
若所述主用数据区发生异常,所述应用模块向所述数据区异常判决模块发送所述第一异常指示,所述第一异常指示携带主用数据区异常标识;
需要说明的是,所述应用模块异常标识包括应用模块标识以及异常类型,所述主用数据区异常标识包括所述主用数据区的标识或地址,以及异常类别;
S203:所述数据区异常判决模块根据所述第一异常指示确定所述主用数据区是否发生异常,若是,则向所述主备数据区切换模块发送第二异常指示;
其中,本发明实施例提供的所述数据区异常判决模块根据所述第一异常指示确定所述主用数据区是否发生异常的方式,可以包括以下任一方式:
方式一:若所述第一异常指示携带所述主用数据区异常标识,所述数据区异常判决模块直接确定所述主用数据区发生异常;
方式二:若所述第一异常指示携带所述应用模块异常标识,所述数据区异常判决模块对所述主用数据区中的数据进行数据校验,若校验出错,所述数据区异常判决模块确定所述主用数据区发生异常;
需要说明的是,所述数据区异常判决模块根据数据的校验码对主用数据区中的数据进行数据校验;
S204:所述主备数据区切换模块根据所述第二异常指示,将备用数据区的信息更新为主用数据区的信息,以便所述应用模块根据更新后的主用数据区的信息访问数据,其中,所述备用数据区的信息的信息存储在主备数据区切换模块,所述备用数据区的信息包括所述备用数据区的地址或标识。
本发明实施例提供的一种数据访问方法,在主用数据区发生异常时,主备数据区切换模块将备用数据区的信息更新为主用数据区的信息,使得应用模块在主用数据区发生异常时仍能够提供连续的服务,其次,在访问主用数据区进行写操作时,应用模块向主备数据区复制模块写入主用数据区的写操作参数,使得主备数据区复制模块根据主用数据区的写操作参数对备用数据区进行写操作,从而使得备用数据区中的数据与主用数据区中的数据保持一致,另外,应用模块在确定自身发生异常后,即向数据区异常判决模块发送携带应用模块异常标识的第一异常,使得数据区异常判决模块能够及时确定应用模块异常是否导致主用数据区异常,从而使得在访问异常数据之前就能发现数据异常。
如图3所示,为本发明实施例提供的在图1的架构图下方法实施例二的实现流程图,该实施例包括:
S301:应用模块从主备数据区切换模块获得主用数据区的信息;
其中,需要说明的是,所述应用模块从主备数据区切换模块获得所述主用数据区的信息的方式,可以包括:
所述应用模块向所述主备数据区切换模块发送主用数据区的信息请求消息,并通过主用数据区的信息响应消息接收所述主备数据区切换模块发送的所述主用数据区的信息;
S302:所述应用模块根据所述主用数据区的信息访问主用数据区的数据,并监控是否有异常,若有异常,执行步骤S305;
其中,需要说明的是,若所述应用模块根据所述主用数据区的信息访问主用数据区的数据进行写操作,所述应用模块还需执行步骤S303,其中,所述写操作包括但不限于增加、删除或更新数据的操作;
其中,所述应用模块根据所述主用数据区的信息访问所述主用数据区的数据进行写操作时,对于增加或者更新操作,所述应用模块计算数据的校验码,并将所述数据的校验码写入所述主用数据区,以便应用模块在读数据时,可以对数据进行校验,从而确定主用数据区是否发生异常;
需要说明的是,本发明实施例提供的所述应用模块监控是否有异常发生的方式,具体包括:
所述应用模块监控自身或者主用数据区是否发生异常;
需要说明的是,本发明实施例提供的所述应用模块监控所述应用模块是否发生异常的方式,可以包括以下任一方式:
方式一:所述应用模块通过操作系统提供的互斥机制监控所述应用模块是否发生异常,例如,在所述应用模块获得所述主用数据区的访问权限后,由于软件错误或其他异常而退出运行,在退出运行之前没有释放所述主用数据区的访问权限,从而导致死锁错误的发生,通过操作系统提供的互斥机制可以检测到该死锁错误,以监控所述应用模块是否发生异常;
方式二:在所述应用模块与其他应用模块之间,采用心跳技术或者看门狗技术监控所述应用模块是否发生异常;
其中,本发明实施例提供的所述应用模块监控所述主用数据区是否发生异常的方式包括:
所述应用模块访问所述主用数据区的数据进行读操作时,对所读的数据进行校验;
若校验出错,所述应用模块确定所述主用数据区发生异常;
需要说明的是,所述应用模块根据访问主用数据区的数据进行写操作时保存的所写数据的校验码,对数据进行校验;
S303:所述应用模块向主备数据区复制模块写入写操作参数,所述写操作参数包括所述主用数据区的写操作的类型以及所述主用数据区的写操作的操作数;
其中,本发明实施例提供的所述应用模块向所述主备数据区复制模块写入写操作参数的方式,包括:
所述应用模块按照所述主用数据区写操作的先后顺序向所述主备数据区复制模块写入所述写操作参数,使得所述主备数据区复制模块按照先进先出的方式进行写操作;
需要说明的是,所述应用模块按照所述主用数据区写操作的先后顺序向所述主备数据区复制模块写入所述写操作参数的方式,可以包括以下任一方式:
方式一:所述应用模块按照所述主用数据区写操作的先后顺序向所述主备数据区复制模块中的数据区复制队列写入所述写操作参数;
方式二:所述数据访问模块按照所述主用数据区写操作的先后顺序向所述主备数据区复制模块中的读写操作日志写入所述写操作参数;
需要说明的是,若所述主备数据区复制模块为多个,每一个主备数据区复制模块负责自身管辖的备用数据区的数据备份,则,所述接收到所述写操作参数的主备数据区复制模块还需向其他主备数据区复制模块发送所述写操作参数;
优选地,本发明实施例提供的所述应用模块在访问所述主用数据区的数据进行完成写操作后,向所述主备数据区复制模块写入所述写操作参数;
S304:所述主备数据区复制模块根据备用数据区的信息以及所述写操作参数,对所述备用数据区进行写操作,使得所备用数据区中的数据与所述主用数据区中的数据保持一致,其中,所述备用数据区的信息存储在所述主备数据区切换模块,所述备用数据区的信息包括所述备用数据区的地址或标识;
其中,本发明实施例提供的所述主备数据区复制模块根据备用数据区的信息以及所述写操作参数,对所述备用数据区进行写操作的方式,包括:
所述主备数据区复制模块判断所述写操作参数是否有效,若有效,所述主备数据区复制模块根据所述备用数据区的信息以及所述写操作参数,对所述备用数据区进行写操作。
需要说明的是,所述主备数据区复制模块判断所述写操作参数是否有效的方式,可以包括以下任一方式:
方式一:所述应用模块将所述写操作参数写入到所述主备数据区复制模块后,将与所述写操作参数关联的写入完成标识写入到所述主备数据区复制模块,所述主备数据区复制模块根据所述写入完成标识,判断所述写操作参数是否有效,例如,若所述应用模块在向所述主备数据区复制模块写入所述写操作参数的过程中,所述应用模块发生异常,所述应用模块将不会向所述主备数据区复制模块写入与所述写操作参数关联的写入完成标识,若所述主备数据区复制模块确定有与所述写操作参数关联的写入完成标识,所述主备数据区复制模块判断所述写操作参数有效,否则,所述主备数据区复制模块判断所述写操作参数无效;
方式二:所述主备数据区复制模块判断所述写操作参数中的操作类型与所述写操作参数中的操作数是否匹配,若匹配,所述主备数据区复制模块判断所述写操作参数有效,否则述主备数据区复制模块判断所述写操作参数无效,例如,若一个插入操作需要两个字符串类型的操作数,则,当所述主备数据区复制模块接收到包含插入操作类型的写操作参数时,所述主备数据区复制模块判断所述写操作参数中的操作数是否是两个字符串类型的操作数,若是,则判断有效,否则,判断无效;
其中,需要说明的是,所述主备数据区复制模块在判断所述写操作参数无效后,将不会访问备用数据区的数据进行写操作,从而避免了把异常的数据写入备用数据区;
S305:所述应用模块向数据区异常判决模块发送第一异常指示;
其中,需要说明的是,若所述应用模块发生异常,所述应用模块向所述数据区异常判决模块发送所述第一异常指示,所述第一异常指示携带应用模块异常标识;或者,
若所述主用数据区发生异常,所述应用模块向所述数据区异常判决模块发送所述第一异常指示,所述第一异常指示携带主用数据区异常标识;
需要说明的是,所述应用模块异常标识包括应用模块标识以及异常类型,所述主用数据区异常标识包括所述主用数据区的标识或地址,以及异常类别;
在此,需要注意的是,本步骤S305可以在步骤S303之前、之后或同时发生,并不存在先后顺序;
S306:所述数据区异常判决模块根据所述第一异常指示确定所述主用数据区是否发生异常,若是,执行步骤S307;
其中,本发明实施例提供的所述数据区异常判决模块根据所述第一异常指示确定所述主用数据区是否发生异常的方式,可以包括以下任一方式:
方式一:若所述第一异常指示携带所述主用数据区异常标识,所述数据区异常判决模块直接确定所述主用数据区发生异常;
方式二:若所述第一异常指示携带所述应用模块异常标识,所述数据区异常判决模块对所述主用数据区中的数据进行数据校验,若校验出错,所述数据区异常判决模块确定所述主用数据区发生异常;
需要说明的是,所述数据区异常判决模块根据数据的校验码对主用数据区中的数据进行数据校验;
S307:所述数据区异常判决模块向主备数据区切换模块发送第二异常指示;
S308:所述主备数据区切换模块根据所述第二异常指示,将所述备用数据区的信息更新为主用数据区的信息,以便所述应用模块根据更新后的主用数据区的信息访问数据;
其中,需要说明的是,所述主备数据区切换模块将所述备用数据区的信息更新为主用数据区的信息后,原来的主用数据区变为备用数据区,原来的备用数据区变为主用数据区,应用模块根据更新后的主用数据区的信息访问数据,保证了应用模块在主用数据区异常时能够提供连续的服务。
其中,本发明实施例中的所述应用模块还可以通过数据访问代理模块,根据所述主用数据区的信息访问所述主用数据区的数据进行读写操作;
需要说明的是,本发明实施例中,若所述主备数据区切换模块为多个,所述接收到所述第二异常指示的主备数据区切换模块将更新后的主用数据区的信息发送给其他主备数据区切换模块,使得所述其他主备数据区切换模块更新自身保存的主用数据区的信息。
本发明实施例提供的方法实施例二,在主用数据区发生异常时,主备数据区切换模块将备用数据区的信息更新为主用数据区的信息,使得应用模块在主用数据区发生异常时仍能够提供连续的服务,其次,在访问主用数据区进行写操作时,应用模块向主备数据区复制模块写入主用数据区的写操作参数,使得主备数据区复制模块根据主用数据区的写操作参数对备用数据区进行写操作,从而使得备用数据区中的数据与主用数据区中的数据保持一致,另外,应用模块在确定自身发生异常后,即向数据区异常判决模块发送携带应用模块异常标识的第一异常,使得数据区异常判决模块能够及时确定应用模块异常是否导致主用数据区异常,从而使得在访问异常数据之前就能发现数据异常,再次,应用模块在访问主用数据区的数据进行读操作时,对所读的数据进行校验,使得应用模块首次访问异常数据就能发现异常,以便主备数据区切换模块更新主用数据区的信息,使得应用模块在数据异常时,能够提供连续的服务,此外,主备数据区复制模块在接收到的写操作参数有效时,才访问备用数据区进行写操作,从而避免了把异常的数据写入备用数据区,并且,所述应用模块按照主用数据区写操作的先后顺序的先后顺序向主备数据区复制模块写入写操作参数,使得备用数据区写操作的顺序与主用数据区写操作的顺序一致,使得主用数据区中的数据与备用数据区中的数据保持一致。
如图4所示,为本发明实施例提供的一种数据访问系统,包括:应用模块401,数据区异常判决模块402,主备数据区切换模块403以及主用数据区404,其中,
所述应用模块401,用于根据主用数据区的信息访问所述主用数据区404的数据,并监控是否有异常,若监控到有异常发生,则向所述数据区异常判决模块402发送第一异常指示,其中,所述主用数据区的信息包括所述主用数据区的地址或标识;
所述数据区异常判决模块402,用于根据所述应用模块401发送的第一异常指示,确定所述主用数据区404是否发生异常,若是,则向所述主备数据区切换模块403发送第二异常指示;
所述主备数据区切换模块403,用于根据所述数据区异常判决模块402发送的第二异常指示,将备用数据区的信息更新为主用数据区的信息,以便所述应用模块401根据更新后的主用数据区的信息访问数据,所述备用数据区的信息包括所述备用数据区的地址或标识;
所述主备数据区切换模块403还用于存储所述主用数据区的信息以及所述备用数据区的信息;
所述主用数据区404,用于存储所述应用模块401访问的数据。
其中,本发明实施例提供的系统还包括:
主备数据区复制模块,在所述应用模块401访问所述主用数据区404的数据进行写操作时,所述主备数据区复制模块用于接收所述应用模块401写入的写操作参数,并根据备用数据区的信息以及所述写操作参数,对所述备用数据区进行写操作,其中,所述写操作参数包括所述主用数据区的写操作的类型以及所述主用数据区的写操作的操作数;
备用数据区,用于对所述主用数据区404中的数据进行备份。
需要说明的是,所述主备数据区复制模块还用于判断所述写操作参数是否有效,若有效,则执行对所述备用数据区进行写操作的步骤。
需要说明的是,所述应用模块401具体用于根据主用数据区的信息访问所述主用数据区404的数据,并监控是否有异常,若监控到有异常发生,则按照所述主用数据区404写操作的先后顺序向所述主备数据区复制模块写入所述写操作参数。
需要说明的是,所述主备数据区复制模块具体用于接收所述应用模块401按照所述主用数据区404写操作的先后顺序写入的写操作参数,并根据备用数据区的信息以及所述写操作参数,按照先进先出的方式对所述备用数据区进行写操作。
需要指出的是,所述主备数据区复制模块可以为多个,则所述接收到所述写操作参数的主备数据区复制模块还用于向其他主备数据区复制模块发送所述写操作参数。
需要指出的是,所述应用模块401具体用于根据主用数据区的信息访问所述主用数据区404的数据,并监控自身或者所述主用数据区是否发生异常;
若所述应用模块401发生异常,则向所述数据区异常判决模块402发送所述第一异常指示,所述第一异常指示携带应用模块异常标识;或者,
若所述主用数据区404发生异常,则向所述数据区异常判决模块402发送所述第一异常指示,所述第一异常指示携带主用数据区异常标识。
需要说明的是,所述数据区异常判决模块402具体用于根据携带所述主用数据区异常标识的第一异常指示,直接确定所述主用数据区发生异常,并向所述主备数据区切换模块403发送所述第二异常指示;或者,
具体用于根据携带所述应用模块异常标识的第一异常指示,对所述主用数据区404中的数据进行数据校验,若校验出错,则确定所述主用数据区发生异常,并向所述主备数据区切换模块403发送所述第二异常指示。
需要说明的是,所述应用模块401具体用于根据所述主用数据区的信息访问所述主用数据区404的数据,通过操作系统提供的互斥机制监控所述应用模块401是否发生异常,或者在所述应用模块401与其他应用模块之间,采用心跳技术或看门狗技术监控所述应用模块401是否发生异常;
若所述应用模块401发生异常,则向所述数据区异常判决模块402发送所述第一异常指示,所述第一异常指示携带应用模块异常标识。
需要说明的是,在访问所述主用数据区404的数据进行读操作时,所述应用模块401具体用于对所读的数据进行校验,若校验出错,则确定所述主用数据区发生异常,并向所述数据区异常判决模块402发送所述第一异常指示,所述第一异常指示携带主用数据区异常标识。
需要说明的是,本发明实施例提供的系统还包括:
数据访问代理模块,用于根据所述应用模块401发送的对所述主用数据区404的读写操作请求,访问所述主用数据区404的数据进行读写操作,并将读写操作结果返回所述应用模块401。
需要说明的是,所述主备数据区切换模块403可以为多个,所述接收到所述第二异常指示的主备数据区切换模块将更新后的主用数据区的信息发送给其他主备数据区切换模块,使得所述其他主备数据区切换模块更新自身保存的主用数据区的信息。
本发明实施例还提供一种计算机可读取存储介质,该存储介质包括计算机程序,当计算机单元实施所述计算机程序时,所述计算机单元实现如下方法:
应用模块根据主用数据区的信息访问所述主用数据区的数据,并监控是否有异常,其中,所述主用数据区的信息存储在主备数据区切换模块,所述主用数据区的信息包括所述主用数据区的地址或标识;
若所述应用模块监控到有异常发生,所述应用模块向数据区异常判决模块发送第一异常指示;
所述数据区异常判决模块根据所述第一异常指示确定所述主用数据区是否发生异常,若是,则向所述主备数据区切换模块发送第二异常指示;
所述主备数据区切换模块根据所述第二异常指示,将备用数据区的信息更新为所述主用数据区的信息,以便所述应用模块根据更新后的主用数据区的信息访问数据,其中,所述备用数据区的信息的信息存储在主备数据区切换模块,所述备用数据区的信息包括所述备用数据区的地址或标识。
本发明实施例提供的一种数据访问方法及系统,在主用数据区发生异常时,主备数据区切换模块将备用数据区的信息更新为主用数据区的信息,使得应用模块在主用数据区发生异常时仍能够提供连续的服务,其次,在访问主用数据区进行写操作时,应用模块向主备数据区复制模块写入主用数据区的写操作参数,使得主备数据区复制模块根据主用数据区的写操作参数对备用数据区进行写操作,从而使得备用数据区中的数据与主用数据区中的数据保持一致,另外,应用模块在确定自身发生异常后,即向数据区异常判决模块发送携带应用模块异常标识的第一异常,使得数据区异常判决模块能够及时确定应用模块异常是否导致主用数据区异常,从而使得在访问异常数据之前就能发现数据异常,再次,应用模块在访问主用数据区的数据进行读操作时,对所读的数据进行校验,使得应用模块首次访问异常数据就能发现异常,以便主备数据区切换模块更新主用数据区的信息,使得应用模块在数据异常时,能够提供连续的服务,此外,主备数据区复制模块在接收到的写操作参数有效时,才访问备用数据区进行写操作,从而避免了把异常的数据写入备用数据区,并且,所述应用模块按照主用数据区写操作的先后顺序的先后顺序向主备数据区复制模块写入写操作参数,使得备用数据区写操作的顺序与主用数据区写操作的顺序一致,使得主用数据区中的数据与备用数据区中的数据保持一致。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (22)

1.一种数据访问方法,其特征在于,该方法包括:
应用模块根据主用数据区的信息访问所述主用数据区的数据,并监控自身或者所述主用数据区是否发生异常,其中,所述主用数据区的信息存储在主备数据区切换模块,所述主用数据区的信息包括所述主用数据区的地址或标识;
若所述应用模块监控到自身或者所述主用数据区有异常发生,所述应用模块向数据区异常判决模块发送第一异常指示,所述第一异常指示携带应用模块异常标识或主用数据区异常标识;
所述数据区异常判决模块根据所述第一异常指示确定所述主用数据区是否发生异常,若是,则向所述主备数据区切换模块发送第二异常指示;
所述主备数据区切换模块根据所述第二异常指示,将备用数据区的信息更新为所述主用数据区的信息,以便所述应用模块根据更新后的主用数据区的信息访问数据,其中,所述备用数据区的信息的信息存储在主备数据区切换模块,所述备用数据区的信息包括所述备用数据区的地址或标识。
2.根据权利要求1所述的方法,其特征在于,还包括:
在访问所述主用数据区的数据进行写操作时,所述应用模块向主备数据区复制模块写入写操作参数,所述写操作参数包括所述主用数据区的写操作的类型以及所述主用数据区的写操作的操作数,
则,所述主备数据区复制模块根据备用数据区的信息以及所述写操作参数,对所述备用数据区进行写操作。
3.根据权利要求2所述的方法,其特征在于,还包括:
所述主备数据区复制模块判断所述写操作参数是否有效,若有效,执行对所述备用数据区进行写操作的步骤。
4.根据权利要求2或3所述的方法,其特征在于,所述应用模块向所述主备数据区复制模块写入所述写操作参数,包括:
所述应用模块按照所述主用数据区写操作的先后顺序向所述主备数据区复制模块写入所述写操作参数,使得所述主备数据区复制模块按照先进先出的方式进行写操作。
5.根据权利要求4所述的方法,所述应用模块按照所述主用数据区写操作的先后顺序向所述主备数据区复制模块写入所述写操作参数,包括:
所述应用模块按照所述主用数据区写操作的先后顺序向所述主备数据区复制模块中的数据区复制队列写入所述写操作参数;或者,
所述数据访问模块按照所述主用数据区写操作的先后顺序向所述主备数据区复制模块中的读写操作日志写入所述写操作参数。
6.根据权利要求2或3所述的方法,其特征在于,所述主备数据区复制模块为多个,所述方法还包括:
所述接收到所述写操作参数的主备数据区复制模块向其他主备数据区复制模块发送所述写操作参数。
7.根据权利要求1所述的方法,其特征在于,所述数据区异常判决模块根据所述第一异常指示确定所述主用数据区是否发生异常,包括:
若所述第一异常指示携带所述主用数据区异常标识,所述数据区异常判决模块直接确定所述主用数据区发生异常;或者,
若所述第一异常指示携带所述应用模块异常标识,所述数据区异常判决模块对所述主用数据区中的数据进行数据校验,若校验出错,所述数据区异常判决模块确定所述主用数据区发生异常。
8.根据权利要求1所述的方法,其特征在于,所述应用模块监控自身是否发生异常,包括:
所述应用模块通过操作系统提供的互斥机制监控所述应用模块是否发生异常;或者
在所述应用模块与其他应用模块之间,采用心跳技术或者看门狗技术监控所述应用模块是否发生异常。
9.根据权利要求1所述的方法,其特征在于,所述应用模块监控所述主用数据区是否发生异常,包括:
所述应用模块访问所述主用数据区的数据进行读操作时,对所读的数据进行校验;
若校验出错,所述应用模块确定所述主用数据区发生异常。
10.根据权利要求1-3中任意一项权利要求所述的方法,其特征在于,所述应用模块根据所述主用数据区的信息访问所述主用数据区,包括:
所述应用模块通过数据访问代理模块,根据所述主用数据区的信息访问所述主用数据区。
11.根据权利要求1-3中任意一项权利要求所述的方法,其特征在于,所述主备数据区切换模块为多个,所述方法还包括:
所述接收到所述第二异常指示的主备数据区切换模块将更新后的主用数据区的信息发送给其他主备数据区切换模块,使得所述其他主备数据区切换模块更新自身保存的主用数据区的信息。
12.一种数据访问系统,其特征在于,包括:应用模块,数据区异常判决模块,主备数据区切换模块以及主用数据区,其中,
所述应用模块,用于根据主用数据区的信息访问所述主用数据区的数据,并监控自身或者所述主用数据区是否发生异常,若监控到自身或者所述主用数据区有异常发生,则向所述数据区异常判决模块发送第一异常指示,其中,所述主用数据区的信息包括所述主用数据区的地址或标识,所述第一异常指示携带应用模块异常标识或主用数据区异常标识;
所述数据区异常判决模块,用于根据所述应用模块发送的第一异常指示,确定所述主用数据区是否发生异常,若是,则向所述主备数据区切换模块发送第二异常指示;
所述主备数据区切换模块,用于根据所述数据区异常判决模块发送的第二异常指示,将备用数据区的信息更新为主用数据区的信息,以便所述应用模块根据更新后的主用数据区的信息访问数据,所述备用数据区的信息包括所述备用数据区的地址或标识;
所述主备数据区切换模块还用于存储所述主用数据区的信息以及所述备用数据区的信息;
所述主用数据区,用于存储所述应用模块访问的数据。
13.根据权利要求12所述的系统,其特征在于,还包括:
主备数据区复制模块,在所述应用模块访问所述主用数据区的数据进行写操作时,所述主备数据区复制模块用于接收所述应用模块写入的写操作参数,并根据备用数据区的信息以及所述写操作参数,对所述备用数据区进行写操作,其中,所述写操作参数包括所述主用数据区的写操作的类型以及所述主用数据区的写操作的操作数;
备用数据区,用于对所述主用数据区中的数据进行备份。
14.根据权利要求13所述的系统,其特征在于,所述主备数据区复制模块还用于判断所述写操作参数是否有效,若有效,则执行对所述备用数据区进行写操作的步骤。
15.根据权利要求13或14所述的系统,其特征在于,所述应用模块具体用于根据主用数据区的信息访问所述主用数据区的数据,并监控是否有异常,若监控到有异常发生,则按照所述主用数据区写操作的先后顺序向所述主备数据区复制模块写入所述写操作参数。
16.根据权利要求15所述的系统,其特征在于,所述主备数据区复制模块具体用于接收所述应用模块按照所述主用数据区写操作的先后顺序写入的写操作参数,并根据备用数据区的信息以及所述写操作参数,按照先进先出的方式对所述备用数据区进行写操作。
17.根据权利要求13或14所述的系统,其特征在于,所述主备数据区复制模块为多个,所述接收到所述写操作参数的主备数据区复制模块还用于向其他主备数据区复制模块发送所述写操作参数。
18.根据权利要求12或13所述的系统,其特征在于:
所述数据区异常判决模块具体用于根据携带所述主用数据区异常标识的第一异常指示,直接确定所述主用数据区发生异常,并向所述主备数据区切换模块发送所述第二异常指示;或者,
具体用于根据携带所述应用模块异常标识的第一异常指示,对所述主用数据区中的数据进行数据校验,若校验出错,则确定所述主用数据区发生异常,并向所述主备数据区切换模块发送所述第二异常指示。
19.根据权利要求12或13所述的系统,其特征在于,所述应用模块具体用于根据所述主用数据区的信息访问所述主用数据区的数据,通过操作系统提供的互斥机制监控所述应用模块是否发生异常,或者在所述应用模块与其他应用模块之间,采用心跳技术或看门狗技术监控所述应用模块是否发生异常;
若所述应用模块发生异常,则向所述数据区异常判决模块发送所述第一异常指示,所述第一异常指示携带应用模块异常标识。
20.根据权利要求12或13所述的系统,其特征在于,在访问所述主用数据区的数据进行读操作时,所述应用模块具体用于对所读的数据进行校验,若校验出错,则确定所述主用数据区发生异常,并向所述数据区异常判决模块发送所述第一异常指示,所述第一异常指示携带主用数据区异常标识。
21.根据权利要求12-14中任意一项权利要求所述的系统,其特征在于,还包括:
数据访问代理模块,用于根据所述应用模块发送的对所述主用数据区的读写操作请求,访问所述主用数据区的数据进行读写操作,并将读写操作结果返回所述应用模块。
22.根据权利要求12-14中任意一项权利要求所述的系统,其特征在于,所述主备数据区切换模块为多个,所述接收到所述第二异常指示的主备数据区切换模块将更新后的主用数据区的信息发送给其他主备数据区切换模块,使得所述其他主备数据区切换模块更新自身保存的主用数据区的信息。
CN201180003067.5A 2011-12-06 2011-12-06 一种数据访问方法及系统 Active CN102549550B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/083551 WO2013082759A1 (zh) 2011-12-06 2011-12-06 一种数据访问方法及系统

Publications (2)

Publication Number Publication Date
CN102549550A CN102549550A (zh) 2012-07-04
CN102549550B true CN102549550B (zh) 2013-10-09

Family

ID=46353960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180003067.5A Active CN102549550B (zh) 2011-12-06 2011-12-06 一种数据访问方法及系统

Country Status (2)

Country Link
CN (1) CN102549550B (zh)
WO (1) WO2013082759A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224891A (zh) * 2015-09-22 2016-01-06 苏州互盟信息存储技术有限公司 磁盘光盘融合数据安全存储方法、系统及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100485628C (zh) * 2006-09-15 2009-05-06 中兴通讯股份有限公司 一种升级过程中数据同步的方法
CN101106548B (zh) * 2007-07-10 2010-06-16 中兴通讯股份有限公司 实现多媒体消息业务系统存储容灾的装置及方法
CN102073832A (zh) * 2009-11-24 2011-05-25 中兴通讯股份有限公司 固定式rfid阅读器及其数据存储方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100426875C (zh) * 2001-12-20 2008-10-15 中兴通讯股份有限公司 数据主备内存处理方法
CN101212458A (zh) * 2006-12-25 2008-07-02 中兴通讯股份有限公司 一种数据库系统备份方法
CN101557315B (zh) * 2009-05-15 2011-12-21 成都市华为赛门铁克科技有限公司 一种主备切换方法、装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100485628C (zh) * 2006-09-15 2009-05-06 中兴通讯股份有限公司 一种升级过程中数据同步的方法
CN101106548B (zh) * 2007-07-10 2010-06-16 中兴通讯股份有限公司 实现多媒体消息业务系统存储容灾的装置及方法
CN102073832A (zh) * 2009-11-24 2011-05-25 中兴通讯股份有限公司 固定式rfid阅读器及其数据存储方法

Also Published As

Publication number Publication date
CN102549550A (zh) 2012-07-04
WO2013082759A1 (zh) 2013-06-13

Similar Documents

Publication Publication Date Title
US8943358B2 (en) Storage system, apparatus, and method for failure recovery during unsuccessful rebuild process
US9372743B1 (en) System and method for storage management
US8171379B2 (en) Methods, systems and media for data recovery using global parity for multiple independent RAID levels
JP5147824B2 (ja) Raidストレージ・システム、これを動作させる方法及びプログラム
WO2017215377A1 (zh) 内存硬错误的处理方法及装置
CN102135925B (zh) 用于检测错误检查和纠正内存的方法和装置
JP2009522664A (ja) メモリ障害を処理するために、センサーネットワークで使用可能な方法及びシステム
US20130318392A1 (en) Information processing apparatus, control method
US8117501B2 (en) Virtual library apparatus and method for diagnosing physical drive
CN102890647B (zh) 一种数据的存储与更新方法及装置
CN110597779A (zh) 一种分布式文件系统中的数据读写方法及相关装置
CN115620799A (zh) 基于固件仿真的故障现场回溯方法、设备及可读存储介质
CN111240903A (zh) 数据恢复方法及相关设备
US10783042B2 (en) System and method of assessing and managing storage device degradation
CN108170375B (zh) 一种分布式存储系统中的超限保护方法和装置
CN114385418A (zh) 通信设备的保护方法、装置、设备和存储介质
JP5760585B2 (ja) ストレージシステムおよび異常発生箇所判定方法
JP5104479B2 (ja) 情報処理装置
US20060075287A1 (en) Detecting data integrity
CN102549550B (zh) 一种数据访问方法及系统
CN113868023B (zh) 存储系统的快照方法、装置、电子设备及可读存储介质
CN105094712A (zh) 一种数据处理方法及装置
CN104618191A (zh) 一种主机与裸存储块之间的通信故障检测方法和装置
CN110795155B (zh) 系统启动方法及装置、电子设备、存储介质
CN104657227A (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
TR01 Transfer of patent right

Effective date of registration: 20220301

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right