CN116610495A - 数据库异常的恢复方法、存储介质及设备 - Google Patents

数据库异常的恢复方法、存储介质及设备 Download PDF

Info

Publication number
CN116610495A
CN116610495A CN202310637472.7A CN202310637472A CN116610495A CN 116610495 A CN116610495 A CN 116610495A CN 202310637472 A CN202310637472 A CN 202310637472A CN 116610495 A CN116610495 A CN 116610495A
Authority
CN
China
Prior art keywords
log
database
log file
serial number
file
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
CN202310637472.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.)
Beijing Kingbase Information Technologies Co Ltd
Original Assignee
Beijing Kingbase Information 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 Beijing Kingbase Information Technologies Co Ltd filed Critical Beijing Kingbase Information Technologies Co Ltd
Priority to CN202310637472.7A priority Critical patent/CN116610495A/zh
Publication of CN116610495A publication Critical patent/CN116610495A/zh
Pending legal-status Critical Current

Links

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/1415Saving, restoring, recovering or retrying at system level
    • 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/1448Management of the data involved in backup or backup restore
    • 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/21Design, administration or maintenance of databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据库异常的恢复方法、存储介质及设备。数据库异常的恢复方法包括:获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,分别记为第一序列号和第二序列号;根据第一序列号和第二序列号检测日志文件中的日志是否发生故障;若日志文件中的日志发生故障,输出故障信息;利用日志文件中的日志对数据库进行恢复。进行数据库恢复的过程中,会先对日志文件中的日志进行预检测,使得数据库能够在日志文件中的日志存在故障的情况下预先检测出故障,然后将故障信息进行输出,以便于数据库管理员快速获悉数据库的恢复情况。

Description

