CN114461455A - 一种流复制集群的磁盘坏块修复方法及装置 - Google Patents

一种流复制集群的磁盘坏块修复方法及装置 Download PDF

Info

Publication number
CN114461455A
CN114461455A CN202210129182.7A CN202210129182A CN114461455A CN 114461455 A CN114461455 A CN 114461455A CN 202210129182 A CN202210129182 A CN 202210129182A CN 114461455 A CN114461455 A CN 114461455A
Authority
CN
China
Prior art keywords
block
data
node
bad
bad block
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.)
Pending
Application number
CN202210129182.7A
Other languages
English (en)
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.)
Highgo Base Software Co ltd
Original Assignee
Highgo Base Software 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 Highgo Base Software Co ltd filed Critical Highgo Base Software Co ltd
Priority to CN202210129182.7A priority Critical patent/CN114461455A/zh
Publication of CN114461455A publication Critical patent/CN114461455A/zh
Pending legal-status Critical Current

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种流复制集群的磁盘坏块修复方法及装置,所述流复制集群中包括至少一个主节点和多个备节点,其中各备节点用于备份所述至少一个主节点的至少部分数据,磁盘坏块修复方法包括:在确定当前节点存在坏块的情况下,从其余节点中确定一个目标节点,所述目标节点包含与该坏块对应的数据块;根据该坏块的坏块参数,调用预设函数,以从所述目标节点获取对应的数据块的数据;对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块。本发明实施例的磁盘坏块修复方法在使用过程中,发现坏块,能够立即完成修复,用户请求几乎零延迟。在空闲业务状态下,能够主动发起坏块检测及修复,充分保障磁盘数据安全性和准确性。

Description

