CN103177085A - 一种检查点操作方法及装置 - Google Patents
一种检查点操作方法及装置 Download PDFInfo
- Publication number
- CN103177085A CN103177085A CN2013100603733A CN201310060373A CN103177085A CN 103177085 A CN103177085 A CN 103177085A CN 2013100603733 A CN2013100603733 A CN 2013100603733A CN 201310060373 A CN201310060373 A CN 201310060373A CN 103177085 A CN103177085 A CN 103177085A
- Authority
- CN
- China
- Prior art keywords
- dirty page
- list item
- dirty
- listings
- page list
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种检查点操作方法及装置,涉及计算机技术领域,可以减少执行检查点操作时对数据库系统性能的影响。具体方案为:从数据库系统的内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,脏页面列表中包含至少一个脏页面表项,每个脏页面表项对应于一个脏页面,且每个脏页面表项包括脏页面表项对应的脏页面的文件号和块号;根据各个脏页面表项中的文件号和块号调整所述脏页面列表中所述脏页面表项的顺序;根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。本发明用于数据库的检查点操作过程中。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种检查点操作方法及装置。
背景技术
内存相对于磁盘能够提供较高的吞吐量和快速响应,数据库系统通常将某些数据如读写较为繁琐的数据优先存放到内存中,以提高数据读写速度,实现高速缓存。数据库系统通常是以页作为高速缓存的单位,当进程修改了高速缓存里的数据时,该页就被内核标记为脏页(DirtyPage),数据库系统将会在合适的时间把脏页的数据写到磁盘中去,以保持高速缓存中的数据和磁盘中的数据是一致的。
检查点(Checkpoint)机制是使数据库能够在发生故障之后进行恢复的机制。传统的检查点机制也称为全量检查点机制,是从内存中获取所有脏页,并一次性将所有脏页写入磁盘。
由于使用传统检查点机制进行数据库恢复时,将所有脏页一并写入磁盘时,瞬间会产生大量的输入/输出(Input/Output,I/O)请求,而数据库的正常运行也会产生I/O请求,且数据库的I/O能力是固定的,因此,使用传统检查点机制进行数据库恢复时,会影响数据库系统的正常运行,进而影响数据库系统的性能。
发明内容
本发明的实施例提供一种检查点操作方法及装置,可以减少执行检查点操作时对数据库系统性能的影响。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明实施例的第一方面,提供一种检查点操作方法,包括:
从内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,所述脏页面列表中包含至少一个脏页面表项,每个所述脏页面表项对应于一个脏页面,且每个所述脏页面表项包括所述脏页面表项对应的脏页面的文件号和块号;
根据各个脏页面表项中的文件号和块号调整所述脏页面列表中所述 脏页面表项的顺序;
根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。
结合第一方面,在一种可能的实现方式中,所述根据各个脏页面中的文件号和块号调整所述脏页面列表中所述脏页面表项的顺序,包括:
遍历所述脏页面列表,按照所述文件号由小到大的顺序排列所述脏页面列表中的脏页面表项;
将按照所述文件号排序后的脏页面列表中,所述文件号相同的脏页面表项按照所述块号由小到大的顺序进行排列。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘,包括:
从所述调整后的脏页面列表中读取第一个脏页面表项中的文件号和块号;
根据所述第一个脏页面表项中的文件号和块号从所述数据库系统的内存中获取所述第一个脏页面表项对应的脏页面;
将所述第一个脏页面表项对应的脏页面写入所述磁盘;
根据所述调整后的脏页面列表中所述脏页面表项的顺序,依次对所述第一个脏页面表项之后的每一个脏页面表项执行上述读取文件号和块号、获取脏页面、以及将脏页面写入所述磁盘的操作。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘之前,所述方法还包括:
获取数据库系统的状态信息,所述状态信息包括所述数据库系统的输入/输出I/O利用率和中央处理器CPU利用率;
所述根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘,包括:
若所述状态信息满足预设条件,则根据所述调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘;
若所述状态信息不满足所述预设条件,则暂停将所述脏页面写入所 述磁盘;
其中,所述状态信息满足所述预设条件具体为:所述I/O利用率小于第一预设阈值,且所述CPU利用率小于第二预设阈值。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述暂停将所述脏页面写入所述磁盘之后,所述方法还包括:
在一个预设时间后,重新获取所述数据库系统的所述状态信息;
若所述状态信息满足所述预设条件,则根据所述调整后的所述脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述从内存中获取记录有待写入磁盘的脏页面信息的脏页面列表,包括:
遍历所述内存中的所有的页面,以识别所述脏页面,所述脏页面包含页面标记;
根据各个页面的所述页面标记获取所述脏页面的文件号和块号,并根据所述脏页面的文件号和块号生成所述脏页面列表。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述根据各个脏页面表项中的文件号和块号调整所述脏页面列表中所述脏页面表项的顺序之前,所述方法还包括:
生成检查点日志,所述检查点日志用于记录所述检查点操作的开始时刻,以便所述数据库系统在进行数据库系统恢复时,直接从所述检查点操作的开始时刻所对应的操作在日志文件中的对应位置开始恢复所述数据库系统;
其中,所述检查点操作的开始时刻为开始从所述内存获取所述脏页面列表的时刻,所述日志文件用于记录所述数据库系统中的每一步操作。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘之后,所述方法还包括:
将所述检查点日志写入所述日志文件;
更新所述磁盘中的控制文件,所述控制文件用于记录检查点信息,所述检查点信息包括:所述检查点操作开始时刻和所述检查点操作开始 时刻所对应的操作在所述日志文件中的对应位置。
本发明实施例的第二方面,还提供一种检查点操作装置,包括:
第一获取单元,用于从内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,所述脏页面列表中包含至少一个脏页面表项,每个所述脏页面表项对应于一个脏页面,且每个所述脏页面表项包括所述脏页面表项对应的脏页面的文件号和块号;
调整单元,用于根据所述第一获取单元获取的各个脏页面表项中的文件号和块号调整所述脏页面列表中所述脏页面表项的顺序;
第一写入单元,用于根据所述调整单元调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。
结合第二方面,在一种可能的实现方式中,所述调整单元,包括:
第一遍历模块,用于遍历所述脏页面列表,按照所述文件号由小到大的顺序排列所述脏页面列表中的脏页面表项;
排列模块,用于将按照所述文件号排序后的脏页面列表中,所述文件号相同的脏页面表项按照所述块号由小到大的顺序进行排列。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一写入单元,包括:
读取模块,用于从所述调整后的脏页面列表中读取第一个脏页面表项中的文件号和块号;
获取模块,用于根据所述第一个脏页面表项中的文件号和块号从所述数据库系统的内存中获取所述第一个脏页面表项对应的脏页面;
写入模块,用于将所述第一个脏页面表项对应的脏页面写入所述磁盘;
其中,所述读取模块,还用于根据所述调整后的脏页面列表中所述脏页面表项的顺序,依次读取所述第一个脏页面表项之后的每一个脏页面表项的文件号和块号;
所述获取模块,还用于根据所述第一个脏页面表项之后的每一个脏页面表项的文件号和块号,依次从所述数据库系统的内存中获取所述第一个脏页面表项之后的每一个脏页面表项对应的脏页面;
所述写入模块,还用于将所述第一个脏页面表项之后的每一个脏页面表项对应的脏页面依次写入所述磁盘。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述检查点操作装置,还包括:
第二获取单元,用于在所述第一写入单元根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘之前,获取数据库系统的状态信息,所述状态信息包括所述数据库系统的输入/输出I/O利用率和中央处理器CPU利用率;
所述第一写入单元,还用于若所述状态信息满足预设条件,则根据所述调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘;
所述第一写入单元,还用于若所述状态信息不满足所述预设条件,则暂停将所述脏页面写入所述磁盘;
其中,所述状态信息满足所述预设条件具体为:所述I/O利用率小于第一预设阈值,且所述CPU利用率小于第二预设阈值。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述检查点操作装置,还包括:
第三获取单元,用于在所述第一写入单元暂停将所述脏页面写入所述磁盘之后,在一个预设时间后,重新获取所述数据库系统的所述状态信息;
第二写入单元,用于若所述状态信息满足所述预设条件,则根据所述调整后的所述脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一获取单元,包括:
第二遍历模块,用于遍历所述内存中的所有的页面,以识别所述脏页面,所述脏页面包含页面标记;
生成模块,用于根据各个页面的所述页面标记获取所述脏页面的文件号和块号,并根据所述脏页面的文件号和块号生成所述脏页面列表。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述检查点操作装置,还包括:
生成单元,用于在所述调整单元调整所述脏页面列表中所述脏页面 表项的顺序之前,生成检查点日志,所述检查点日志用于记录所述检查点操作的开始时刻,以便所述数据库系统在进行数据库系统恢复时,直接从所述检查点操作的开始时刻所对应的操作在日志文件中的对应位置开始恢复所述数据库系统;
其中,所述检查点操作的开始时刻为开始从所述内存获取所述脏页面列表的时刻,所述日志文件用于记录所述数据库系统中的每一步操作。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述检查点操作装置,还包括:
第三写入单元,用于在所述第一写入单元依次将所述脏页面表项对应的脏页面写入所述磁盘之后,将所述检查点日志写入所述日志文件;
更新单元,用于更新所述磁盘中的控制文件,所述控制文件用于记录检查点信息,所述检查点信息包括:所述检查点操作开始时刻和所述检查点操作开始时刻所对应的操作在所述日志文件中的对应位置。
本发明实施例提供的检查点操作方法及装置,从数据库系统的内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,脏页面列表中包含至少一个脏页面表项,每个脏页面表项对应于一个脏页面,且每个脏页面表项包括脏页面表项对应的脏页面的文件号和块号,然后根据各个脏页面表项中的文件号和块号调整脏页面列表中脏页面表项的顺序,最后根据调整后的脏页面列表中脏页面表项的顺序,依次将脏页面表项对应的脏页面写入磁盘。与现有技术中,将所有脏页一并写入磁盘相比,可以根据脏页面表项的排列顺序将脏页面一一写入磁盘,不会瞬间会产生大量的输入/输出(Input/Output,I/O)请求,可以减少执行检查点操作时对数据库系统性能的影响。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中的一种检查点操作方法流程图;
图2为本发明实施例2中的一种检查点操作方法流程图;
图3为本发明实施例3中的一种检查点操作装置的组成示意图;
图4为本发明实施例3中的另一种检查点操作装置的组成示意图;
图5为本发明实施例3中的另一种检查点操作装置的组成示意图;
图6为本发明实施例4中的一种检查点操作装置的组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例1
本发明实施例提供一种检查点操作方法,如图1所示,包括:
101、从数据库系统的内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,脏页面列表中包含至少一个脏页面表项,每个脏页面表项对应于一个脏页面,且每个脏页面表项包括所述脏页面表项对应的脏页面的文件号和块号。
其中,数据库系统可以对内存(缓冲区缓存)中的数据库页面进行修改,但在每次更改后不将这些页写入磁盘。但是,数据库系统发出对每个数据库系统的检查点命令,触发检查点操作装置(检查点进程)执行相应的检查点操作。“检查点”将当前内存中已修改的页(称为“脏页”)和检查点日志信息从内存写入磁盘,并在日志文件中记录检查点日志信息,以便于数据库系统在数据库意外关闭或者崩溃后,进行数据库系统恢复时可以根据日志文件中记录检查点日志信息实现数据库的快速恢复。
示例性的,如果没有检查点操作,一旦数据库系统由于断电等原因 崩溃,数据库系统无法确定内存中的哪些更新(修改)已经写入磁盘,哪些更新还未写入磁盘。此时,数据库系统则需要使用数据库系统运行以来的所有日志文件恢复该数据库中的数据信息,整个恢复过程复杂而漫长。若定期执行检查点操作,则在执行检查点操作时,会在日志文件中写入检查点信息(检查点日志),给系统打上一个时间戳,表明在这一时刻,以往所有的更新得到了确认,已经写入磁盘。在数据库系统恢复时,只要从日志文件中最后一个检查点开始就可以了,可以减少数据库恢复的时间。
具体的,获取脏页面列表的方法可以包括:遍历数据库系统内存中的所有的页面,然后根据页面的页面标记获取脏页面的文件号和块号,并根据脏页面的文件号和块号生成脏页面列表。其中,数据库系统中被修改后的页面(脏页面)中包含页面标记。
需要说明的是,本发明实施例中,可以以检查点操作装置(硬件)作为方法实施例的执行主体,也可以以检查点进程(软件)作为方法实施例的执行主体。
102、根据各个脏页面表项中的文件号和块号调整脏页面列表中脏页面表项的顺序。
具体的,根据各个脏页面表项中的文件号和块号调整脏页面列表中脏页面表项的顺序可以包括:遍历脏页面列表,按照文件号由小到大的顺序排列脏页面列表中的脏页面表项,然后将按照文件号排序后的脏页面列表中,文件号相同的脏页面表项按照块号由小到大的顺序进行排列。
103、根据调整后的脏页面列表中脏页面表项的顺序,依次将脏页面表项对应的脏页面写入磁盘。
其中,检查点操作装置根据更新调整后的脏页面列表将脏页面表项对应的脏页面写入磁盘还包括:检查点操作装置根据更新调整后的脏页面列表将脏页面列表中至少一个脏页面表项对应的脏页面写入磁盘。具体的,由于检查点操作装置每次在执行检查点操作时,获取到的脏页面列表中的检查点中包含的脏页面表项可能不止一个,因此检查点操作装置根据调整后的脏页面列表写入磁盘的脏页面也不止一个。
具体的,根据调整后的脏页面列表中脏页面表项的顺序,依次将脏页面表项对应的脏页面写入磁盘,可以包括:从调整后的脏页面列表中 读取第一个脏页面表项中的文件号和块号;根据第一个脏页面表项中的文件号和块号从数据库系统的内存中获取第一个脏页面表项对应的脏页面;将第一个脏页面表项对应的脏页面写入磁盘;根据调整后的脏页面列表中脏页面表项的顺序,依次对第一个脏页面表项之后的每一个脏页面表项执行上述读取文件号和块号、获取脏页面、以及将脏页面写入所述磁盘的操作。其中具体的,检查点操作装置将可以按照调整后的脏页面列表中脏页面表项的排列顺序,依次读取每一个脏页面的文件号和块号,并根据文件号和块号获取相应的脏页面,并将相应的脏页面写入磁盘,直至脏页面列表中的所有脏页面都被写入磁盘。
进一步可选的,本发明实施例的方法还可以包括:在根据调整后的所述脏页面列表将所述脏页面写入磁盘之前,获取数据库系统的状态信息,状态信息包括数据库系统的输入/输出(Input/Output,I/O)利用率和中央处理器(Central Processing Unit,CPU)利用率,然后判断状态信息是否满足预设条件;其中,所述状态信息是否满足预设条件具体为:I/O利用率是否小于第一预设阈值,且CPU利用率是否小于第二预设阈值。此时,根据调整后的脏页面列表将脏页面写入磁盘具体为:若状态信息满足预设条件,则根据调整后的脏页面列表中脏页面表项的顺序,依次将脏页面表项对应的脏页面写入磁盘。
本发明实施例提供的一种检查点操作方法,从数据库系统的内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,脏页面列表中包含至少一个脏页面表项,每个脏页面表项对应于一个脏页面,且每个脏页面表项包括脏页面表项对应的脏页面的文件号和块号,然后根据各个脏页面表项中的文件号和块号调整脏页面列表中脏页面表项的顺序,最后根据调整后的脏页面列表中脏页面表项的顺序,依次将脏页面表项对应的脏页面写入磁盘。与现有技术中,将所有脏页一并写入磁盘相比,可以根据脏页面表项的排列顺序将脏页面一一写入磁盘,不会瞬间会产生大量的I/O请求,可以减少执行检查点操作时对数据库系统性能的影响。
实施例2
本发明实施例提供一种检查点操作方法,如图2所示,包括:
201、遍历数据库系统的内存中的所有的页面,以识别脏页面,脏页面包含页面标记。
其中,数据库中被修改后的页面(脏页面)中可以包含页面标记,以便于可以根据页面标记从内存中获取脏页面的文件号和块号,并生成脏页面列表。
其中,在数据库系统对数据库中的数据页面进行修改后,当前内存中的数据页面可以包括未修改的页面和已修改的页面(脏页面),因此,需要遍历内存中的所有的页面,以便于从这些页面中获取已修改的页面(脏页面)。
数据库系统可以触发检查点进程执行检查点操作,具体的,数据库系统在固定的时间间隔内可以触发检查点装置进程执行检查点操作;或者,数据库系统可以不断检查内存中的数据更新状态,当内存中的已更新的数据量高于预设的阈值范围时,数据库系统可以触发激活检查点进程,执行检查点操作;或者,数据库系统可以响应于用户的检查点触发,触发检查点进程执行检查点操作。
需要说明的是,数据库系统触发检查点操作的方法包括但不限于本实施例所列举的方法,数据库系统触发检查点操作的其他方法本实施例这里不再赘述。
202、根据各个页面的页面标记获取脏页面的文件号和块号,并根据脏页面的文件号和块号生成脏页面列表。
示例性的,表1所示为一个简单的脏页面列表实例,脏页面列表主要可以包含脏页面的文件号和块号。其中,脏页面的文件号可以为该脏页面被修改前在数据库系统中所属的文件的编号,脏页面的块号可以为该脏页面被修改前在数据库系统中所属的文件中的编号。
表1
203、生成检查点日志,检查点日志用于记录检查点操作的开始时刻,以便数据库系统在进行数据库系统恢复时,直接从检查点操作的开始时刻所对应的操作在日志文件中的对应位置开始恢复数据库系统。
其中,检查点操作的开始时刻为开始从内存获取所述脏页面列表的时刻,日志文件用于记录数据库系统中的每一步操作。
204、遍历脏页面列表,按照文件号由小到大的顺序排列脏页面列表中的脏页面表项。
具体的,检查点进程可以遍历脏页面列表,获取所有脏页面的脏页面表项中的文件号,并按照文件号由小到大的顺序排列脏页面表项。例如,若以(文件号,块号)的形式标识每一个脏页面,则可以将表1中的脏页面表项按照如下顺序排列:(a,25)、(a,20)、(b,25)、(b,7)、(c、100)、(c、48)。
205、将按照文件号排序后的脏页面列表中,文件号相同的脏页面表项按照块号由小到大的顺序进行排列。
其中,在按照文件号由小到大的顺序排列脏页面表项后,还可以按照块号由小到大的顺序排列文件号相同的脏页面表项。例如,还可以将表1中的脏页面表项按照如下顺序排列:(a,20)、(a,25)、(b,7)、(b,25)、(c、48)、(c、100)。
示例性的,可以根据排列后的脏页面表项,如(a,20)、(a,25)、(b,7)、(b,25)、(c、48)、(c、100)更新脏页面列表1,更新 后的脏页面列表如表2所示:
表2
需要说明的是,在本实施例中步骤203和步骤204-205的执行不分先后,可以先执行步骤203,在执行步骤204-205;也可以先执行步骤204-205,再执行步骤203。
进一步的,为了避免执行检查点操作时对数据库的正常运行的影响,避免影响数据库系统性能,本发明实施例的方法还可以包括步骤206至步骤207:
206、获取数据库系统的状态信息,状态信息包括数据库系统的I/O利用率和CPU利用率。
其中,在将脏页面写入磁盘时,可能会产生大量的I/O请求,并占用CPU,可能会影响数据库系统的正常运行。因此,可以在将脏页面写入磁盘之前,首先获取数据库系统的状态信息,在状态信息满足预设条件的情况下(检查点操作不影响数据库系统的正常运行的情况下),然后再将脏页面写入磁盘。其中,数据库系统的状态信息包括但不限于数据库系统的I/O利用率和CPU利用率,其他的数据库系统状态信息本实施例这里不再赘述。
207、判断状态信息是否满足预设条件。
具体的,状态信息是否满足预设条件为:I/O利用率是否小于第一预设阈值,且CPU利用率是否小于第二预设阈值。
其中,可以根据能够保证数据库正常运行时的I/O最高占用率和最高CPU最高占用率和执行将脏页面写入磁盘时的I/O占用率和CPU占用率确定第一预设阈值和第二预设阈值。其中,I/O占用率和CPU占用率分别为系统运行时,对I/O和CPU的占用百分比。
具体的,若状态信息满足预设条件,则执行步骤208至步骤210;若状态信息不满足预设条件,则执行步骤211。
208、从调整后的脏页面列表中读取第一个脏页面表项中的文件号和块号。
209、根据第一个脏页面表项中的文件号和块号从数据库系统的内存中获取第一个脏页面表项对应的脏页面。
210、将第一个脏页面表项对应的脏页面写入磁盘。
其中,检查点进程可以根据调整后的脏页面列表,将至少一个脏页面写入磁盘。具体的,当将一个脏页面写入磁盘后,还可以再按照调整后的脏页面列表中脏页面表项的排列顺序,从调整后的脏页面列表中读取下一个脏页面的文件号和块号,然后根据该脏页面的文件号和块号从内存中获取该脏页面,将该脏页面写入磁盘,直至脏页面列表中的所有脏页面都被写入磁盘。即可以循环执行步骤208至步骤210,根据调整后的脏页面列表中脏页面表项的顺序,依次对第一个脏页面表项之后的每一个脏页面表项执行上述读取文件号和块号、获取脏页面、以及将脏页面写入磁盘的操作。
需要说明的是,根据调整后的脏页面列表中脏页面表项的顺序,依次将脏页面表项对应的脏页面写入磁盘的方法包括但不局限于步骤208-209所述的方法,根据调整后的脏页面列表中脏页面表项的顺序,依次将脏页面表项对应的脏页面写入磁盘的方法还可以包括:从调整后的脏页面列表中读取所有脏页面表项中的文件号和块号;根据所有脏页面表项中的文件号和块号获取所有脏页面表项对应的脏页面;根据调整后的脏页面列表中脏页面表项的顺序,依次将脏页面表项对应的脏页面写入磁盘。在这种方法中,也是根据脏页面表项的排列顺序将脏页面一一写入磁盘不会瞬间会产生大量的I/O请求,可以减少执行检查点操作时对数据库系统性能的影响。
211、暂停将脏页面写入磁盘。
其中,若状态信息不满足预设条件,则可以暂停将脏页面写入磁盘,并在一个预设时间后,在预定时间后再次执行步骤207206至步骤208207,即重新获取数据库系统的状态信息获取数据库系统的状态信息,并判断状态信息是否满足预设条件。若状态信息满足预设条件,则执行步骤209208至步骤211210,即根据调整后的脏页面列表中脏页面表项的排列顺序,从更新调整后的脏页面列表中读取一个脏页面的文件号和块号;根据脏页面的文件号和块号从内存中获取脏页面;将脏页面写入磁盘。若状态信息不满足预设条件,则暂停将脏页面写入磁盘。
212、将检查点日志写入日志文件。
其中,日志文件是一种数据库物理结构文件。数据库物理结构文件包括:数据文件、日志文件和控制文件。数据文件用于存储数据库的数据,如表、索引等。日志文件用于记录数据库系统对数据库的所有修改信息。它是三类文件中最复杂的一类文件,也是用于保证数据库安全与数据库备份、恢复相关的文件。控制文件是一个二进制文件,用于描述数据库的物理结构,控制文件可以包括:数据库名及数据库唯一标识、数据文件和日志文件的标识、数据库恢复所需的同步信息,即检查点号等。
213、更新磁盘中的控制文件。
其中,检查点操作开始时,检查点进程会记录检查点操作的开始时刻,以便数据库系统在进行数据库系统恢复时,直接从检查点操作的开始时刻所对应的操作在日志文件中的对应位置开始恢复数据库系统,会在检查点日志中记录检查点操作开始时刻在日志文件中的位置,但是在检查点操作执行一段时间后,由于在检查点操作执行过程中,日志文件可能会被别的事务更新,日志的位置也会前移,因此检查点执行完毕操作,将更新控制文件。
其中,控制文件用于记录检查点信息,检查点信息包括:检查点操作开始时刻和检查点操作开始时刻所对应的操作在日志文件中的对应位置。
需要说明的是,本发明实施例的方法可以应用于采用“检查点”操作进行脏页面写入的系统以及需要大量写盘的系统,例如,磁盘数据库系统、集群数据库系统和大规模并行处理器(Massively Parallel Processor,MPP)数据库系统等。
本发明实施例提供的一种检查点操作方法,从数据库系统的内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,脏页面列表中包含至少一个脏页面表项,每个脏页面表项对应于一个脏页面,且每个脏页面表项包括脏页面表项对应的脏页面的文件号和块号,然后根据各个脏页面表项中的文件号和块号调整脏页面列表中脏页面表项的顺序,最后根据调整后的脏页面列表中脏页面表项的顺序,依次将脏页面表项对应的脏页面写入磁盘。与现有技术中,将所有脏页一并写入磁盘相比,可以根据脏页面表项的排列顺序将脏页面一一写入磁盘,不会瞬间会产生大量的I/O请求,可以减少执行检查点操作时对数据库系统性能的影响。
实施例3
本发明实施例提供一种检查点操作装置,如图3所示,包括:第一获取单元31、调整单元32、第一写入单元33。
第一获取单元31,用于从内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,所述脏页面列表中包含至少一个脏页面表项,每个所述脏页面表项对应于一个脏页面,且每个所述脏页面表项包括所述脏页面表项对应的脏页面的文件号和块号。
调整单元32,用于根据所述第一获取单元31获取的各个脏页面表项中的文件号和块号调整所述脏页面列表中所述脏页面表项的顺序。
第一写入单元33,用于根据所述调整单元32调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。
进一步的,如图4所示,所述调整单元32,包括:第一遍历模块321、排列模块322。
第一遍历模块321,用于遍历所述脏页面列表,按照所述文件号由小到大的顺序排列所述脏页面列表中的脏页面表项。
排列模块322,用于将按照所述文件号排序后的脏页面列表中,所述文件号相同的脏页面表项按照所述块号由小到大的顺序进行排列。
进一步的,所述第一写入单元33,包括:读取模块331、获取模块332、写入模块333。
读取模块331,用于从所述调整后的脏页面列表中读取第一个脏页面 表项中的文件号和块号。
获取模块332,用于根据所述第一个脏页面表项中的文件号和块号从所述数据库系统的内存中获取所述第一个脏页面表项对应的脏页面。
写入模块333,用于将所述第一个脏页面表项对应的脏页面写入所述磁盘。
其中,所述读取模块331,还用于根据所述调整后的脏页面列表中所述脏页面表项的顺序,依次读取所述第一个脏页面表项之后的每一个脏页面表项的文件号和块号。
获取模块332,还用于根据所述第一个脏页面表项之后的每一个脏页面表项的文件号和块号,依次从所述数据库系统的内存中获取所述第一个脏页面表项之后的每一个脏页面表项对应的脏页面。
写入模块333,还用于将所述第一个脏页面表项之后的每一个脏页面表项对应的脏页面依次写入所述磁盘。
进一步的,所述检查点操作装置,还可以包括:第二获取单元34。
第二获取单元34,用于在所述第一写入单元33根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘之前,获取数据库系统的状态信息,所述状态信息包括所述数据库系统的输入/输出I/O利用率和中央处理器CPU利用率。
进一步的,在本发明实施例的一种应用场景中,所述第一写入单元33,还用于若所述状态信息满足预设条件,则根据所述调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。
在本发明实施例的另一种应用场景中,所述第一写入单元33,还用于若所述状态信息不满足所述预设条件,则暂停将所述脏页面写入所述磁盘。
其中,所述状态信息满足所述预设条件具体为:所述I/O利用率小于第一预设阈值,且所述CPU利用率小于第二预设阈值。
进一步的,如图5所示,在这种应用场景中,所述的检查点操作装置,还可以包括:第三获取单元35、第二写入单元36。
第三获取单元35,用于在所述第一写入单元33暂停将所述脏页面写 入所述磁盘之后,在一个预设时间后,重新获取所述数据库系统的所述状态信息。
第二写入单元36,用于若所述状态信息满足所述预设条件,则根据所述调整后的所述脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。
进一步的,所述第一获取单元31,包括:第二遍历模块311、生成模块312。
第二遍历模块311,用于遍历所述内存中的所有的页面,以识别所述脏页面,所述脏页面包含页面标记。
生成模块312,用于根据各个页面的所述页面标记获取所述脏页面的文件号和块号,并根据所述脏页面的文件号和块号生成所述脏页面列表。
进一步的,所述检查点操作装置,还可以包括:生成单元37。
生成单元37,用于在所述调整单元32调整所述脏页面列表中所述脏页面表项的顺序之前,生成检查点日志,所述检查点日志用于记录所述检查点操作的开始时刻,以便所述数据库系统在进行数据库系统恢复时,直接从所述检查点操作的开始时刻所对应的操作在日志文件中的对应位置开始恢复所述数据库系统。
其中,所述检查点操作的开始时刻为开始从所述内存获取所述脏页面列表的时刻,所述日志文件用于记录所述数据库系统中的每一步操作。
进一步的,所述检查点操作装置,还可以包括:第三写入单元38、第二更新单元39。
第三写入单元38,用于在所述第一写入单元33依次将所述脏页面表项对应的脏页面写入所述磁盘之后,将所述检查点日志写入所述日志文件。
更新单元39,用于更新所述磁盘中的控制文件,所述控制文件用于记录检查点信息,所述检查点信息包括:所述检查点操作开始时刻和所述检查点操作开始时刻所对应的操作在所述日志文件中的对应位置。
需要说明的是,本发明实施例提供的检查点操作装置中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的检查点操作装置,从数据库系统的内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,脏页面列表中包含至少一个脏页面表项,每个脏页面表项对应于一个脏页面,且每个脏页面表项包括脏页面表项对应的脏页面的文件号和块号,然后根据各个脏页面表项中的文件号和块号调整脏页面列表中脏页面表项的顺序,最后根据调整后的脏页面列表中脏页面表项的顺序,依次将脏页面表项对应的脏页面写入磁盘。与现有技术中,将所有脏页一并写入磁盘相比,可以根据脏页面表项的排列顺序将脏页面一一写入磁盘,不会瞬间会产生大量的I/O请求,可以减少执行检查点操作时对数据库系统性能的影响。
实施例4
本发明实施例提供一种检查点操作装置,如图6所示,包括:处理器41、存储器42。
处理器41,用于从内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,所述脏页面列表中包含至少一个脏页面表项,每个所述脏页面表项对应于一个脏页面,且每个所述脏页面表项包括所述脏页面表项对应的脏页面的文件号和块号;根据各个脏页面表项中的文件号和块号调整所述脏页面列表中所述脏页面表项的顺序。
存储器42,用于存储所述处理器41调整后的脏页面列表。
所述处理器41,还用于根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。
进一步的,所述处理器41,还用于遍历所述脏页面列表,按照所述文件号由小到大的顺序排列所述脏页面列表中的脏页面表项;将按照所述文件号排序后的脏页面列表中,所述文件号相同的脏页面表项按照所述块号由小到大的顺序进行排列。
进一步的,所述处理器41,还用于从所述调整后的脏页面列表中读取第一个脏页面表项中的文件号和块号;根据所述第一个脏页面表项中的文件号和块号从所述数据库系统的内存中获取所述第一个脏页面表项对应的脏页面;将所述第一个脏页面表项对应的脏页面写入所述磁盘;根据所述调整后的脏页面列表中所述脏页面表项的顺序,依次对所述第一个脏页面表项之后的每一个脏页面表项执行上述读取文件号和块号、获取脏页面、以及将脏页面写入所述磁盘的操作。
进一步的,所述处理器41,还用于在执行所述根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘之前,获取数据库系统的状态信息,所述状态信息包括所述数据库系统的输入/输出I/O利用率和中央处理器CPU利用率。
所述处理器41,还用于若所述状态信息满足预设条件,则根据所述调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘;若所述状态信息不满足所述预设条件,则暂停将所述脏页面写入所述磁盘。
其中,所述状态信息满足所述预设条件具体为:所述I/O利用率小于第一预设阈值,且所述CPU利用率小于第二预设阈值。
进一步的,所述处理器41,还用于在执行所述暂停将所述脏页面写入所述磁盘之后,在一个预设时间后,重新获取所述数据库系统的所述状态信息;
若所述状态信息满足所述预设条件,则根据所述调整后的所述脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。
进一步的,所述处理器41,还用于遍历所述内存中的所有的页面,以识别所述脏页面,所述脏页面包含页面标记;根据各个页面的所述页面标记获取所述脏页面的文件号和块号,并根据所述脏页面的文件号和块号生成所述脏页面列表。
进一步的,所述处理器41,还用于在执行所述根据各个脏页面表项中的文件号和块号调整所述脏页面列表中所述脏页面表项的顺序之前,生成检查点日志,所述检查点日志用于记录所述检查点操作的开始时刻,以便所述数据库系统在进行数据库系统恢复时,直接从所述检查点操作的开始时刻所对应的操作在日志文件中的对应位置开始恢复所述数据库系统。
其中,所述检查点操作的开始时刻为开始从所述内存获取所述脏页面列表的时刻,所述日志文件用于记录所述数据库系统中的每一步操作。
进一步的,所述处理器41,还用于在执行所述根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘之后,将所述检查点日志写入所述日志文件;更新所述磁盘 中的控制文件,所述控制文件用于记录检查点信息,所述检查点信息包括:所述检查点操作开始时刻和所述检查点操作开始时刻所对应的操作在所述日志文件中的对应位置。
需要说明的是,本发明实施例提供的检查点操作装置中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的检查点操作装置,从数据库系统的内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,脏页面列表中包含至少一个脏页面表项,每个脏页面表项对应于一个脏页面,且每个脏页面表项包括脏页面表项对应的脏页面的文件号和块号,然后根据各个脏页面表项中的文件号和块号调整脏页面列表中脏页面表项的顺序,最后根据调整后的脏页面列表中脏页面表项的顺序,依次将脏页面表项对应的脏页面写入磁盘。与现有技术中,将所有脏页一并写入磁盘相比,可以根据脏页面表项的排列顺序将脏页面一一写入磁盘,不会瞬间会产生大量的I/O请求,可以减少执行检查点操作时对数据库系统性能的影响。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选 择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种检查点操作方法,其特征在于,包括:
从数据库系统的内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,所述脏页面列表中包含至少一个脏页面表项,每个所述脏页面表项对应于一个脏页面,且每个所述脏页面表项包括所述脏页面表项对应的脏页面的文件号和块号;
根据各个脏页面表项中的文件号和块号调整所述脏页面列表中所述脏页面表项的顺序;
根据调整后的脏页面列表中脏页面表项的顺序,依次将每个脏页面表项对应的脏页面写入所述磁盘。
2.根据权利要求1所述的检查点操作方法,其特征在于,所述根据各个脏页面中的文件号和块号调整所述脏页面列表中所述脏页面表项的顺序,包括:
遍历所述脏页面列表,按照所述文件号由小到大的顺序排列所述脏页面列表中的脏页面表项;
将按照所述文件号排序后的脏页面列表中,所述文件号相同的脏页面表项按照所述块号由小到大的顺序进行排列。
3.根据权利要求1所述的检查点操作方法,其特征在于,所述根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘,包括:
从所述调整后的脏页面列表中读取第一个脏页面表项中的文件号和块号;
根据所述第一个脏页面表项中的文件号和块号从所述数据库系统的内存中获取所述第一个脏页面表项对应的脏页面;
将所述第一个脏页面表项对应的脏页面写入所述磁盘;
根据所述调整后的脏页面列表中所述脏页面表项的顺序,依次对所述第一个脏页面表项之后的每一个脏页面表项执行上述读取文件号和块号、获取脏页面、以及将脏页面写入所述磁盘的操作。
4.根据权利要求1所述的检查点操作方法,其特征在于,在所述根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘之前,所述方法还包括:
获取所述数据库系统的状态信息,所述状态信息包括所述数据库系统的输入/输出I/O利用率和中央处理器CPU利用率;
所述根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘,包括:
若所述状态信息满足预设条件,则根据所述调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘;
若所述状态信息不满足所述预设条件,则暂停将所述脏页面写入所述磁盘;
其中,所述状态信息满足所述预设条件具体为:所述I/O利用率小于第一预设阈值,且所述CPU利用率小于第二预设阈值。
5.根据权利要求4所述的检查点操作方法,其特征在于,在所述暂停将所述脏页面写入所述磁盘之后,所述方法还包括:
在一个预设时间后,重新获取所述数据库系统的所述状态信息;
若所述状态信息满足所述预设条件,则根据所述调整后的所述脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。
6.根据权利要求1所述的检查点操作方法,其特征在于,所述从内存中获取记录有待写入磁盘的脏页面信息的脏页面列表,包括:
遍历所述内存中的所有的页面,以识别所述脏页面,所述脏页面包含页面标记;
根据各个页面的所述页面标记获取所述脏页面的文件号和块号,并根据所述脏页面的文件号和块号生成所述脏页面列表。
7.根据权利要求1所述的检查点操作方法,其特征在于,在所述根据各个脏页面表项中的文件号和块号调整所述脏页面列表中所述脏页面表项的顺序之前,所述方法还包括:
生成检查点日志,所述检查点日志用于记录所述检查点操作的开始时刻,以便所述数据库系统在进行数据库系统恢复时,直接从所述检查点操作的开始时刻所对应的操作在日志文件中的对应位置开始恢复所述数据库系统;
其中,所述检查点操作的开始时刻为开始从所述内存获取所述脏页面列表的时刻,所述日志文件用于记录所述数据库系统中的每一步操作。
8.根据权利要求7所述的检查点操作方法,其特征在于,在所述根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘之后,所述方法还包括:
将所述检查点日志写入所述日志文件;
更新所述磁盘中的控制文件,所述控制文件用于记录检查点信息,所述检查点信息包括:所述检查点操作开始时刻和所述检查点操作开始时刻所对应的操作在所述日志文件中的对应位置。
9.一种检查点操作装置,其特征在于,包括:
第一获取单元,用于从内存中获取记录有待写入磁盘的脏页面的信息的脏页面列表,所述脏页面列表中包含至少一个脏页面表项,每个所述脏页面表项对应于一个脏页面,且每个所述脏页面表项包括所述脏页面表项对应的脏页面的文件号和块号;
调整单元,用于根据所述第一获取单元获取的各个脏页面表项中的文件号和块号调整所述脏页面列表中所述脏页面表项的顺序;
第一写入单元,用于根据所述调整单元调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。
10.根据权利要求9所述的检查点操作装置,其特征在于,所述调整单元,包括:
第一遍历模块,用于遍历所述脏页面列表,按照所述文件号由小到大的顺序排列所述脏页面列表中的脏页面表项;
排列模块,用于将按照所述文件号排序后的脏页面列表中,所述文件号相同的脏页面表项按照所述块号由小到大的顺序进行排列。
11.根据权利要求9所述的检查点操作装置,其特征在于,所述第一写入单元,包括:
读取模块,用于从所述调整后的脏页面列表中读取第一个脏页面表项中的文件号和块号;
获取模块,用于根据所述第一个脏页面表项中的文件号和块号从所述数据库系统的内存中获取所述第一个脏页面表项对应的脏页面;
写入模块,用于将所述第一个脏页面表项对应的脏页面写入所述磁盘;
其中,所述读取模块,还用于根据所述调整后的脏页面列表中所述脏页面表项的顺序,依次读取所述第一个脏页面表项之后的每一个脏页面表项的文件号和块号;
所述获取模块,还用于根据所述第一个脏页面表项之后的每一个脏页面表项的文件号和块号,依次从所述数据库系统的内存中获取所述第一个脏页面表项之后的每一个脏页面表项对应的脏页面;
所述写入模块,还用于将所述第一个脏页面表项之后的每一个脏页面表项对应的脏页面依次写入所述磁盘。
12.根据权利要求9所述的检查点操作装置,其特征在于,还包括:
第二获取单元,用于在所述第一写入单元根据调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘之前,获取数据库系统的状态信息,所述状态信息包括所述数据库系统的输入/输出I/O利用率和中央处理器CPU利用率;
所述第一写入单元,还用于若所述状态信息满足预设条件,则根据所述调整后的脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘;
所述第一写入单元,还用于若所述状态信息不满足所述预设条件,则暂停将所述脏页面写入所述磁盘;
其中,所述状态信息满足所述预设条件具体为:所述I/O利用率小于第一预设阈值,且所述CPU利用率小于第二预设阈值。
13.根据权利要求12所述的检查点操作装置,其特征在于,还包括:
第三获取单元,用于在所述第一写入单元暂停将所述脏页面写入所述磁盘之后,在一个预设时间后,重新获取所述数据库系统的所述状态信息;
第二写入单元,用于若所述状态信息满足所述预设条件,则根据所述调整后的所述脏页面列表中所述脏页面表项的顺序,依次将所述脏页面表项对应的脏页面写入所述磁盘。
14.根据权利要求9所述的检查点操作装置,其特征在于,所述第一获取单元,包括:
第二遍历模块,用于遍历所述内存中的所有的页面,以识别所述脏页面,所述脏页面包含页面标记;
生成模块,用于根据各个页面的所述页面标记获取所述脏页面的文件号和块号,并根据所述脏页面的文件号和块号生成所述脏页面列表。
15.根据权利要求9所述的检查点操作装置,其特征在于,还包括:
生成单元,用于在所述调整单元调整所述脏页面列表中所述脏页面表项的顺序之前,生成检查点日志,所述检查点日志用于记录所述检查点操作的开始时刻,以便所述数据库系统在进行数据库系统恢复时,直接从所述检查点操作的开始时刻所对应的操作在日志文件中的对应位置开始恢复所述数据库系统;
其中,所述检查点操作的开始时刻为开始从所述内存获取所述脏页面列表的时刻,所述日志文件用于记录所述数据库系统中的每一步操作。
16.根据权利要求15所述的检查点操作装置,其特征在于,还包括:
第三写入单元,用于在所述第一写入单元依次将所述脏页面表项对应的脏页面写入所述磁盘之后,将所述检查点日志写入所述日志文件;
更新单元,用于更新所述磁盘中的控制文件,所述控制文件用于记录检查点信息,所述检查点信息包括:所述检查点操作开始时刻和所述检查点操作开始时刻所对应的操作在所述日志文件中的对应位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100603733A CN103177085A (zh) | 2013-02-26 | 2013-02-26 | 一种检查点操作方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100603733A CN103177085A (zh) | 2013-02-26 | 2013-02-26 | 一种检查点操作方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103177085A true CN103177085A (zh) | 2013-06-26 |
Family
ID=48636946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100603733A Pending CN103177085A (zh) | 2013-02-26 | 2013-02-26 | 一种检查点操作方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103177085A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844436A (zh) * | 2017-11-02 | 2018-03-27 | 郑州云海信息技术有限公司 | 一种缓存中脏数据的组织管理方法、系统及存储系统 |
CN111881212A (zh) * | 2020-07-28 | 2020-11-03 | Oppo广东移动通信有限公司 | 执行检查点操作的方法、装置、设备及存储介质 |
CN112182010A (zh) * | 2020-11-30 | 2021-01-05 | 北京金山云网络技术有限公司 | 脏页刷新方法和装置、存储介质和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6253212B1 (en) * | 1998-06-23 | 2001-06-26 | Oracle Corporation | Method and system for maintaining checkpoint values |
CN102750317A (zh) * | 2012-05-02 | 2012-10-24 | 华为技术有限公司 | 数据持久化处理方法、装置及数据库系统 |
-
2013
- 2013-02-26 CN CN2013100603733A patent/CN103177085A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6253212B1 (en) * | 1998-06-23 | 2001-06-26 | Oracle Corporation | Method and system for maintaining checkpoint values |
CN102750317A (zh) * | 2012-05-02 | 2012-10-24 | 华为技术有限公司 | 数据持久化处理方法、装置及数据库系统 |
Non-Patent Citations (1)
Title |
---|
张琦: "虚拟化环境下的内存脏数据回写机制研究", 《万方数据》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844436A (zh) * | 2017-11-02 | 2018-03-27 | 郑州云海信息技术有限公司 | 一种缓存中脏数据的组织管理方法、系统及存储系统 |
CN107844436B (zh) * | 2017-11-02 | 2021-07-16 | 郑州云海信息技术有限公司 | 一种缓存中脏数据的组织管理方法、系统及存储系统 |
CN111881212A (zh) * | 2020-07-28 | 2020-11-03 | Oppo广东移动通信有限公司 | 执行检查点操作的方法、装置、设备及存储介质 |
CN112182010A (zh) * | 2020-11-30 | 2021-01-05 | 北京金山云网络技术有限公司 | 脏页刷新方法和装置、存储介质和电子设备 |
CN112182010B (zh) * | 2020-11-30 | 2021-03-12 | 北京金山云网络技术有限公司 | 脏页刷新方法和装置、存储介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102750317B (zh) | 数据持久化处理方法、装置及数据库系统 | |
CN104040481B (zh) | 用于融合、存储和检索增量式备份数据的方法和系统 | |
US8856469B2 (en) | Apparatus and method for logging optimization using non-volatile memory | |
CN102541691B (zh) | 面向内存数据库oltp应用的日志检查点恢复方法 | |
CN102707990A (zh) | 基于容器的处理方法、装置和系统 | |
CN103970585A (zh) | 创建虚拟机的方法及装置 | |
KR20100070968A (ko) | 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법 | |
CN103412803A (zh) | 数据恢复的方法及装置 | |
CN103019888A (zh) | 备份方法与装置 | |
CN104461773A (zh) | 一种虚拟机备份去重的方法 | |
CN103049539A (zh) | 一种文件系统中文件数据的存储方法及其装置 | |
CN103064760A (zh) | 备份方法和备份装置 | |
CN103677653A (zh) | 一种基于ssd的数据处理方法及电子设备 | |
CN105224474A (zh) | 固态硬盘闪存转换层的实现系统和闪存转换层的实现装置 | |
CN104899114A (zh) | 一种固态硬盘上的连续时间数据保护方法 | |
CN103838780A (zh) | 数据库的数据恢复方法及相关的设备 | |
CN105589733B (zh) | 一种数据处理方法和装置 | |
CN105302665A (zh) | 一种改进的写时拷贝快照方法及系统 | |
CN106104515A (zh) | 利用非易失性存储器的文件系统设计和故障恢复方法 | |
WO2023277819A3 (zh) | 数据处理方法、系统、设备、计算机程序产品及存储功能 | |
CN103177085A (zh) | 一种检查点操作方法及装置 | |
CN114942863A (zh) | 一种级联快照处理方法、装置、设备及存储介质 | |
CN102955787A (zh) | 一种文件目录表的使用方法、文件写入方法及应用的主电路板、cpu和外部存储器 | |
CN104268097A (zh) | 一种元数据处理方法及系统 | |
CN103841168A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130626 |