数据库异常的恢复方法、存储介质及设备
技术领域
本发明涉及数据库技术领域,特别是涉及一种数据库异常的恢复方法、存储介质及设备。
背景技术
在数据库的使用过程中,伴随着对数据库进行的修改,会产生相应的数据库的日志。通常情况下,数据库是先写日志,再执行对数据库的修改。换句话说,数据库会先对日志进行持久化存储,然后后续定期将数据库修改刷新到磁盘中。在数据库发生崩溃时,重启的数据库为磁盘中记录的状态,对于尚未刷新到磁盘的数据库修改,以日志的形式存储。
而因为数据库日志反映了针对数据库所做的修改,所以,当数据库发生崩溃并重启后,可以根据数据库日志重放对数据库的修改,从而将数据库恢复至崩溃前时刻的状态。但是,在利用数据库日志对数据库进行恢复时,一旦遇到故障的数据库日志,数据库就会停止恢复。恢复停止后,需要管理员对数据库的恢复情况进行检查,处理效率有待提高。
发明内容
本发明的一个目的是要提供一种能够解决上述任一问题的数据库异常的恢复方法、存储介质及设备。
本发明一个进一步的目的是要提高数据库恢复的效率。
特别地,本发明提供了一种数据库异常的恢复方法,包括:
获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,分别记为第一序列号和第二序列号;
根据第一序列号和第二序列号检测日志文件中的日志是否发生故障;
若日志文件中的日志发生故障,输出故障信息;
利用日志文件中的日志对数据库进行恢复。
可选地,根据第一序列号和第二序列号检测日志文件中的日志是否发生故障的步骤包括:
计算第一序列号和第二序列号之间的日志个数,记为理论个数;
检测日志文件中的日志个数与理论个数是否一致,若不一致,则发生故障。
可选地,根据第一序列号和第二序列号检测日志文件中的日志是否发生故障的步骤包括:
获取第一序列号和第二序列号之间的所有日志的校验码,记为理论校验码,校验码为每个日志在写入日志文件后按照预设生成方式生成并存储;
按照预设生成方式重新计算日志文件中的所有日志的校验码,记为实际校验码;
比较实际校验码和理论校验码是否一致,若不一致,则判定日志文件中的日志发生故障。
可选地,校验码为每个日志在写入日志文件后按照MD5算法生成并存储。
可选地,输出故障信息的步骤之前包括:
检测并获取日志文件中故障日志的日志类型,日志类型包括激活日志和当前日志,激活日志为在数据库异常前完整写入日志文件中的日志,当前日志为在数据库异常时正在写入日志文件中的日志;
若故障日志为当前日志,输出故障信息。
可选地,检测并获取日志文件中故障日志的日志类型的步骤之后包括:
若故障日志为激活日志,从归档日志中将故障的激活日志对应的备份拷贝至日志文件中,归档日志为述日志文件中的完整日志转储后形成的日志。
可选地,利用日志文件中的日志对数据库进行恢复的步骤包括:
根据日志文件中的日志重放对数据库的操作,直至遇到故障的当前日志。
可选地,根据第一序列号和第二序列号检测日志文件中的日志是否发生故障的步骤之后包括:
若日志文件中的日志未发生故障,利用日志文件中的日志对数据库进行恢复。
根据本发明的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现根据上述任一项的数据库异常的恢复方法。
根据本发明的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现根据上述任一项的数据库异常的恢复方法。
本发明的数据库异常的恢复方法通过获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,分别记为第一序列号和第二序列号,再根据第一序列号和第二序列号检测日志文件中的日志是否发生故障。如果日志文件中的日志发生故障,输出故障信息。也就是说,进行数据库恢复的过程中,会先对日志文件中的日志进行预检测,从而确认日志文件中的日志是否发生故障,也就是是否完整。所以,使得数据库能够在日志文件中的日志存在故障的情况下预先检测出故障,然后将故障信息进行输出,从而能够为数据库管理员提供相应的故障信息,以便于数据库管理员快速获悉数据库的恢复情况,有助于提高处理效率。
进一步地,本发明的数据库异常的恢复方法通过将日志文件中的日志配置为激活日志和当前日志,并为激活日志配置归档日志,在检测到日志文件中的日志发生故障后获取故障日志的日志类型,在故障日志为当前日志的情况下,输出故障信息,使得数据库管理员能够获悉数据库不能完全恢复的信息,以及未恢复日志的区间,便于数据库管理员做出对策。在故障日志为激活日志的情况下,从归档日志中拷贝故障的激活日志的备份,从而自动修复日志文件,提高了数据库恢复的效率。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本发明一个实施例的数据库异常的恢复方法的示意性流程图;
图2是根据本发明一个实施例的数据库异常的恢复方法中检测日志文件中的日志是否发生故障步骤的第一示意性流程图;
图3是根据本发明一个实施例的数据库异常的恢复方法中检测日志文件中的日志是否发生故障步骤的第二示意性流程图;
图4是根据本发明另一个实施例的数据库异常的恢复方法的示意性流程图;
图5是根据本发明又一个实施例的数据库异常的恢复方法的示意性流程图;
图6是根据本发明一个实施例的机器可读存储介质的示意图;
图7是根据本发明一个实施例的计算机设备的示意图。
具体实施方式
本领域技术人员应当理解的是,下文所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,该一部分实施例旨在用于解释本发明的技术原理,并非用于限制本发明的保护范围。基于本发明提供的实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本发明的保护范围之内。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
如图1所示,在一个实施例中,数据库异常的恢复方法一般性地包括:
步骤S101,获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,分别记为第一序列号和第二序列号。具体地,日志序列号是日志的唯一标识,为随着日志的生成顺序递增的整形数字。在数据库的使用过程中,会先将产生的日志进行持久化存储,也就是写入日志文件中。在写入过程中,先记录要写入的日志的日志序列号。
然后,根据已存储的日志定期将数据库修改刷新到磁盘中。每一次将数据库修改刷新到磁盘中,就会产生一个检查点,检查点之前的日志对应的数据库修改都已经刷新到磁盘中,可以从日志文件中删除,而检查点之后的日志对应的数据库修改尚未刷新到磁盘中。
因此,在数据库发生崩溃时,重启的数据库为磁盘中记录的状态,也就是检查点对应的状态。对于尚未刷新到磁盘的数据库修改,也就是检查点和崩溃前最后一次向日志文件中写入的日志之间的所有日志对应的数据库修改,需要利用日志文件中的日志进行重放。所以,在对数据库进行恢复时,获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,以初步确定所要重放的日志区间。
步骤S102,根据第一序列号和第二序列号检测日志文件中的日志是否发生故障,若是,执行步骤S103,若否,执行步骤S104。
参照图2所示,具体地,在一个实施方式中,本步骤包括:
步骤S201,计算第一序列号和第二序列号之间的日志个数,记为理论个数。具体地,因为日志序列号是根据日志生成顺序递增的整形数字,所以,根据两个日志序列号可以推算出两个日志序列号之间的日志数量。因此,计算第一序列号和第二序列号之间的日志个数,也就是计算从检查点对应的日志重放至最后一次写入日志文文件的日志所需的日志数量。
步骤S202,检测日志文件中的日志个数与理论个数是否一致。具体地,获取日志文件中实际的日志个数,比较实际的日志个数与理论个数是否一致。
步骤S203,若不一致,则判定日志文件中的日志发生故障。如果不一致,说明日志文件中的日志存在缺失,则判定日志文件中的日志发生故障。
参照图3所示,具体地,在一个实施方式中,本步骤包括:
步骤S301,获取第一序列号和第二序列号之间的所有日志的校验码,记为理论校验码。校验码为每个日志在写入日志文件后按照预设生成方式生成并存储。具体地,在一个日志完整地写入日志文件中后,会按照预设的生成方式生成对应的唯一校验码并存储该校验码。示例性地,校验码为每个日志在写入日志文件后按照MD5算法(Message-DigestAlgorithm)生成并存储,具体来说,就是根据每个日志的字符串生成一个值。
获取第一序列号和第二序列号之间的所有日志的校验码,也就是获取在日志写入日志文件时生成并存储的原始校验码。
步骤S302,按照预设生成方式重新计算日志文件中的所有日志的校验码,记为实际校验码。具体地,对于日志文件中现有的所有日志,按照与写入日志文件时同样的预设生成方式重新计算一次校验码。
步骤S303,比较实际校验码和理论校验码是否一致,若不一致,则判定日志文件中的日志发生故障。具体地,也就是将一个日志的重新计算的实际校验码与原始的理论校验码进行比较,如果校验码不一致,说明日志内容存在损坏情况,也就是日志发生故障。
需要说明的是,在根据第一序列号和第二序列号检测日志文件中的日志是否发生故障的步骤中,可以只检测个数或者只检测校验码。也可以即检测个数也检测校验码,只要有一个存在不一致的情况,就判定日志文件中的日志发生故障。具体地,可以先检测个数,不论个数是否一致,再检测校验码。如果个数不一致,在检测校验码时,跳过缺失的日志。
步骤S103,输出故障信息,执行步骤S104。具体地,故障信息至少包括故障日志所在的区间即位置信息,丢失或损坏情况等。
步骤S104,利用日志文件中的日志对数据库进行恢复。具体地,也就是利用日志文件中的日志重放检查点之后的数据库修改,使数据库的状态向最后一次写入日志文件中日志对应时刻的状态恢复。不论日志文件是否存在故障,都会进行数据库恢复工作。
在本实施例的方案中,通过获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,分别记为第一序列号和第二序列号,再根据第一序列号和第二序列号检测日志文件中的日志是否发生故障。如果日志文件中的日志发生故障,输出故障信息。
也就是说,进行数据库恢复的过程中,会先对日志文件中的日志进行预检测,从而确认日志文件中的日志是否发生故障,也就是是否完整。所以,使得数据库能够在日志文件中的日志存在故障的情况下预先检测出故障,然后将故障信息进行输出,从而能够为数据库管理员提供相应的故障信息,以便于数据库管理员快速获悉数据库的恢复情况,有助于提高处理效率。
如图4所示,在一个实施例中,数据库异常的恢复方法一般性地包括:
步骤S401,获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,分别记为第一序列号和第二序列号。
步骤S402,根据第一序列号和第二序列号检测日志文件中的日志是否发生故障,若是,执行步骤S403,若否,执行步骤S406。具体地,计算第一序列号和第二序列号之间的日志个数,记为理论个数。检测日志文件中的日志个数与理论个数是否一致。并且,获取第一序列号和第二序列号之间的所有日志的校验码,记为理论校验码。按照预设生成方式重新计算日志文件中的所有日志的校验码,记为实际校验码。比较实际校验码和理论校验码是否一致。
个数不一致和/或校验码不一致均判定出现故障。
步骤S403,检测并获取日志文件中故障日志的日志类型。具体地,日志类型包括激活日志和当前日志。其中,激活日志为在数据库异常前完整写入日志文件中的日志,当前日志为在数据库异常时正在写入日志文件中的日志。对于在数据库异常时正在写入日志文件中的日志,在数据库异常时会丢失,无法用于对数据库进行恢复。也就是说,如果故障日志存在当前日志,数据库只能进行不完全恢复。而激活日志发生故障,仍可以补救。
所以,在检测到日志文件中的日志发生故障后,检测故障日志的日志类型。
具体来说,因为当前日志在数据库异常时会丢失,但是在日志写入日志文件的过程中,会先记录要写入的日志的日志序列号,所以如果个数不一致,极可能存在当前日志丢失的情况。又因为日志按照顺序写入日志文件,那么再检测丢失的日志的位置,就可以得到是当前日志丢失还是激活日志丢失。而前后校验码不一致的日志一定是激活日志故障。
步骤S404,若故障日志为当前日志,输出故障信息。因为当前日志已经丢失,所以如果故障日志为当前日志,该故障日志对应的数据库修改无法恢复。那么,输出故障信息以用于提醒数据库管理员。具体地,故障信息包括故障日志所在的区间即位置信息,丢失或损坏情况,以及数据库不能完全恢复的警告。
步骤S405,若故障日志为激活日志,从归档日志中将故障的激活日志对应的备份拷贝至日志文件中。归档日志为对日志文件中的完整日志转储后形成的日志。也就是说,归档日志是在日志完整地写入日志文件中后,从日志文件中转储到其他存储区域的日志,可以看做是日志的备份。
因此,如果故障日志是激活日志,那么从归档日志找到故障的激活日志对应的备份,拷贝至日志文件中,即可对日志文件进行修复。
需要说明的是,步骤S403、步骤S404和步骤S405表示依次对所有故障日志按照类型进行处理。
步骤S406,利用日志文件中的日志对数据库进行恢复。具体地,在日志文件不存故障的情况下,或者在检测并获取日志文件中故障日志的日志类型并对所有故障日志按照相应类型对应的处理模式处理完成后,就可以开始利用日志文件中的日志对数据库进行恢复。
具体来说,即根据日志文件中的日志重放对数据库的操作,直至遇到故障的当前日志。其中,如果日志文件中的日志未发生故障,也就是直至完成数据库恢复也不会遇到故障的当前日志,那么数据库可以完全恢复。如果日志文件发生故障,但故障日志不存在当前日志,也就是只有激活日志故障,因为可以利用归档日志修复日志文件,所以直至完成数据库恢复也不会遇到故障的当前日志,数据库也可以完全恢复。如果日志文件发生故障,故障日志存在当前日志,那么,遇到故障的当前日志就会停止数据库恢复,数据库无法完全恢复。
在本实施例的方案中,通过将日志文件中的日志配置为激活日志和当前日志,在检测到日志文件中的日志发生故障后获取故障日志的日志类型,在故障日志为当前日志的情况下,输出故障信息,使得数据库管理员能够获悉数据库不能完全恢复的信息,以及未恢复日志的区间,便于数据库管理员做出对策。在故障日志为激活日志的情况下,从归档日志中拷贝故障的激活日志的备份,从而自动修复日志文件,提高了数据库恢复的效率。
需要说明的是,在其他一些实施例中,也可以是不论故障日志是什么类型,均输出故障信息,并在故障日志为激活日志的情况下,从归档日志中将故障的激活日志对应的备份拷贝至日志文件中。也就是说,输出故障信息的步骤之前包括:
检测并获取日志文件中故障日志的日志类型;输出故障信息;若故障日志为激活日志,从归档日志中将故障的激活日志对应的备份拷贝至所述日志文件中。也就是说,虽然数据库可以对故障的激活日志自行进行修复,但是仍然输出原来的故障信息,使数据库管理员可以获知哪些日志是经过修复的,从而查找损坏原因以进行预防处理。
如图5所示,在一个实施例中,数据库异常的恢复方法一般性地包括:
步骤S501,获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,分别记为第一序列号和第二序列号。
步骤S502,根据第一序列号和第二序列号检测日志文件中的日志是否发生故障,若是,执行步骤S503,若否,执行步骤S506。具体地,计算第一序列号和第二序列号之间的日志个数,记为理论个数。检测日志文件中的日志个数与理论个数是否一致。并且,获取第一序列号和第二序列号之间的所有日志的校验码,记为理论校验码。按照预设生成方式重新计算日志文件中的所有日志的校验码,记为实际校验码。比较实际校验码和理论校验码是否一致。
个数不一致和/或校验码不一致均判定出现故障。
步骤S503,判断故障日志是否为当前日志,若是,执行步骤S504,若否,执行步骤S505。具体地,针对所有的故障日志,依次检测并获取故障日志的日志类型。
步骤S504,输出故障信息。因为当前日志已经丢失,所以如果故障日志为当前日志,该故障日志对应的数据库修改无法恢复。那么,输出故障信息以用于提醒数据库管理员。具体地,故障信息包括故障日志所在的区间即位置信息,丢失或损坏情况,以及数据库不能完全恢复的警告。
步骤S505,从归档日志中将故障的激活日志对应的备份拷贝至日志文件中。故障日志不是当前日志,则是激活日志。那么,从归档日志找到故障的激活日志对应的备份,拷贝至日志文件中,即可对日志文件进行修复。
需要说明的是,步骤S503、步骤S504和步骤S505表示依次对所有故障日志按照类型进行处理。
步骤S506,利用日志文件中的日志对数据库进行恢复。具体地,在日志文件不存故障的情况下,或者所有故障日志按照相应类型对应的处理模式处理完成后,就可以开始利用日志文件中的日志对数据库进行恢复。
本实施例还提供了一种机器可读存储介质和计算机设备。图6是根据本发明一个实施例的机器可读存储介质10的示意图。图7是根据本发明一个实施例的计算机设备20的示意图。
机器可读存储介质10其上存储有机器可执行程序11,机器可执行程序11被处理器执行时实现上述任一实施例的数据库异常的恢复方法。
计算机设备20可以包括存储器210、处理器220及存储在存储器210上并在处理器220上运行的机器可执行程序11,并且处理器220执行机器可执行程序11时实现上述任一实施例的数据库异常的恢复方法。
就本实施例的描述而言,机器可读存储介质10可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,机器可读存储介质10甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。
计算机设备20可以是例如服务器、台式计算机、笔记本式计算机、平板计算机或智能手机。在一些示例中,计算机设备20可以是云计算节点。计算机设备20可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机设备20可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
计算机设备20可以包括适于执行存储的指令的处理器220、在操作期间为所述指令的操作提供临时存储空间的存储器210。处理器220可以是单核处理器、多核处理器、计算集群或任何数量的其他配置。存储器210可以包括随机存取存储器(RAM)、只读存储器、闪存或任何其他合适的存储系统。
处理器220可以通过系统互连(例如PCI、PCI-Express等)连接到适于将计算机设备20连接到一个或多个I/O设备(输入/输出设备)的I/O接口(输入/输出接口)。I/O设备可以包括例如键盘和指示设备,其中指示设备可以包括触摸板或触摸屏等等。I/O设备可以是计算机设备20的内置组件,或者可以是外部连接到计算设备的设备。
处理器220也可以通过系统互连链接到适于将计算机设备20连接到显示设备的显示接口。显示设备可以包括作为计算机设备20的内置组件的显示屏。显示设备还可以包括外部连接到计算机设备20的计算机监视器、电视机或投影仪等。此外,网络接口控制器(network interface controller,NIC)可以适于通过系统互连将计算机设备20连接到网络。在一些实施例中,NIC可以使用任何合适的接口或协议(诸如因特网小型计算机系统接口等)来传输数据。网络可以是蜂窝网络、无线电网络、广域网(WAN))、局域网(LAN)或因特网等等。远程设备可以通过网络连接到计算设备。
本实施例提供的流程图并不旨在指示方法的操作将以任何特定的顺序执行,或者方法的所有操作都包括在所有的每种情况下。此外,方法可以包括附加操作。在本实施例方法提供的技术思路的范围内,可以对上述方法进行附加的变化。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