一种流复制集群的磁盘坏块修复方法及装置
技术领域
本发明涉及数据库技术,尤其涉及一种流复制集群的磁盘坏块修复方法及装置。
背景技术
数据库文件在写入到磁盘时可能遭遇各种异常(系统I/O错误、病毒破坏文件、人为误操作、宇宙射线辐射等),导致磁盘上的文件内容错误。
数据库提供了checksums机制在读取磁盘文件时进行检查,如果发现文件校验和失败则报错并终止当前事务或者对坏块进行写零操作。但是checksums只能检测到文件坏块,无法对其进行修复。
用户在使用传统的大型商业数据库的时候,存储一般会选专业的存储阵列。存储阵列一般自带高可用能力,典型的有RAID1,RAID5等等。在某个磁盘块甚至磁盘组出现故障时,能够不影响数据的访问。但是,在当前流行的国产系统中,使用的存储系统就简单得多,很多场景所使用的存储本身并不带高可用功能。此时,如果数据库管理的数据遇到磁盘的故障,数据块读不出来或者读出的数据不对,相应的数据库访问语句就会报错。在这种情况下,光靠高可用集群管理是不够的。因为普通的磁盘读取错误影响的是特定的语句,还没到需要切换服务器的程度。如果把高可用集群管理中的切换条件设置成包含磁盘读取错误,则服务器切换的阈值又显得过低,可能导致切换过于频繁。
存储的高可用,从数据库的角度,传统上都会采用磁盘镜像的模式。但普通的磁盘镜像对于性能和管理复杂度存在一定负担。因此需要一种磁盘坏块修复方法完成坏块修复。
发明内容
本发明实施例提供一种流复制集群的磁盘坏块修复方法及装置,用以在流复制集群中,选择一个目标节点,实现对坏块的覆写,从而完成坏块的修复。
本发明实施例提供一种流复制集群的磁盘坏块修复方法,所述流复制集群中包括至少一个主节点和多个备节点,其中各备节点用于备份所述至少一个主节点的至少部分数据,所述磁盘坏块修复方法包括:
在确定当前节点存在坏块的情况下,从其余节点中确定一个目标节点,所述目标节点包含与该坏块对应的数据块;
根据该坏块的坏块参数,调用预设函数,以从所述目标节点获取对应的数据块的数据;
对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块。
在一些实施例中,确定当前节点存在坏块是通过如下步骤实现的:
读取当前节点磁盘的各数据块中的数据,并计算校验参数;
将计算获得的校验参数与预设的校验参数进行对比;
在对比不一致的情况下,确定该数据块为坏块;
在对比一致的情况下,检查该数据块的头域;
在该数据块的头域存在逻辑错误的情况下,确定该数据块为坏块。
在一些实施例中,从其余节点中确定一个目标节点包括:
在确定主节点存在坏块的情况下,通过预设算法,在各备节点种选取一个目标节点,以使得目标节点中与该坏块对应的数据块具有最接近的数据版本;
在确定备节点存在坏块的情况下,将主节点作为目标节点。
在一些实施例中,所述磁盘坏块修复方法还包括:
在确定当前节点存在坏块的情况下,读取坏块链表信息,并基于所述坏块链表信息确定本地缓存中是否存在该坏块的数据;
在确定本地缓存中存在该坏块的数据的情况下,利用本地缓存修复该坏块;
在确定本地缓存中不存在该坏块的数据的情况下,从其余节点中确定一个目标节点。
在一些实施例中,对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块包括:
在确定主节点存在坏块的情况下,确定从目标节点获取的对应的数据块的数据库事务日志序列号LSN;
对比从目标节点获取的对应的数据块的LSN与主节点中当前数据库的LSN;
在从目标节点获取的对应的数据块的LSN等于或超过当前数据库的LSN的情况下,利用从目标节点获取的对应的数据块修复该坏块;
在从目标节点获取的对应的数据块的LSN落后于当前数据库的LSN的情况下,不执行修复,待下一轮检测。
在一些实施例中,对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块包括:
在确定备节点存在坏块的情况下,对比该备节点中当前数据库的LSN与从目标节点获取的对应的数据块的LSN;
若从目标节点获取的对应的数据块的LSN小于当前数据库的LSN,则执行修复;
若从目标节点获取的对应的数据块的LSN大于或等于当前数据库的LSN,不执行修复。
在一些实施例中,所述磁盘坏块修复方法还包括:
在用该数据块的数据修复该坏块之后,将修复的坏块信息更新到指定文件中。
在一些实施例中,所述磁盘坏块修复方法还包括:
在读取磁盘文件并检出坏块后,加载指定的动态库,调用预设修复函数执行修复。
本发明实施例还提出一种流复制集群的磁盘坏块修复装置,所述流复制集群中包括至少一个主节点和多个备节点,其中各备节点用于备份所述至少一个主节点的至少部分数据,所述磁盘坏块修复装置包括处理器,被配置为:
在确定当前节点存在坏块的情况下,从其余节点中确定一个目标节点,所述目标节点包含与该坏块对应的数据块;
根据该坏块的坏块参数,调用预设函数,以从所述目标节点获取对应的数据块的数据;
对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块。
本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本公开各实施例所述的流复制集群的磁盘坏块修复方法的步骤。
本发明实施例通过在流复制集群中,选择一个目标节点,从所述目标节点获取对应的数据块的数,并对获取的数据进行校验后用该数据块的数据修复该坏块,实现对坏块的覆写,从而完成坏块的修复。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例流复制集群的基本架构示意图;
图2为本发明实施例磁盘坏块修复方法的基本流程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种流复制集群的磁盘坏块修复方法,所述流复制集群中包括至少一个主节点和多个备节点,其中各备节点用于备份所述至少一个主节点的至少部分数据。如图1所示,本示例中备节点与主节点的区别在于备节点具有数据查询功能,而不具备其他数据操作的能力。备节点的所有数据均只来源于主节点。具体的在首次备份时,备节点可以从主节点复制所需的至少部分数据,后续只需要接收主节点的操作日志对相应的数据块执行操作日志中的数据操作即可保持备节点的数据与主节点中的数据的一致性,以便于用户可以在任何一个备节点查询数据。如图2所示,所述磁盘坏块修复方法包括:
在步骤S201中、在确定当前节点存在坏块的情况下,从其余节点中确定一个目标节点,所述目标节点包含与该坏块对应的数据块。本实例中当前节点可以是主节点也可以是备节点,具体可以通过设置例如扫描程序来检测当前节点是否存在坏块,也可以采用脚本等方式,具体在此不做一一限定。本示例中节点中的坏块是指该数据块的数据不可用,这种情况下,本示例中从其余节点中确定一个目标节点,该目标节点中具有完好的与该坏块对应的数据块。
在步骤S202中、根据该坏块的坏块参数,调用预设函数,以从所述目标节点获取对应的数据块的数据。例如可以构造调用自定义函数fetch_data的SQL语句发送到目标节点数据库执行,以取得对应的数据块。
在步骤S203中、对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块。具体的可以对获取的该数据块的数据进行校验,例如数据版本等,由于主备节点可能存在数据延迟,因此主节点与备节点可能存在数据版本不一致的情况,若用坏块的数据版本高于目标节点中的数据版本,则不能执行数据修复。因此本申请中通过数据校验,在确定获取到正确的数据的情况下,进行覆写,完成坏块修复。
本发明实施例通过在流复制集群中,选择一个目标节点,从所述目标节点获取对应的数据块的数,并对获取的数据进行校验后用该数据块的数据修复该坏块,实现对坏块的覆写,从而完成坏块的修复。
在一些实施例中,确定当前节点存在坏块是通过如下步骤实现的:
读取当前节点磁盘的各数据块中的数据,并计算校验参数;
将计算获得的校验参数与预设的校验参数进行对比;
在对比不一致的情况下,确定该数据块为坏块;
在对比一致的情况下,检查该数据块的头域;
在该数据块的头域存在逻辑错误的情况下,确定该数据块为坏块。
本实例中以节点中主动发现坏块为例,在系统空闲时或者根据用户的操作指令,主动发起坏块扫描。扫描以块为单位进行,默认块大小可以设置为8kbytes。在将文件块读入内存后,根据数据块的内容计算校验和,并与先前数据块写入到磁盘时存储到块头部的校验和进行比较,若两次的值不一致,则表明数据块已经发生了损坏。如果校验和是匹配的,则进一步检查块的头域,如果出现逻辑错误,说明数据块已经损坏。坏块的信息记录到一个坏块链表中。同时,坏块数量信息也更新到指定的统计数据文件db_blockguard.dat中。
在一些实施例中,从其余节点中确定一个目标节点包括:
在确定主节点存在坏块的情况下,通过预设算法,在各备节点种选取一个目标节点,以使得目标节点中与该坏块对应的数据块具有最接近的数据版本。也即在本示例中,以坏块扫描在主节点为例,当有坏块被发现时,根据预设择块算法从多个备节点中选择一个最优数据库的数据块进行覆写。具体的,可以利用UDF fetch_data()自定义函数,安装在远程的备节点上用来读取文件块,UDF db_blockguard核心程序模块,负责接收命令行工具的启动或停止扫描指令。
在确定备节点存在坏块的情况下,将主节点作为目标节点。
在一些实施例中,所述磁盘坏块修复方法还包括:
在确定当前节点存在坏块的情况下,读取坏块链表信息,并基于所述坏块链表信息确定本地缓存中是否存在该坏块的数据。在确定本地缓存中存在该坏块的数据的情况下,利用本地缓存修复该坏块。在确定当前节点存在坏块的情况下,坏块链表中依次读取信息,优先查找本地share buffer中是否有该数据块,如果存在,则不需要到从备节点获取块信息来执行修复,直接覆写本地buffer即可。
在确定本地缓存中不存在该坏块的数据的情况下,从其余节点中确定一个目标节点。
在一些实施例中,对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块包括:
在确定主节点存在坏块的情况下,确定从目标节点获取的对应的数据块的数据库事务日志序列号LSN;
对比从目标节点获取的对应的数据块的LSN与主节点中当前数据库的LSN;
在从目标节点获取的对应的数据块的LSN等于或超过当前数据库的LSN的情况下,利用从目标节点获取的对应的数据块修复该坏块;
在从目标节点获取的对应的数据块的LSN落后于当前数据库的LSN的情况下,不执行修复,待下一轮检测。
具体的在流复制环境中,主节点和备节点可能存在延迟,从远程节点数据库中获取的数据块有可能与要修复的数据块不是同一个版本,因此在进行块覆写替换以前需要验证坏块以及获取的数据块的数据的版本。例如在主节点上发现坏块,当从备节点获取完好的数据块时,若备节点该数据块的LSN晚于主节点坏块的LSN,说明备节点的数据还没有根据最新的预写日志(WAL)进行更新,如果使用这样的数据块执行修复会导致错误。
在校验和验证失败的情况下,当前损坏的数据块的所有信息都是不可以使用的,包括它的LSN,因此需要借助其它信息来进行验证,例如当前数据库最后的LSN号-currentlatest LSN。
在确定主节点存在坏块的情况下,可以通过如下方式实现修复:
记录发现坏块时,主节点的最新数据库事务日志序列号LSN(例如标记为“latestlsn主”)
通过预设择块算法,选择一个最佳的备节点作为块修复的目标节点。
确定目标节点最新数据库事务日志序列号LSN(例如标记为“latest lsn备”)。
在确定“latest lsn备”等于或者超过“latest lsn主”时,用目标节点中的数据库修复该坏块。
当“latest lsn备”落后于“latest lsn主”的时候,暂不修复,存放于待修复列表中,等待下一次循环检测再尝试修复,备节点的latest LSN在这个过程中,基于WAL在不断追赶主节点的latest LSN,在追赶上主节点的latest lsn的情况下,则可以执行块修复。
在一些实施例中,对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块包括:
在确定备节点存在坏块的情况下,对比该备节点中当前数据库的LSN与从目标节点获取的对应的数据块的LSN;
若从目标节点获取的对应的数据块的LSN小于当前数据库的LSN,则执行修复;
若从目标节点获取的对应的数据块的LSN大于或等于当前数据库的LSN,不执行修复。
具体的,本示例中进一步说明当坏块出现在备节点情况:
记录下来发现坏块时,备节点的最新数据库事务日志序列号LSN(标记为“latestlsn备”)。
从主节点取得的块的LSN(标记为“LSN主”)。
如果“LSN主”小于备节点的“latest lsn备”,就可以确定取得的块是正确的版本。而如果取得的块的“LSN主”大于备节点的“latest lsn备”,不执行修复。这种情况,该坏块会在后续的WALreplay中被修复。
并且本申请的方法,不管坏块是在主节点还是备节点,若出现修复进程时发生写入失败的情况,该坏块即使写入失败仍然是个坏块,会在下轮扫描时被发现并修复。
在一些实施例中,所述磁盘坏块修复方法还包括:在用该数据块的数据修复该坏块之后,将修复的坏块信息更新到指定文件中。具体的修复的坏块量信息会被更新到统计数据文件db_blockguard.dat中,由此可以便于统计和查询。
在一些实施例中,所述磁盘坏块修复方法还包括:
在读取磁盘文件并检出坏块后,加载指定的动态库,调用预设修复函数执行修复。具体的,本示例中对应于实时修复的应用场景,用户在实时使用过程中,读取磁盘文件发现坏块后,扫描程序会立刻捕捉到坏块信息并实时加以修复。具体可以通过加载libpqblockguard动态库,调用修复函数repair_block()进行修复。修复函数会进行连接主节点或备节点以及修复坏块操作,过程与前述主动修复相同,在此不做赘述。
通过本实施例的磁盘坏块修复方法可以保障生产环境下磁盘的高可用性。在使用过程中,发现坏块,能够立即完成修复,用户请求几乎零延迟。在空闲业务状态下(例如凌晨),能够主动发起坏块检测及修复,充分保障磁盘数据安全性和准确性。并且本实施例的磁盘坏块修复方法能够用低成本、低系统代价的方式保障磁盘高可用性。
本发明实施例还提出一种流复制集群的磁盘坏块修复装置,所述流复制集群中包括至少一个主节点和多个备节点,其中各备节点用于备份所述至少一个主节点的至少部分数据,所述磁盘坏块修复装置包括处理器,被配置为:
在确定当前节点存在坏块的情况下,从其余节点中确定一个目标节点,所述目标节点包含与该坏块对应的数据块。
根据该坏块的坏块参数,调用预设函数,以从所述目标节点获取对应的数据块的数据;
对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块。
本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本公开各实施例所述的流复制集群的磁盘坏块修复方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (10)

