CN115329391A - 一种文本数据库的防护方法、装置、设备及介质 - Google Patents
一种文本数据库的防护方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115329391A CN115329391A CN202211270807.8A CN202211270807A CN115329391A CN 115329391 A CN115329391 A CN 115329391A CN 202211270807 A CN202211270807 A CN 202211270807A CN 115329391 A CN115329391 A CN 115329391A
- Authority
- CN
- China
- Prior art keywords
- file information
- backup
- time index
- log data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种文本数据库的防护方法、装置、设备及介质,涉及工业互联网技术领域,包括:启动数据库事务,以将内存中文本数据库当前写入的目标数据内容写入至磁盘;在数据库事务完成后将内存中文件信息的时间索引表版本增加预设单位数值,然后将时间索引表版本写入至磁盘;对内存中的文件信息和时间索引表分别进行备份处理得到文件信息备份和时间索引表备份,并将文件信息备份和时间索引表备份写入磁盘;将内存中文件信息备份的时间索引备份表版本增加预设单位数值,然后将时间索引备份表版本写入至磁盘。上述技术方案在将内存中文本数据库的目标数据内容持久化至磁盘的过程中,能够防止数据丢失并保障数据文件的安全性。
Description
技术领域
本发明涉及工业互联网技术领域,特别涉及一种文本数据库的防护方法、装置、设备及介质。
背景技术
随着针对工控领域的威胁及攻击越来越多,电力系统安全问题越来越凸显,作为国家关键信息基础设施重要节点,以电力系统为代表的工控系统需要将自身的过程记录、流量数据、工作日志等信息进行存储,以便后期进行安全查阅、分析及审计。
根据网络安全相关法律法规的要求,采集到的数据流量至少要保存半年,对于工控系统等关键节点系统而言,需要存储的日志量巨大;有些工控系统对实时性要求比较高,流量日志数据的存储速度、查询模式、查询效率亦至关重要。当前,工控系统的资源有限,无法使用主流的数据库软件,因此通常采用文本的形式记录工控系统的日志等其他信息。由于缺少必要的保护措施,文本形式的数据库在从内存到磁盘的持久化过程中,容易发生遗漏、损坏等情况。
综上,文本形式的数据库在从内存到磁盘的持久化过程中,如何防止数据丢失并保障数据文件的安全性,以实现对文本数据库的防护是目前有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种文本数据库的防护方法、装置、设备及介质,能够在文本形式的数据库在从内存到磁盘的持久化过程中,防止数据丢失并保障数据文件的安全性,以实现对文本数据库的防护。其具体方案如下:
第一方面,本申请公开了一种文本数据库的防护方法,包括:
启动数据库事务,以将内存中文本数据库当前写入的目标数据内容写入至磁盘;其中,所述目标数据内容包括日志数据文件中的文件信息、日志数据和时间索引表;
在所述数据库事务完成后将所述内存中所述文件信息的时间索引表版本增加预设单位数值,然后将所述时间索引表版本写入至所述磁盘;
对所述内存中的所述文件信息和所述时间索引表分别进行备份处理得到文件信息备份和时间索引表备份,并将所述文件信息备份和所述时间索引表备份写入所述磁盘;
将所述内存中所述文件信息备份的时间索引备份表版本增加所述预设单位数值,然后将所述时间索引备份表版本写入至所述磁盘。
可选的,所述将内存中文本数据库当前写入的目标数据内容写入至磁盘,包括:
在内存中文本数据库的日志数据文件中写入日志数据,并基于所述日志数据对所述日志数据文件中的文件信息和时间索引表进行更新;
将所述日志数据文件中的所述文件信息、所述日志数据和所述时间索引表按照预设单批次数量依次写入至磁盘。
可选的,所述在内存中文本数据库的日志数据文件中写入日志数据的过程中,还包括:
确定日志数据文件中日志数据区的预设存储容量阈值,并判断所述日志数据区的当前存储容量值是否超过所述预设存储容量阈值;
若超过,则将所述日志数据文件增加预设数据长度得到新增区域,并将所述日志数据文件中的空闲区和所述新增区域中的目标区域分别作为新的文件信息区和新的日志数据区,以便将所述日志数据写入新的所述日志数据区。
可选的,所述文本数据库的防护方法,还包括:
若系统发生断电,则在重启系统后对所述内存中的所述日志数据文件进行校验以得到校验结果,并基于所述校验结果利用预设恢复机制对所述日志数据文件进行恢复。
可选的,所述对所述内存中的所述日志数据文件进行校验以得到校验结果,并基于所述校验结果利用预设恢复机制对所述日志数据文件进行恢复,包括:
分别对所述日志数据文件中的所述文件信息和所述文件信息备份进行校验以得到校验结果;
若所述校验结果为所述文件信息校验失败且所述文件信息备份校验成功,则分别利用所述时间索引表备份和所述文件信息备份对所述时间索引表和所述文件信息进行恢复,并将恢复后的所述时间索引表和所述文件信息写入所述磁盘。
可选的,所述分别对所述日志数据文件中的所述文件信息和所述文件信息备份进行校验以得到校验结果,包括:
分别对所述日志数据文件中的所述文件信息和所述文件信息备份进行MD5计算以得到相应的第一校验值和第二校验值,并判断所述第一校验值与所述文件信息中存储的第一目标校验值以及所述第二校验值与所述文件信息备份中存储的第二目标校验值分别是否一致;
若所述第一校验值与所述第一目标校验值不一致,并且所述第二校验值与所述第二目标校验值一致,则相应的校验结果为所述文件信息校验失败且所述文件信息备份校验成功。
可选的,所述将恢复后的所述时间索引表和所述文件信息写入所述磁盘之后,还包括:
判断所述第一目标校验值与所述第二目标校验值是否一致;
若不一致,则利用所述文件信息对所述文件信息备份进行恢复,并将恢复后的所述文件信息备份写入所述磁盘;
在事务完成后判断所述文件信息中的所述时间索引表版本和所述文件信息备份中的所述时间索引备份表版本是否一致;
若所述时间索引表版本大于所述时间索引备份表版本,则利用所述时间索引表恢复所述时间索引备份表版本,并将恢复后的所述时间索引备份表版本写入所述磁盘;
判断所述第一目标校验值与所述第二目标校验值是否一致;
若不一致,则利用所述文件信息对所述文件信息备份进行恢复,并将恢复后的所述文件信息备份写入所述磁盘。
第二方面,本申请公开了一种文本数据库的防护装置,包括:
数据内容同步模块,用于启动数据库事务,以将内存中文本数据库当前写入的目标数据内容写入至磁盘;其中,所述目标数据内容包括日志数据文件中的文件信息、日志数据和时间索引表;
版本同步模块,用于在所述数据库事务完成后将所述内存中所述文件信息的时间索引表版本增加预设单位数值,然后将所述时间索引表版本写入至所述磁盘;
备份同步模块,用于对所述内存中的所述文件信息和所述时间索引表分别进行备份处理得到文件信息备份和时间索引表备份,并将所述文件信息备份和所述时间索引表备份写入所述磁盘;
备份版本同步模块,用于将所述内存中所述文件信息备份的时间索引备份表版本增加所述预设单位数值,然后将所述时间索引备份表版本写入至所述磁盘。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的文本数据库的防护方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的文本数据库的防护方法的步骤。
可见,本申请启动数据库事务,以将内存中文本数据库当前写入的目标数据内容写入至磁盘;其中,所述目标数据内容包括日志数据文件中的文件信息、日志数据和时间索引表;在所述数据库事务完成后将所述内存中所述文件信息的时间索引表版本增加预设单位数值,然后将所述时间索引表版本写入至所述磁盘;对所述内存中的所述文件信息和所述时间索引表分别进行备份处理得到文件信息备份和时间索引表备份,并将所述文件信息备份和所述时间索引表备份写入所述磁盘;将所述内存中所述文件信息备份的时间索引备份表版本增加所述预设单位数值,然后将所述时间索引备份表版本写入至所述磁盘。由此可见,本申请在启动数据库事务后,则将内存中文本数据库当前写入的目标数据内容同步写入至磁盘,目标数据内容包括日志数据文件中的文件信息、日志数据和时间索引表;事务完成后再将文件信息中的时间索引表版本增加预设单位数值,并同步写入磁盘;然后再对内存中的文件信息和时间索引表分别进行备份再将备份后的文件也同步写入磁盘,以及将文件信息备份中的时间索引备份表版本增加预设单位数值,并同步写入磁盘。通过上述技术方案能够在文本形式的数据库从内存到磁盘的持久化过程中,防止数据出现丢失并保障数据文件的安全性和可靠性,以实现对文本数据库的防护。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种文本数据库的防护方法流程图;
图2为本申请公开的一种具体的文本数据库的防护步骤流程图;
图3为本申请公开的一种具体的日志数据文件结构示意图;
图4为本申请公开的一种具体的文件信息区结构示意图;
图5为本申请公开的一种具体的日志数据文件新增长度示意图;
图6为本申请公开的一种具体的文本数据库的防护方法流程图;
图7为本申请公开的一种具体的文本数据库的异常恢复步骤流程图;
图8为本申请公开的一种文本数据库的防护装置结构示意图;
图9为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前,工控系统的资源有限,无法使用主流的数据库软件,因此通常采用文本的形式记录工控系统的日志等其他信息。由于缺少必要的保护措施,文本形式的数据库在从内存到磁盘的持久化过程中,容易发生遗漏、损坏等情况。为此,本申请实施例公开了一种文本数据库的防护方法、装置、设备及介质,能够在文本形式的数据库在从内存到磁盘的持久化过程中,防止数据丢失并保障数据文件的安全性,以实现对文本数据库的防护。
参见图1和图2所示,本申请实施例公开了一种文本数据库的防护方法,该方法包括:
步骤S11:启动数据库事务,以将内存中文本数据库当前写入的目标数据内容写入至磁盘;其中,所述目标数据内容包括日志数据文件中的文件信息、日志数据和时间索引表。
本实施例中,启动数据库事务,以将内存中文本数据库当前写入的文件信息、日志数据和时间索引表同步写入至磁盘以便将这些数据内容在磁盘中进行持久化存储。其中,启动数据库事务也即表示当前的事务状态为启动状态,并将事务状态也同步至磁盘中。
在具体的实施方式中,上述将内存中文本数据库当前写入的目标数据内容写入至磁盘。包括:在内存中文本数据库的日志数据文件中写入日志数据,并基于所述日志数据对所述日志数据文件中的文件信息和时间索引表进行更新;将所述日志数据文件中的所述文件信息、所述日志数据和所述时间索引表按照预设单批次数量依次写入至磁盘。也即,在写入日志数据时,具体为在内存文本数据库中的日志数据文件中写入日志数据,并基于写入的日志数据对日志数据文件中的文件信息和时间索引表进行更新。另外,文本数据库提供了批量同步内存数据到磁盘数据的接口,用于持久存储数据,因此在向数据文件中写入日志时,依次将日志数据文件中的文件信息、日志数据和时间索引表按照预设单批次数量写入至磁盘。由于是批量对数据进行同步,预设单批次数量也即一个批次中预先设置的需要同步至磁盘的数据数量,该值可以根据具体情况自行设定。
需要指出的是,本实施例中,每个日志数据文件中存储着一个二进制数据结构,包含一个时间索引备份表、一个时间索引表、一个空闲区、多个文件信息区和多个日志数据区组成,具体格式如图3中所示。其中,时间索引表位于日志数据文件头部,每个时间索引指向一个日志数据区的具体日志,时间索引备份表与时间索引表中内容一致;日志数据区存储着日志的具体内容,多个日志数据区域之间无关联;文件信息区中记录着该日志数据文件的关键信息,如图4所示,主要包括以下字段:
(1)空闲数据头指针,用于指向日志数据区空闲区域的起始,即添加新日志头的位置;
(2)空闲数据尾指针,用于指向日志数据区空闲区域的尾部,即添加新日志内容位置。
(3)事务状态,用于表示批量写入的两种状态:启动事务或事务完成;
(4)时间索引表版本,用于当日志批量写入后,对应地修改时间索引表并同步到磁盘文件,且时间索引表版本加1。
(5)时间索引备份表版本,用于当时间索引表同步到磁盘文件后,应将时间索引备份表同步更新,且时间索引备份表版本加1,以上两个版本字段用于日志文件断电保护;
(6)校验码,用于表示以上字段的MD5校验值。
因此,在日志数据文件的日志数据区写入日志数据后,由于时间索引表中的每个时间索引指向一个日志数据区的具体日志,因此时间索引表需根据写入的日志数据进行相应更新;同理,由于文件信息区中记录着日志数据文件的关键信息,日志数据区写入日志数据后,文件信息区中相关字段也需进行相应更新。通过在文本数据库结构中设计了文件信息备份区、时间索引表备份表,结合版本号、校验码等机制,能够帮助实现数据回滚。
进一步的,上述在内存中文本数据库的日志数据文件中写入日志数据的过程中,还包括:确定日志数据文件中日志数据区的预设存储容量阈值,并判断所述日志数据区的当前存储容量值是否超过所述预设存储容量阈值;若超过,则将所述日志数据文件增加预设数据长度得到新增区域,并将所述日志数据文件中的空闲区和所述新增区域中的目标区域分别作为新的文件信息区和新的日志数据区,以便将所述日志数据写入新的所述日志数据区。可以理解的是,如果当前即最后一个日志数据区写满后,则创建另一个日志数据区,在这个过程中,首先需要确定每个日志数据文件中日志数据区的预设存储容量阈值,一般为20M,并判断当前存储容量是否超过预设存储容量阈值,若超过,则表示该日志数据区已经写满,需要创建下一个日志数据区,具体步骤可以参见图5中所示,将文件信息及文件信息备份拷贝到空闲区,也即将日志数据文件中的空闲区作为新的文件信息区,并同步写入磁盘;然后将日志数据文件增加预设数据长度得到新增区域,预设长度具体为20M+4096*2,其中20M为一个日志数据区的长度,4096*2表示文件信息区和文件信息备份区的长度,各为4096;最后将新增区域中的目标区域作为新的日志数据区,其中目标区域大小为20M。
步骤S12:在所述数据库事务完成后将所述内存中所述文件信息的时间索引表版本增加预设单位数值,然后将所述时间索引表版本写入至所述磁盘。
本实施例中,在数据库事务完成后将内存中文件信息的时间索引表版本增加预设单位数值,预设单位数值具体为1,然后将该时间索引表版本写入磁盘。
步骤S13:对所述内存中的所述文件信息和所述时间索引表分别进行备份处理得到文件信息备份和时间索引表备份,并将所述文件信息备份和所述时间索引表备份写入所述磁盘。
本实施例中,对内存中的文件信息和时间索引表分别进行备份处理得到文件信息备份和时间索引表备份,并将文件信息备份和时间索引表备份写入磁盘。
步骤S14:将所述内存中所述文件信息备份的时间索引备份表版本增加所述预设单位数值,然后将所述时间索引备份表版本写入至所述磁盘。
本实施例中,还需将内存中文件信息备份的时间索引备份表版本增加预设单位数值1,然后将时间索引备份表版本写入至磁盘。
可见,本申请启动数据库事务,以将内存中文本数据库当前写入的目标数据内容写入至磁盘;其中,所述目标数据内容包括日志数据文件中的文件信息、日志数据和时间索引表;在所述数据库事务完成后将所述内存中所述文件信息的时间索引表版本增加预设单位数值,然后将所述时间索引表版本写入至所述磁盘;对所述内存中的所述文件信息和所述时间索引表分别进行备份处理得到文件信息备份和时间索引表备份,并将所述文件信息备份和所述时间索引表备份写入所述磁盘;将所述内存中所述文件信息备份的时间索引备份表版本增加所述预设单位数值,然后将所述时间索引备份表版本写入至所述磁盘。由此可见,本申请在启动数据库事务后,则将内存中文本数据库当前写入的目标数据内容同步写入至磁盘,目标数据内容包括日志数据文件中的文件信息、日志数据和时间索引表;事务完成后再将文件信息中的时间索引表版本增加预设单位数值,并同步写入磁盘;然后再对内存中的文件信息和时间索引表分别进行备份再将备份后的文件也同步写入磁盘,以及将文件信息备份中的时间索引备份表版本增加预设单位数值,并同步写入磁盘。通过上述技术方案能够在文本形式的数据库从内存到磁盘的持久化过程中,防止数据出现丢失并保障数据文件的安全性和可靠性,以实现对文本数据库的防护。
进一步的,上述方法还包括:若系统发生断电,则在重启系统后对所述内存中的所述日志数据文件进行校验以得到校验结果,并基于所述校验结果利用预设恢复机制对所述日志数据文件进行恢复。可以理解的是,当发生如系统异常断电导致文本数据库未保存的情况时,需要在系统重启后,重新加载数据库,并对日志数据文件进行有效性校验,以及利用预设恢复机制进行相应的错误修复处理。因此,在一个具体实施例中,本申请提供了当系统发生异常,例如异常断电后对日志数据文件进行校验并基于校验结果利用预设恢复机制对日志数据文件进行恢复的具体步骤,参见图6和图7所示:
步骤S21:分别对所述日志数据文件中的所述文件信息和所述文件信息备份进行校验以得到校验结果。
本实施例中,首先对文件信息和文件信息备份进行校验,以得到校验结果。在具体的实施方式中,可以包括:分别对所述日志数据文件中的所述文件信息和所述文件信息备份进行MD5计算以得到相应的第一校验值和第二校验值,并判断所述第一校验值与所述文件信息中存储的第一目标校验值以及所述第二校验值与所述文件信息备份中存储的第二目标校验值分别是否一致;若所述第一校验值与所述第一目标校验值不一致,并且所述第二校验值与所述第二目标校验值一致,则相应的校验结果为所述文件信息校验失败且所述文件信息备份校验成功。也即,在对文件信息和文件信息备份进行校验时,具体是通过判断此时计算得到的校验值与存储的校验值是否一致,那么分别对日志数据文件中的文件信息和文件信息备份进行MD5计算,得到文件信息的第一校验值以及文件信息备份的第二校验值,并将第一校验值与文件信息中存储的第一目标校验值进行比对以判断是否一致,以及将第二校验值与文件信息备份中存储的第二目标校验值进行比对以判断是否一致,若第一校验值与第一目标校验值不一致,并且第二校验值与第二目标校验值一致,则相应的校验结果为文件信息校验失败且文件信息备份校验成功。另外,若文件信息校验成功,则表示当前文本数据库并未因系统异常断电而发生错误。
步骤S22:若所述校验结果为所述文件信息校验失败且所述文件信息备份校验成功,则分别利用所述时间索引表备份和所述文件信息备份对所述时间索引表和所述文件信息进行恢复,并将恢复后的所述时间索引表和所述文件信息写入所述磁盘。
本实施例中,若校验结果为文件信息校验失败且文件信息备份校验成功,则故障原因为处理事务或更新文件信息时发生了掉电,此时需要利用时间索引表备份和文件信息备份分别对时间索引表和文件信息进行恢复。并将恢复后的时间索引表和文件信息写入磁盘
步骤S23:判断所述第一目标校验值与所述第二目标校验值是否一致;若不一致,则利用所述文件信息对所述文件信息备份进行恢复,并将恢复后的所述文件信息备份写入所述磁盘。
本实施例中,在对文件信息和文件信息备份进行校验后,还需校验此时文件信息与文本信息备份是否一样,具体也是通过判断两者的校验值是否一致,若不一致,则故障原因为在更新文件信息备份时发生了掉电,此时需要利用文件信息对文件信息备份进行恢复,并将恢复后的文件信息备份写入磁盘。
步骤S24:在事务完成后判断所述文件信息中的所述时间索引表版本和所述文件信息备份中的所述时间索引备份表版本是否一致;若所述时间索引表版本大于所述时间索引备份表版本,则利用所述时间索引表恢复所述时间索引备份表版本,并将恢复后的所述时间索引备份表版本写入所述磁盘。
本实施例中,在事务完成后需进一步判断文件信息中的时间索引表版本和文件信息备份中的时间索引备份表版本是否一致,若时间索引表版本大于时间索引备份表版本,则故障原因为时间索引备份表写入磁盘时发生了掉电,此时需要利用时间索引表恢复时间索引备份表版本,并将恢复后的时间索引备份表版本写入所述磁盘。
步骤S25:判断所述第一目标校验值与所述第二目标校验值是否一致;若不一致,则利用所述文件信息对所述文件信息备份进行恢复,并将恢复后的所述文件信息备份写入所述磁盘。
本实施例中,由于时间索引备份表写入磁盘时发生了掉电,因此最后还需校验此时文件信息与文本信息备份是否一样,也即再一次判断两者的目标校验值是否一致,若不一致,则利用文件信息对文件信息备份进行恢复,并将恢复后的文件信息备份写入磁盘。
可见,本申请实施例提供了一种恢复或者回滚机制,用于当系统发生异常情况后对异常损坏或者丢失的日志数据文件进行恢复,并在写入磁盘的各个过程提供了出错的恢复方法,以保证数据文件的安全可靠性。也即保证了各种原因导致的数据库损坏均可得到一定的恢复,有利于工控系统日志审计功能。
参见图8所示,本申请实施例公开了一种文本数据库的防护装置,该装置包括:
数据内容同步模块11,用于启动数据库事务,以将内存中文本数据库当前写入的目标数据内容写入至磁盘;其中,所述目标数据内容包括日志数据文件中的文件信息、日志数据和时间索引表;
版本同步模块12,用于在所述数据库事务完成后将所述内存中所述文件信息的时间索引表版本增加预设单位数值,然后将所述时间索引表版本写入至所述磁盘;
备份同步模块13,用于对所述内存中的所述文件信息和所述时间索引表分别进行备份处理得到文件信息备份和时间索引表备份,并将所述文件信息备份和所述时间索引表备份写入所述磁盘;
备份版本同步模块14,用于将所述内存中所述文件信息备份的时间索引备份表版本增加所述预设单位数值,然后将所述时间索引备份表版本写入至所述磁盘。
可见,本申请启动数据库事务,以将内存中文本数据库当前写入的目标数据内容写入至磁盘;其中,所述目标数据内容包括日志数据文件中的文件信息、日志数据和时间索引表;在所述数据库事务完成后将所述内存中所述文件信息的时间索引表版本增加预设单位数值,然后将所述时间索引表版本写入至所述磁盘;对所述内存中的所述文件信息和所述时间索引表分别进行备份处理得到文件信息备份和时间索引表备份,并将所述文件信息备份和所述时间索引表备份写入所述磁盘;将所述内存中所述文件信息备份的时间索引备份表版本增加所述预设单位数值,然后将所述时间索引备份表版本写入至所述磁盘。由此可见,本申请在启动数据库事务后,则将内存中文本数据库当前写入的目标数据内容同步写入至磁盘,目标数据内容包括日志数据文件中的文件信息、日志数据和时间索引表;事务完成后再将文件信息中的时间索引表版本增加预设单位数值,并同步写入磁盘;然后再对内存中的文件信息和时间索引表分别进行备份再将备份后的文件也同步写入磁盘,以及将文件信息备份中的时间索引备份表版本增加预设单位数值,并同步写入磁盘。通过上述技术方案能够在文本形式的数据库从内存到磁盘的持久化过程中,防止数据出现丢失并保障数据文件的安全性和可靠性,以实现对文本数据库的防护。
图9为本申请实施例提供的一种电子设备的结构示意图。具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由电子设备执行的文本数据库的防护方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的文本数据库的防护方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括电子设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的由文本数据库的防护过程中执行的方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种文本数据库的防护方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种文本数据库的防护方法,其特征在于,包括:
启动数据库事务,以将内存中文本数据库当前写入的目标数据内容写入至磁盘;其中,所述目标数据内容包括日志数据文件中的文件信息、日志数据和时间索引表;
在所述数据库事务完成后将所述内存中所述文件信息的时间索引表版本增加预设单位数值,然后将所述时间索引表版本写入至所述磁盘;
对所述内存中的所述文件信息和所述时间索引表分别进行备份处理得到文件信息备份和时间索引表备份,并将所述文件信息备份和所述时间索引表备份写入所述磁盘;
将所述内存中所述文件信息备份的时间索引备份表版本增加所述预设单位数值,然后将所述时间索引备份表版本写入至所述磁盘。
2.根据权利要求1所述的文本数据库的防护方法,其特征在于,所述将内存中文本数据库当前写入的目标数据内容写入至磁盘,包括:
在内存中文本数据库的日志数据文件中写入日志数据,并基于所述日志数据对所述日志数据文件中的文件信息和时间索引表进行更新;
将所述日志数据文件中的所述文件信息、所述日志数据和所述时间索引表按照预设单批次数量依次写入至磁盘。
3.根据权利要求2所述的文本数据库的防护方法,其特征在于,所述在内存中文本数据库的日志数据文件中写入日志数据的过程中,还包括:
确定日志数据文件中日志数据区的预设存储容量阈值,并判断所述日志数据区的当前存储容量值是否超过所述预设存储容量阈值;
若超过,则将所述日志数据文件增加预设数据长度得到新增区域,并将所述日志数据文件中的空闲区和所述新增区域中的目标区域分别作为新的文件信息区和新的日志数据区,以便将所述日志数据写入新的所述日志数据区。
4.根据权利要求1至3任一项所述的文本数据库的防护方法,其特征在于,还包括:
若系统发生断电,则在重启系统后对所述内存中的所述日志数据文件进行校验以得到校验结果,并基于所述校验结果利用预设恢复机制对所述日志数据文件进行恢复。
5.根据权利要求4所述的文本数据库的防护方法,其特征在于,所述对所述内存中的所述日志数据文件进行校验以得到校验结果,并基于所述校验结果利用预设恢复机制对所述日志数据文件进行恢复,包括:
分别对所述日志数据文件中的所述文件信息和所述文件信息备份进行校验以得到校验结果;
若所述校验结果为所述文件信息校验失败且所述文件信息备份校验成功,则分别利用所述时间索引表备份和所述文件信息备份对所述时间索引表和所述文件信息进行恢复,并将恢复后的所述时间索引表和所述文件信息写入所述磁盘。
6.根据权利要求5所述的文本数据库的防护方法,其特征在于,所述分别对所述日志数据文件中的所述文件信息和所述文件信息备份进行校验以得到校验结果,包括:
分别对所述日志数据文件中的所述文件信息和所述文件信息备份进行MD5计算以得到相应的第一校验值和第二校验值,并判断所述第一校验值与所述文件信息中存储的第一目标校验值以及所述第二校验值与所述文件信息备份中存储的第二目标校验值分别是否一致;
若所述第一校验值与所述第一目标校验值不一致,并且所述第二校验值与所述第二目标校验值一致,则相应的校验结果为所述文件信息校验失败且所述文件信息备份校验成功。
7.根据权利要求6所述的文本数据库的防护方法,其特征在于,所述将恢复后的所述时间索引表和所述文件信息写入所述磁盘之后,还包括:
判断所述第一目标校验值与所述第二目标校验值是否一致;
若不一致,则利用所述文件信息对所述文件信息备份进行恢复,并将恢复后的所述文件信息备份写入所述磁盘;
在事务完成后判断所述文件信息中的所述时间索引表版本和所述文件信息备份中的所述时间索引备份表版本是否一致;
若所述时间索引表版本大于所述时间索引备份表版本,则利用所述时间索引表恢复所述时间索引备份表版本,并将恢复后的所述时间索引备份表版本写入所述磁盘;
判断所述第一目标校验值与所述第二目标校验值是否一致;
若不一致,则利用所述文件信息对所述文件信息备份进行恢复,并将恢复后的所述文件信息备份写入所述磁盘。
8.一种文本数据库的防护装置,其特征在于,包括:
数据内容同步模块,用于启动数据库事务,以将内存中文本数据库当前写入的目标数据内容写入至磁盘;其中,所述目标数据内容包括日志数据文件中的文件信息、日志数据和时间索引表;
版本同步模块,用于在所述数据库事务完成后将所述内存中所述文件信息的时间索引表版本增加预设单位数值,然后将所述时间索引表版本写入至所述磁盘;
备份同步模块,用于对所述内存中的所述文件信息和所述时间索引表分别进行备份处理得到文件信息备份和时间索引表备份,并将所述文件信息备份和所述时间索引表备份写入所述磁盘;
备份版本同步模块,用于将所述内存中所述文件信息备份的时间索引备份表版本增加所述预设单位数值,然后将所述时间索引备份表版本写入至所述磁盘。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的文本数据库的防护方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的文本数据库的防护方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211270807.8A CN115329391B (zh) | 2022-10-18 | 2022-10-18 | 一种文本数据库的防护方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211270807.8A CN115329391B (zh) | 2022-10-18 | 2022-10-18 | 一种文本数据库的防护方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115329391A true CN115329391A (zh) | 2022-11-11 |
CN115329391B CN115329391B (zh) | 2023-01-24 |
Family
ID=83915277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211270807.8A Active CN115329391B (zh) | 2022-10-18 | 2022-10-18 | 一种文本数据库的防护方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115329391B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5043871A (en) * | 1986-03-26 | 1991-08-27 | Hitachi, Ltd. | Method and apparatus for database update/recovery |
JP2003223350A (ja) * | 2002-01-29 | 2003-08-08 | Ricoh Co Ltd | データベースシステム |
US20060282399A1 (en) * | 2005-05-09 | 2006-12-14 | Richard Ackermann | Digital sound recording personalized at a time and place remote from initial delivery to a retail customer |
US7707184B1 (en) * | 2002-10-09 | 2010-04-27 | Netapp, Inc. | System and method for snapshot full backup and hard recovery of a database |
CN103294731A (zh) * | 2012-03-05 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 实时索引建立、实时搜索方法及装置 |
CN103823813A (zh) * | 2012-11-19 | 2014-05-28 | 腾讯科技(深圳)有限公司 | 电子终端历史操作记录处理方法及装置 |
CN103986757A (zh) * | 2014-05-09 | 2014-08-13 | 浙江宇视科技有限公司 | 一种块存储录像的分布式备份方法和系统 |
CN105159870A (zh) * | 2015-06-26 | 2015-12-16 | 徐信 | 一种精准完成连续自然语音文本化的处理系统及方法 |
CN107679088A (zh) * | 2017-09-04 | 2018-02-09 | 无锡天脉聚源传媒科技有限公司 | 用户行为数据的文件式存储方法及装置 |
CN108170768A (zh) * | 2017-12-25 | 2018-06-15 | 腾讯科技(深圳)有限公司 | 数据库同步方法、装置及可读介质 |
CN109639773A (zh) * | 2018-11-26 | 2019-04-16 | 中国船舶重工集团公司第七六研究所 | 一种动态构建的分布式数据集群控制系统及其方法 |
CN109902071A (zh) * | 2019-01-31 | 2019-06-18 | 阿里巴巴集团控股有限公司 | 业务日志存储方法、系统、装置及设备 |
US20190317816A1 (en) * | 2018-04-12 | 2019-10-17 | Vmware, Inc. | Methods and systems to reclaim capacity of unused resources of a distributed computing system |
CN113626795A (zh) * | 2021-08-11 | 2021-11-09 | 工银科技有限公司 | 分布式系统架构的验证方法、装置、电子设备及存储介质 |
-
2022
- 2022-10-18 CN CN202211270807.8A patent/CN115329391B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5043871A (en) * | 1986-03-26 | 1991-08-27 | Hitachi, Ltd. | Method and apparatus for database update/recovery |
JP2003223350A (ja) * | 2002-01-29 | 2003-08-08 | Ricoh Co Ltd | データベースシステム |
US7707184B1 (en) * | 2002-10-09 | 2010-04-27 | Netapp, Inc. | System and method for snapshot full backup and hard recovery of a database |
US20060282399A1 (en) * | 2005-05-09 | 2006-12-14 | Richard Ackermann | Digital sound recording personalized at a time and place remote from initial delivery to a retail customer |
CN103294731A (zh) * | 2012-03-05 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 实时索引建立、实时搜索方法及装置 |
CN103823813A (zh) * | 2012-11-19 | 2014-05-28 | 腾讯科技(深圳)有限公司 | 电子终端历史操作记录处理方法及装置 |
CN103986757A (zh) * | 2014-05-09 | 2014-08-13 | 浙江宇视科技有限公司 | 一种块存储录像的分布式备份方法和系统 |
CN105159870A (zh) * | 2015-06-26 | 2015-12-16 | 徐信 | 一种精准完成连续自然语音文本化的处理系统及方法 |
CN107679088A (zh) * | 2017-09-04 | 2018-02-09 | 无锡天脉聚源传媒科技有限公司 | 用户行为数据的文件式存储方法及装置 |
CN108170768A (zh) * | 2017-12-25 | 2018-06-15 | 腾讯科技(深圳)有限公司 | 数据库同步方法、装置及可读介质 |
US20190317816A1 (en) * | 2018-04-12 | 2019-10-17 | Vmware, Inc. | Methods and systems to reclaim capacity of unused resources of a distributed computing system |
CN109639773A (zh) * | 2018-11-26 | 2019-04-16 | 中国船舶重工集团公司第七六研究所 | 一种动态构建的分布式数据集群控制系统及其方法 |
CN109902071A (zh) * | 2019-01-31 | 2019-06-18 | 阿里巴巴集团控股有限公司 | 业务日志存储方法、系统、装置及设备 |
CN113626795A (zh) * | 2021-08-11 | 2021-11-09 | 工银科技有限公司 | 分布式系统架构的验证方法、装置、电子设备及存储介质 |
Non-Patent Citations (8)
Title |
---|
ALISTAIR MOFFAT 等: "Self-Indexing Inverted Files for Fast Text Retrieval", 《ACM TRANSACTIONS ON INFORMATION SYSTEMS》 * |
STEFAN BUTTCHER 等: "A Document-Centric Approach to Static Index Pruning in Text Retrieval Systems", 《CIKM’06》 * |
傅柱等: "本体存储技术研究综述", 《情报理论与实践》 * |
吴一帆等: "基于语义的信息获取服务平台的研究与实现", 《计算机工程与设计》 * |
崔晨等: "基于内存的HBase二级索引设计", 《计算机应用》 * |
耿倩: "一种主机领域备份数据索引方法研究", 《中国金融电脑》 * |
郑胜林等: "基于表单图文输入的扣车场信息管理系统", 《计算机工程与设计》 * |
陆会明等: "基于实时数据库系统的历史数据处理", 《电力自动化设备》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115329391B (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10261869B2 (en) | Transaction processing using torn write detection | |
CN108664359B (zh) | 一种数据库恢复方法、装置、设备及存储介质 | |
KR100515890B1 (ko) | 효율적인 데이터베이스 복구방법 | |
US9727601B2 (en) | Predicting validity of data replication prior to actual replication in a transaction processing system | |
US20070208918A1 (en) | Method and apparatus for providing virtual machine backup | |
CN109542682B (zh) | 一种数据备份方法、装置、设备和存储介质 | |
US20150213100A1 (en) | Data synchronization method and system | |
CN108646982B (zh) | 一种基于ubifs的数据自动修复方法及装置 | |
CN112114999A (zh) | 一种数据备份方法、数据恢复方法、装置及电子设备 | |
CN113626256B (zh) | 一种虚拟机磁盘数据备份方法、装置、终端及存储介质 | |
KR20170054767A (ko) | 데이터베이스 관리 시스템 및 그의 데이터 변경 및 복구 방법 | |
CN104615504A (zh) | 一种实现数据保护的方法及装置 | |
CN103810060A (zh) | 基于分布式数据库的数据备份方法及其系统 | |
CN112925676B (zh) | 一种基于wal实现分布式数据库集群任意时间点恢复的方法 | |
CN112380057A (zh) | 数据恢复方法、装置、设备及存储介质 | |
CN111177122A (zh) | 一种数据库备份方法、装置、设备及计算机可读存储介质 | |
CN111813753A (zh) | 保存文件的方法、恢复文件的方法、装置及终端设备 | |
CN112612775A (zh) | 一种数据存储方法、装置、计算机设备及存储介质 | |
CN114490543A (zh) | 内存多维数据库的事务日志实现方法、装置、设备及介质 | |
CN105608150A (zh) | 一种业务数据的处理方法及系统 | |
US8595271B1 (en) | Systems and methods for performing file system checks | |
CN113590379A (zh) | Redis数据持久化方法及系统 | |
CN115329391B (zh) | 一种文本数据库的防护方法、装置、设备及介质 | |
CN112000623A (zh) | 一种元数据的存取方法、装置和计算机可读存储介质 | |
CN115061858B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041 Patentee after: China Electronics Technology Network Security Technology Co.,Ltd. Address before: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041 Patentee before: CHENGDU WESTONE INFORMATION INDUSTRY Inc. |
|
CP01 | Change in the name or title of a patent holder |