Claims (10)

1.一种数据库异常的恢复方法,包括:
获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,分别记为第一序列号和第二序列号;
根据所述第一序列号和所述第二序列号检测所述日志文件中的日志是否发生故障;
若所述日志文件中的日志发生故障,输出故障信息;
利用所述日志文件中的日志对数据库进行恢复。
2.根据权利要求1所述的数据库异常的恢复方法,其中,所述根据所述第一序列号和所述第二序列号检测所述日志文件中的日志是否发生故障的步骤包括:
计算所述第一序列号和所述第二序列号之间的日志个数,记为理论个数;
检测所述日志文件中的日志个数与所述理论个数是否一致,若不一致,则发生故障。
3.根据权利要求1所述的数据库异常的恢复方法,其中,所述根据所述第一序列号和所述第二序列号检测所述日志文件中的日志是否发生故障的步骤包括:
获取所述第一序列号和所述第二序列号之间的所有日志的校验码,记为理论校验码,所述校验码为每个日志在写入所述日志文件后按照预设生成方式生成并存储;
按照所述预设生成方式重新计算所述日志文件中的所有日志的校验码,记为实际校验码;
比较所述实际校验码和所述理论校验码是否一致,若不一致,则判定所述日志文件中的日志发生故障。
4.根据权利要求3所述的数据库异常的恢复方法,其中,所述校验码为每个日志在写入所述日志文件后按照MD5算法生成并存储。
5.根据权利要求1所述的数据库异常的恢复方法,其中,所述输出故障信息的步骤之前包括:
检测并获取所述日志文件中故障日志的日志类型,所述日志类型包括激活日志和当前日志,所述激活日志为在所述数据库异常前完整写入所述日志文件中的日志,所述当前日志为在所述数据库异常时正在写入所述日志文件中的日志;
若所述故障日志为所述当前日志,输出故障信息。
6.根据权利要求5所述的数据库异常的恢复方法,其中,所述检测并获取所述日志文件中故障日志的日志类型的步骤之后包括:
若所述故障日志为所述激活日志,从归档日志中将故障的所述激活日志对应的备份拷贝至所述日志文件中,所述归档日志为对所述日志文件中的完整日志转储后形成的日志。
7.根据权利要求6所述的数据库异常的恢复方法,其中,所述利用所述日志文件中的日志对数据库进行恢复的步骤包括:
根据所述日志文件中的日志重放对所述数据库的操作,直至遇到故障的所述当前日志。
8.根据权利要求1所述的数据库异常的恢复方法,其中,所述根据所述第一序列号和所述第二序列号检测所述日志文件中的日志是否发生故障的步骤之后包括:
若所述日志文件中的日志未发生故障,利用所述日志文件中的日志对数据库进行恢复。
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的数据库异常的恢复方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的数据库异常的恢复方法。
CN202310637472.7A 2023-05-31 2023-05-31 数据库异常的恢复方法、存储介质及设备 Pending CN116610495A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310637472.7A CN116610495A (zh) 2023-05-31 2023-05-31 数据库异常的恢复方法、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310637472.7A CN116610495A (zh) 2023-05-31 2023-05-31 数据库异常的恢复方法、存储介质及设备