1.一种流复制集群的磁盘坏块修复方法,其特征在于,所述流复制集群中包括至少一个主节点和多个备节点,其中各备节点用于备份所述至少一个主节点的至少部分数据,所述磁盘坏块修复方法包括:
在确定当前节点存在坏块的情况下,从其余节点中确定一个目标节点,所述目标节点包含与该坏块对应的数据块;
根据该坏块的坏块参数,调用预设函数,以从所述目标节点获取对应的数据块的数据;
对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块。
2.如权利要求1所述的流复制集群的磁盘坏块修复方法,其特征在于,确定当前节点存在坏块是通过如下步骤实现的:
读取当前节点磁盘的各数据块中的数据,并计算校验参数;
将计算获得的校验参数与预设的校验参数进行对比;
在对比不一致的情况下,确定该数据块为坏块;
在对比一致的情况下,检查该数据块的头域;
在该数据块的头域存在逻辑错误的情况下,确定该数据块为坏块。
3.如权利要求1所述的流复制集群的磁盘坏块修复方法,其特征在于,从其余节点中确定一个目标节点包括:
在确定主节点存在坏块的情况下,通过预设算法,在各备节点种选取一个目标节点,以使得目标节点中与该坏块对应的数据块具有最接近的数据版本;
在确定备节点存在坏块的情况下,将主节点作为目标节点。
4.如权利要求3所述的流复制集群的磁盘坏块修复方法,其特征在于,所述磁盘坏块修复方法还包括:
在确定当前节点存在坏块的情况下,读取坏块链表信息,并基于所述坏块链表信息确定本地缓存中是否存在该坏块的数据;
在确定本地缓存中存在该坏块的数据的情况下,利用本地缓存修复该坏块;
在确定本地缓存中不存在该坏块的数据的情况下,从其余节点中确定一个目标节点。
5.如权利要求4所述的流复制集群的磁盘坏块修复方法,其特征在于,对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块包括:
在确定主节点存在坏块的情况下,确定从目标节点获取的对应的数据块的数据库事务日志序列号LSN;
对比从目标节点获取的对应的数据块的LSN与主节点中当前数据库的LSN;
在从目标节点获取的对应的数据块的LSN等于或超过当前数据库的LSN的情况下,利用从目标节点获取的对应的数据块修复该坏块;
在从目标节点获取的对应的数据块的LSN落后于当前数据库的LSN的情况下,不执行修复,待下一轮检测。
6.如权利要求3所述的流复制集群的磁盘坏块修复方法,其特征在于,对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块包括:
在确定备节点存在坏块的情况下,对比该备节点中当前数据库的LSN与从目标节点获取的对应的数据块的LSN;
若从目标节点获取的对应的数据块的LSN小于当前数据库的LSN,则执行修复;
若从目标节点获取的对应的数据块的LSN大于或等于当前数据库的LSN,不执行修复。
7.如权利要求1所述的流复制集群的磁盘坏块修复方法,其特征在于,所述磁盘坏块修复方法还包括:
在用该数据块的数据修复该坏块之后,将修复的坏块信息更新到指定文件中。
8.如权利要求1所述的流复制集群的磁盘坏块修复方法,其特征在于,所述磁盘坏块修复方法还包括:
在读取磁盘文件并检出坏块后,加载指定的动态库,调用预设修复函数执行修复。
9.一种流复制集群的磁盘坏块修复装置,其特征在于,所述流复制集群中包括至少一个主节点和多个备节点,其中各备节点用于备份所述至少一个主节点的至少部分数据,所述磁盘坏块修复装置包括处理器,被配置为:
在确定当前节点存在坏块的情况下,从其余节点中确定一个目标节点,所述目标节点包含与该坏块对应的数据块;
根据该坏块的坏块参数,调用预设函数,以从所述目标节点获取对应的数据块的数据;
对获取的数据进行校验,在校验通过的情况下,用该数据块的数据修复该坏块。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的流复制集群的磁盘坏块修复方法的步骤。
CN202210129182.7A 2022-02-11 2022-02-11 一种流复制集群的磁盘坏块修复方法及装置 Pending CN114461455A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210129182.7A CN114461455A (zh) 2022-02-11 2022-02-11 一种流复制集群的磁盘坏块修复方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210129182.7A CN114461455A (zh) 2022-02-11 2022-02-11 一种流复制集群的磁盘坏块修复方法及装置