Publications (1)

Publication Number Publication Date
CN116610495A true CN116610495A (zh) 2023-08-18

Family

ID=87674474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310637472.7A Pending CN116610495A (zh) 2023-05-31 2023-05-31 数据库异常的恢复方法、存储介质及设备

Country Status (1)

Country Link
CN (1) CN116610495A (zh)

Similar Documents

Publication Publication Date Title
US7340638B2 (en) Operating system update and boot failure recovery
CN106951345B (zh) 一种虚拟机磁盘数据的一致性测试方法及装置
CN108646982B (zh) 一种基于ubifs的数据自动修复方法及装置
WO2010121902A1 (en) Apparatus and method for controlling a solid state disk ( ssd ) device
CN107818029B (zh) 一种云硬盘数据恢复一致性的自动化测试方法
CN111581021B (zh) 应用程序启动异常的修复方法、装置、设备及存储介质
US7574621B2 (en) Method and system for identifying and recovering a file damaged by a hard drive failure
CN111046024A (zh) 一种共享存储数据库的数据处理方法、装置、设备及介质
CN114385418A (zh) 通信设备的保护方法、装置、设备和存储介质
CN116610495A (zh) 数据库异常的恢复方法、存储介质及设备
US6229743B1 (en) Method of a reassign block processing time determination test for storage device
CN111427718A (zh) 文件备份方法、恢复方法及装置
CN106599046B (zh) 分布式文件系统的写入方法及装置
CN107544868B (zh) 数据恢复方法和装置
CN112328173A (zh) 一种分布式存储系统磁盘故障修复方法及装置
JP3342039B2 (ja) ファイルを管理する処理装置
CN111104256A (zh) 一种数据读取方法、装置、设备及存储介质
CN111124729A (zh) 一种故障盘判定方法、装置、设备及计算机可读存储介质
CN112562774B (zh) 存储设备挂载方法、装置、计算机设备和存储介质
US11714631B2 (en) Method, electronic device, and computer program product for managing operating system
CN115952080B (zh) 一种agent极限情况稳定性测试方法及装置
CN116661698B (zh) 一种窨井排水监测设备中存储器的管理方法及装置
CN114218018B (zh) 系统数据保护方法、装置、可读存储介质及电子设备
CN113448760B (zh) 一种硬盘异常状态的恢复方法、系统、设备以及介质
CN111625840A (zh) 程序校验方法、程序升级方法及装置

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