Publications (1)

Publication Number Publication Date
CN114461455A true CN114461455A (zh) 2022-05-10

Family

ID=81412933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210129182.7A Pending CN114461455A (zh) 2022-02-11 2022-02-11 一种流复制集群的磁盘坏块修复方法及装置

Country Status (1)

Country Link
CN (1) CN114461455A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472291A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 数据块的校验方法和装置、存储介质及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472291A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 数据块的校验方法和装置、存储介质及电子设备
CN117472291B (zh) * 2023-12-27 2024-03-22 苏州元脑智能科技有限公司 数据块的校验方法和装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
EP0405926B1 (en) Method and apparatus for managing a shadow set of storage media
US11614867B2 (en) Distributed storage system-based data processing method and storage device
US7200626B1 (en) System and method for verification of a quiesced database copy
US7444360B2 (en) Method, system, and program for storing and using metadata in multiple storage locations
US9268648B1 (en) System and method for consistency verification of replicated data in a recovery system
US7685180B2 (en) System and article of manufacture for transparent file restore
US7237141B2 (en) Method for recovering data from a redundant storage object
CN101243446B (zh) 从数据库镜像进行在线页还原
US7788244B2 (en) Method and system for copying a snapshot tree
US7185048B2 (en) Backup processing method
US20180210793A1 (en) System and method for consistency verification of replicated data in a recovery system
JP2005301497A (ja) ストレージ管理装置、リストア方法及びそのプログラム
JP2010033287A (ja) ストレージサブシステム及びこれを用いたデータ検証方法
WO2012053085A1 (ja) ストレージ制御装置およびストレージ制御方法
US6658592B1 (en) Error detection in disk storage systems
US6363457B1 (en) Method and system for non-disruptive addition and deletion of logical devices
CN114461455A (zh) 一种流复制集群的磁盘坏块修复方法及装置
US7577804B2 (en) Detecting data integrity
US6993677B1 (en) System and method for data verification in a RAID system
US6678107B1 (en) System and method for reading and writing N-way mirrored storage devices
JP2001142650A (ja) アレイディスク制御方法及び装置
US20220374310A1 (en) Write request completion notification in response to partial hardening of write data
US7949632B2 (en) Database-rearranging program, database-rearranging method, and database-rearranging apparatus
US6229743B1 (en) Method of a reassign block processing time determination test for storage device
US7680841B2 (en) Determining whether data written to source storage locations according to a write order is copied to corresponding target storage locations in the write order

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