CN109086425A - 用于数据库的数据处理方法和装置 - Google Patents
用于数据库的数据处理方法和装置 Download PDFInfo
- Publication number
- CN109086425A CN109086425A CN201810900567.2A CN201810900567A CN109086425A CN 109086425 A CN109086425 A CN 109086425A CN 201810900567 A CN201810900567 A CN 201810900567A CN 109086425 A CN109086425 A CN 109086425A
- Authority
- CN
- China
- Prior art keywords
- database
- memory
- filed
- dirty pages
- containing dirty
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请实施例公开了用于数据库的数据处理方法和装置。该方法的一具体实施方式包括:通过数据库的数据存储于外存,采用系统内存和非易失性内存作为数据库的缓冲池,并利用系统内存存储数据库的干净页,利用非易失性内存存储数据库的已提交脏页,从而在数据库发生导致易失性存储器中的数据丢失的故障时,能够利用非易失性内存保存已提交脏页,从而避免了全部采用系统内存作为缓冲池时,由于数据库故障而导致缓冲池中的数据全部丢失的情况。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及用于数据库的数据处理方法和装置。
背景技术
目前,通常是由系统内存作为数据库的缓冲池,来提升数据库的性能。在数据库的事务过程中,产生有数据库日志。在数据库发生故障时,系统内存中的数据会全部丢失,在故障恢复时,根据数据库日志,通过重做或回滚对应的数据库事务来保持数据库的数据的一致性。
发明内容
本申请实施例提出了用于数据库的数据处理方法和装置。
第一方面,本申请实施例提供了一种用于数据库的数据处理方法,其中,数据库的数据存储于外存,数据库的缓冲池采用系统内存和非易失性内存,系统内存用于存储数据库的干净页,非易失性内存用于存储数据库的已提交脏页,其中,干净页包括从外存中读取的且未被修改的数据,已提交脏页包括已提交的数据库事务所关联的、数据库事务提交后且未被同步到外存中的干净页,该方法包括:响应于接收到用于表征发生导致易失性存储器中的数据丢失的故障的信号,保存数据库的已提交脏页。
在一些实施例中,非易失性内存包括易失性存储器和非易失性存储器,其中,非易失性内存包括的易失性存储器用于存储数据库的已提交脏页;以及响应于接收到用于表征发生导致易失性存储器中的数据丢失的故障的信号,保存数据库的已提交脏页,包括:将非易失性内存包括的易失性存储器中存储的已提交脏页保存到非易失性存储器中。
在一些实施例中,上述方法还包括:响应于接收到用于表征故障恢复的信号,将非易失性存储器中保存的已提交脏页还原到非易失性内存包括的易失性存储器中。
在一些实施例中,系统内存还用于存储数据库的未提交脏页,其中,未提交脏页包括未提交的数据库事务所关联的、数据库事务未提交且未被同步到外存时的干净页。
在一些实施例中,数据库的干净页、未提交脏页和已提交脏页分别存储。
第二方面,本申请实施例提供了一种用于数据库的数据处理装置,其中,数据库的数据存储于外存,数据库的缓冲池采用系统内存和非易失性内存,系统内存用于存储数据库的干净页,非易失性内存用于存储数据库的已提交脏页,其中,干净页包括从外存中读取的且未被修改的数据,已提交脏页包括已提交的数据库事务所关联的、数据库事务提交后且未被同步到外存中的干净页,该装置包括:存储单元,被配置成响应于接收到用于表征发生导致易失性存储器中的数据丢失的故障,保存数据库的已提交脏页。
在一些实施例中,非易失性内存包括易失性存储器和非易失性存储器,其中,非易失性内存包括的易失性存储器用于存储数据库的已提交脏页;以及上述存储单元进一步被配置成:将非易失性内存包括的易失性存储器中存储的已提交脏页保存到非易失性存储器中。
在一些实施例中,上述存储单元进一步被配置成:响应于接收到用于表征故障恢复的信号,将非易失性存储器中保存的已提交脏页还原到非易失性内存包括的易失性存储器中。
在一些实施例中,系统内存还用于存储数据库的未提交脏页,其中,未提交脏页包括未提交的数据库事务所关联的、数据库事务未提交且未被同步到外存时的干净页。
在一些实施例中,数据库的干净页、未提交脏页和已提交脏页分别存储。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;系统内存,被配置成存储数据库的干净页,其中,数据库的数据存储于外存,干净页包括从外存中读取的且未被修改的数据;非易失性内存,被配置成存储数据库的已提交脏页,已提交脏页包括已提交的数据库事务所关联的、数据库事务提交后且未被同步到外存中的干净页;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本申请实施例提供的用于数据库的数据处理方法和装置,通过采用系统内存和非易失性内存作为数据库的缓冲池,并利用系统内存存储数据库的干净页,利用非易失性内存存储数据库的已提交脏页,从而在数据库发生导致易失性存储器中的数据丢失的故障时,能够利用非易失性内存保存已提交脏页,从而避免了全部采用系统内存作为缓冲池时,由于数据库故障而导致缓冲池中的数据全部丢失的情况,而且利用非易失性内存在故障时保存已提交脏页,使得在故障恢复时,能够快速将数据库恢复到故障前的状态,而整个过程中无需产生数据库日志文件。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本申请的用于数据库的数据处理方法的一个实施例的流程图;
图3是根据本申请的用于数据库的数据处理方法的又一个实施例的流程图;
图4是根据本申请的用于数据库的数据处理方法的一个应用场景的示意图;
图5是根据本申请的用于数据库的数据处理装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的非易失性内存的结构示意图
图7是适于用来实现本申请实施例的电子设备计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于数据库的数据处理方法或用于数据库的数据处理装置的实施例的示例性架构100。
如图1所示,系统架构100可以包括数据库管理系统101、数据库102和数据库102的缓冲池103。数据库管理系统101可以操纵和管理数据库102,如建立、使用和维护数据库102等。通常将数据库102中的部分数据提前缓存于缓冲池103中,并定期将缓冲池103中的数据同步刷新到数据库102中。
数据库管理系统101可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。数据库管理系统101也可以安装于各种电子设备(包括但不限于智能手机、平板电脑、电子书阅读器、膝上型便携计算机和台式计算机等等)中。
数据库102通常可以采用硬盘等外存作为存储载体。缓冲池103采用系统内存1031和非易失性内存1032来存储数据。其中,系统内存1031可以用来存储数据库的干净页104,非易失性内存1032可以用来存储数据库的已提交脏页105。
需要说明的是,本申请实施例所提供的用于数据库的数据处理方法可以由系统中的控制部分(例如非易失性内存中集成的处理器等)执行,用于数据库的数据处理装置可以设置于各种电子设备中。
应该理解,图1中的数据库管理系统、数据库和缓冲池的数目仅仅是示意性的。根据实现需要,可以具有任意数目的电子设备、数据库和缓冲池。
继续参考图2,其示出了根据本申请的用于数据库的数据处理方法的一个实施例的流程200。该用于数据库的数据处理方法包括以下步骤:
步骤201,响应于接收到用于表征发生导致易失性存储器中的数据丢失的故障的信号,保存数据库的已提交脏页。
在本实施例中,数据库的数据存储于外存,数据库的缓冲池采用系统内存和非易失性内存。非易失性内存可以实现在电流关闭时,其所存储的数据不会消失。非易失性内存包括但不限于:只读存储器、可编程只读存储器、可擦写可编程只读存储器、电可擦除可编程只读存储器、闪存、铁电存储器、磁性随机存储器、忆阻器、相变随机存储器、NAND闪存、NOR闪存、3D XPoint等。
系统内存可以用于存储数据库的干净页,非易失性内存可以用于存储数据库的已提交脏页。其中,干净页包括从外存中读取的且未被修改的数据库的数据,已提交脏页包括已提交的数据库事务所关联的、数据库事务提交后且未被同步到外存中的干净页。
其中,通常可以将存储于外存中的数据库的部分数据提前读取到缓冲池中,从而在数据库事务发生时,能够在缓冲池中找到所关联的数据,从而避免从外存中读取数据,提升读取数据的速度。数据库事务所关联的数据可以指数据库事务包含的一系列操作所涉及的数据库的数据。
在数据库事务执行的过程中,可以对所关联的、缓冲池中的干净页进行修改,在数据库事务提交之后,会产生修改过后的干净页。对于修改过后的干净页,若还没同步到外存中,即没有用该修改过后的干净页替换外存中的修改前的干净页,则该修改过后的干净页即为已提交脏页。
在本实施例中,在接收到用于表征发生导致易失性存储器中的数据丢失的故障(例如上述执行主体突然断电、由于操作失误导致执行主体突然停止运行等)的信号时,可以利用非易失性内存的性质保存数据库的已提交脏页。其中,信号可以指作为信息载体的任意类型的信号,包括电信号、光信号等。以电信号为例,可以通过幅度、频率、相位等变化来表示不同的信息。实践中,不同的非易失性内存、不同的计算机系统可以具有不同的指示发生导致易失性存储器中的数据丢失的故障的信号。
在本实施例的一些可选的实现方式中,系统内存还可以用于存储数据库的未提交脏页。其中,未提交脏页可以包括未提交的数据库事务所关联的、数据库事务未提交且未被同步到外存时的干净页。
在本实施例的一些可选的实现方式中,可以将数据库的干净页、未提交脏页和已提交脏页分别存储。例如,可以使用三个链表分别存储干净页、未提交脏页和已提交脏页,从而实现逻辑上这三种数据的分离。此时,在发生数据库事务时,若该数据库事务对一些干净页进行了修改,那么在该数据库事务未提交时,可以将这些被修改的干净页从存储干净页的链表中删除,并存储到存储未提交脏页的链表中。在该数据库事务提交之后,可以进一步地将这些被修改后的干净页从存储未提交脏页的链表中删除,并存储到存储已提交脏页的链表中,此时,在物理上,可以将所关联的已提交脏页从系统内存中转移到非易失性内存中。在非易失性内存中的已提交脏页被再次修改时,可以将已提交脏页从存储已提交脏页的链表中删除,并存储到存储未提交脏页的链表中,此时,在物理上,可以将所关联的已提交脏页从非易失性内存中转移到系统内存中。
可选地,在缓冲池被创建后的初期或者因故障导致缓冲池中的数据全部丢失后的故障恢复初期,可以预先从外存中读取部分数据存储于缓冲池中。
可选地,在缓冲池正常工作的过程中,可以从外存中预先读取部分数据替换缓冲池中的部分干净页。其中,从外存中预先读取的数据可以根据实际的应用场景设置,例如,可以将当前的数据库事务包含的数据库操作所涉及的数据所在的数据表中的数据全部读取到缓冲池中。缓冲池中被替换的干净页可以根据预设的替换算法确定,例如,可以采用现有的各种页面替换算法(如最近未使用页面置换算法、最近最少使用页面置换算法等)来确定缓冲池中被替换的干净页。
可选地,还可以定时或在满足预设的清除条件时,对缓冲池中的数据进行部分清除。例如,以当前时间为基准时间,可以将距离当前时间的一定时间段之前的、已提交的数据库事务所关联的已提交脏页从非易失性存储器中清除。又例如,可以将缓冲池中超过预设时间段未被修改的干净页从缓冲池中清除。又例如,清除条件可以为缓冲池的可用空间小于预设的可用阈值,或者已提交事务的数量达到一定限额等。
可选地,还可以在检测到数据库事务开始,且数据库事务所关联的数据包括数据库的已提交脏页时,可以将所关联的已提交脏页写回到外存中。此时,开始的数据库事务可以对非易失性内存中的已提交脏页进行修改,被修改的已提交脏页即变为未提交脏页,在该数据库事务完成提交之后,再变为已提交脏页。
可选地,在检测到数据库事务的开始,且数据库事务所关联的数据包括数据库的已提交脏页时,且所关联的已提交脏页还没有被写回到外存,可以将数据库事务所关联的已提交脏页拷贝到系统内存。之后,数据库事务可以对拷贝到系统内存中的已提交脏页进行修改,在事务提交后,得到新的已提交脏页。此时,可以判断对应的旧的已提交脏页是否被写回到外存中,若已被写回到外存中,则可以将新的已提交脏页存储于非易失性内存中的空闲区域,若没有被写回到外存中,即仍在非易失性内存中,则可以将新的已提交脏页存储到非易失性内存中以替换旧的已提交脏页。
在有数据库事务对未写回到外存中的已提交脏页进行修改时,可以通过如上述的先将已提交脏页写回到外存中,或者将已提交脏页拷贝到系统内存中的方式,可以避免对一些干净页前后有多个数据库事务进行修改时,由于在发生导致易失性存储器中的数据丢失的故障时,这些干净页当前关联的数据库事务未提交而不能被保存,导致在此次数据库事务之前的、未被写回到外存中的其它与这些干净页关联的数据库事务对这些干净页所做的操作不能被保存的情况。
本申请的上述实施例提供的方法通过采用系统内存和非易失性内存作为数据库的缓冲池,并利用非易失性内存来存储数据库的已提交脏页,从而在发生导致易失性存储器中的数据丢失的故障时,可以将已提交脏页保存到非易失性内存中,避免出现由于故障导致的缓冲池中的数据全部丢失的情况。进一步地,在故障恢复时,可以将非易失性内存保存的已提交脏页恢复到缓冲池中,从而无需数据库日志即可快速将数据库恢复至故障前的状态,同时,由于无需产生数据库日志,可以较大地提升数据库事务的执行速度。
进一步参考图3,其示出了用于数据库的数据处理方法的又一个实施例的流程300。该用于数据库的数据处理流程300,包括以下步骤:
步骤301,响应于接收到用于表征发生导致易失性存储器中的数据丢失的故障的信号,将非易失性内存包括的易失性存储器中存储的已提交脏页保存到非易失性存储器中,其中,数据库的缓冲池采用系统内存和非易失性内存,非易失性内存包括易失性存储器和非易失性存储器。
在本实施例中,非易失性内存可以包括易失性存储器和非易失性存储器。例如,在一些非易失性内存的实现方案中,集成了动态随机存取存储器和闪存。对于数据库的已提交脏页,将已提交脏页存储于非易失性内存的易失性存储器中。
可选地,非易失性内存中可以集成有电池或超级电容等供电装置,还可以集成有处理器,在接收到用于表征发生导致易失性存储器中的数据丢失的故障的信号时,可以利用电池或超级电容提供电力,由处理器将易失性存储器中的已提交脏页转移到非易失性存储器中,从而实现故障时对已提交脏页的保存。
可选地,非易失性内存中也可以固化有设置的程序,在接收到用于表征发生导致易失性存储器中的数据丢失的故障的信号时,可以由这段程序来控制将易失性存储器中的已提交脏页转移到非易失性存储器中,从而实现故障时对已提交脏页的保存。
步骤302,响应于接收到用于表征故障恢复的信号,将非易失性存储器中保存的已提交脏页还原到非易失性内存包括的易失性存储器中。
在本实施例中,在故障恢复时,可以将非易失性存储器中保存的已提交脏页还原到易失性存储器中,从而减轻故障对于数据库的影响。
继续参见图4,图4是根据本实施例的用于数据库的数据处理方法的应用场景的一个示意图。在图4的应用场景中,数据库的缓冲池401采用系统内存402存储数据库的干净页。缓冲池401还采用了非易失性内存403。非易失性内存403包括动态随机存储器4031和闪存4032。其中,采用动态随机存储器4031存储数据库的已提交脏页。
在突然发生掉电故障时,可以利用非易失性存储器上的超级电容4033提供的电力将动态随机存储器4031中的已提交脏页转移到闪存4032中。在电流恢复时,可以将闪存4032中保存的已提交脏页还原到动态随机存储器4031中。
从图3中可以看出,与图2对应的实施例相比,本实施例中的用于数据库的数据处理方法不仅在数据库事务的执行过程中无需产生数据库日志,提升了数据库执行的速度,不需要重做数据库日志中的各条记录,直接还原保存的已提交脏页即可恢复数据库,较高的提升了数据库的恢复速度,而且由于故障恢复后,缓冲池中依然可以保存已提交脏页,从而保证了故障恢复后的各数据库事务的执行速度,避免了故障恢复后缓冲池为空而导致的后续一段时间内的数据库事务均需要从外存中读取相关数据的情况,提升了数据库的性能。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了用于数据库的数据处理装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例提供的用于数据库的数据处理装置500,其中,数据库的数据存储于外存,数据库的缓冲池采用系统内存和非易失性内存,系统内存用于存储数据库的干净页,非易失性内存用于存储数据库的已提交脏页,其中,干净页包括从外存中读取的且未被修改的数据,已提交脏页包括已提交的数据库事务所关联的、数据库事务提交后且未被同步到外存中的干净页,该用于数据库的数据处理装置500包括存储单元501。其中,存储单元501被配置成响应于接收到用于表征发生导致易失性存储器中的数据丢失的故障,保存数据库的已提交脏页。
在本实施例中,用于数据库的数据处理装置500中:存储单元501的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,非易失性内存包括易失性存储器和非易失性存储器,其中,易失性存储器用于存储数据库的已提交脏页;以及上述存储单元501进一步被配置成:将非易失性内存包括的易失性存储器中存储的已提交脏页保存到非易失性存储器中。
在本实施例的一些可选的实现方式中,上述存储单元501进一步被配置成:响应于接收到用于表征故障恢复的信号,将非易失性存储器中保存的已提交脏页还原到非易失性内存包括的易失性存储器中。
在本实施例的一些可选的实现方式中,系统内存还用于存储数据库的未提交脏页,其中,未提交脏页包括未提交的数据库事务所关联的、数据库事务未提交且未被同步到外存时的干净页。
在本实施例的一些可选的实现方式中,数据库的干净页、未提交脏页和已提交脏页分别存储。
本申请的上述实施例提供的装置,在接收到用于表征发生导致易失性存储器中的数据丢失的故障时,由存储单元利用非易失性内存保存已提交脏页,从而避免了全部采用系统内存作为缓冲池时,由于数据库故障而导致缓冲池中的数据全部丢失的情况,而且利用非易失性内存在故障时保存已提交脏页,使得在故障恢复时,能够快速将数据库恢复到故障前的状态,而整个过程中无需产生数据库日志文件。
下面参考图6,其示出了适于用来实现本申请实施例的非易失性内存的结构示意图。图6示出的非易失性内存的结构仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,非易失性内存600包括易失性存储部分601、非易失性存储部分602、控制部分603和供电部分604。非易失性内存可以安装于常用的电子设备中以用来异常(如断电)时的数据保护。其中,在系统上电时,可以由系统先判断上次是否是存在异常掉电,若上次为正常关机,则系统正常启动;若上次为异常掉电,则控制部分603控制将非易失性存储部分602中保存的数据恢复到易失性存储部分601中。当系统出现异常(如掉电时),供电部分604会进行供电,并由控制部分603控制将易失性存储部分601中的数据写到非易失性存储部分602中。
下面参考图7,其示出了适于用来实现本申请实施例的电子设备的计算机系统700的结构示意图。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。在存储部分708中,还可以存储数据库中的数据。在RAM703中,还可以存储有从存储部分708读取的数据库中的数据。在非易失性内存(NVM)712中,可以存储有从RAM703中读取的被修改后的数据库中的数据。CPU 701、ROM 702、RAM 703以及NVM712通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器,包括存储单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,存储单元还可以被描述为“响应于接收到用于表征发生导致易失性存储器中的数据丢失的故障的信号,保存数据库的已提交脏页的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:对数据库进行故障检测;响应于接收到用于表征发生导致易失性存储器中的数据丢失的故障的信号,保存数据库的已提交脏页,其中,数据库的数据存储于外存,数据库的缓冲池采用系统内存和非易失性内存,系统内存用于存储数据库的干净页,非易失性内存用于存储数据库的已提交脏页,其中,干净页包括从外存中读取的且未被修改的数据,已提交脏页包括已提交的数据库事务所关联的、数据库事务提交后且未被同步到外存中的干净页。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (12)
1.一种用于数据库的数据处理方法,其中,所述数据库的数据存储于外存,所述数据库的缓冲池采用系统内存和非易失性内存,所述系统内存用于存储所述数据库的干净页,所述非易失性内存用于存储所述数据库的已提交脏页,其中,干净页包括从所述外存中读取的且未被修改的数据,已提交脏页包括已提交的数据库事务所关联的、数据库事务提交后且未被同步到所述外存中的干净页,所述方法包括:
响应于接收到用于表征发生导致易失性存储器中的数据丢失的故障的信号,保存所述数据库的已提交脏页。
2.根据权利要求1所述的方法,其中,所述非易失性内存包括易失性存储器和非易失性存储器,其中,所述非易失性内存包括的易失性存储器用于存储所述数据库的已提交脏页;以及
所述响应于接收到用于表征发生导致易失性存储器中的数据丢失的故障的信号,保存所述数据库的已提交脏页,包括:
将所述非易失性内存包括的易失性存储器中存储的已提交脏页保存到所述非易失性存储器中。
3.根据权利要求2所述的方法,其中,所述方法还包括:
响应于接收到用于表征所述故障恢复的信号,将所述非易失性存储器中保存的已提交脏页还原到所述非易失性内存包括的易失性存储器中。
4.根据权利要求1所述的方法,其中,所述系统内存还用于存储所述数据库的未提交脏页,其中,未提交脏页包括未提交的数据库事务所关联的、数据库事务未提交且未被同步到所述外存时的干净页。
5.根据权利要求1所述的方法,其中,所述数据库的干净页、未提交脏页和已提交脏页分别存储。
6.一种用于数据库的数据处理装置,其中,所述数据库的数据存储于外存,所述数据库的缓冲池采用系统内存和非易失性内存,所述系统内存用于存储所述数据库的干净页,所述非易失性内存用于存储所述数据库的已提交脏页,其中,干净页包括从所述外存中读取的且未被修改的数据,已提交脏页包括已提交的数据库事务所关联的、数据库事务提交后且未被同步到所述外存中的干净页,所述装置包括:
存储单元,被配置成响应于接收到用于表征发生导致易失性存储器中的数据丢失的故障的信号,保存所述数据库的已提交脏页。
7.根据权利要求6所述的装置,其中,所述非易失性内存包括易失性存储器和非易失性存储器,其中,所述非易失性内存包括的易失性存储器用于存储所述数据库的已提交脏页;以及
所述存储单元进一步被配置成:将所述非易失性内存包括的易失性存储器中存储的已提交脏页保存到所述非易失性存储器中。
8.根据权利要求7所述的装置,其中,所述存储单元进一步被配置成:
响应于接收到用于表征所述故障恢复的信号,将所述非易失性存储器中保存的已提交脏页还原到所述非易失性内存包括的易失性存储器中。
9.根据权利要求6所述的装置,其中,所述系统内存还用于存储所述数据库的未提交脏页,其中,未提交脏页包括未提交的数据库事务所关联的、数据库事务未提交且未被同步到所述外存时的干净页。
10.根据权利要求6所述的装置,其中,所述数据库的干净页、未提交脏页和已提交脏页分别存储。
11.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
系统内存,被配置成存储数据库的干净页,其中,所述数据库的数据存储于外存,干净页包括从所述外存中读取的且未被修改的数据;
非易失性内存,被配置成存储所述数据库的已提交脏页,已提交脏页包括已提交的数据库事务所关联的、数据库事务提交后且未被同步到所述外存中的干净页;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810900567.2A CN109086425B (zh) | 2018-08-09 | 2018-08-09 | 用于数据库的数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810900567.2A CN109086425B (zh) | 2018-08-09 | 2018-08-09 | 用于数据库的数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109086425A true CN109086425A (zh) | 2018-12-25 |
CN109086425B CN109086425B (zh) | 2022-05-06 |
Family
ID=64833963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810900567.2A Active CN109086425B (zh) | 2018-08-09 | 2018-08-09 | 用于数据库的数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109086425B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659305A (zh) * | 2019-08-06 | 2020-01-07 | 上海孚典智能科技有限公司 | 基于非易失存储系统的高性能关系型数据库服务 |
CN111813839A (zh) * | 2020-05-20 | 2020-10-23 | 北京元心科技有限公司 | 多终端任务结果展示冲突的处理方法、系统及相应设备 |
CN112015807A (zh) * | 2019-05-31 | 2020-12-01 | 阿里巴巴集团控股有限公司 | 数据同步的处理方法、装置、电子设备及计算机存储介质 |
CN112214171A (zh) * | 2020-10-12 | 2021-01-12 | 华东师范大学 | 一种面向SQLite数据库的非易失性内存缓冲区设计方法 |
CN114974906A (zh) * | 2021-02-19 | 2022-08-30 | 美光科技公司 | 超级电容器及含有超级电容器的集成组合件 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106104515A (zh) * | 2014-01-24 | 2016-11-09 | 新加坡科技研究局 | 利用非易失性存储器的文件系统设计和故障恢复方法 |
CN106528001A (zh) * | 2016-12-05 | 2017-03-22 | 北京航空航天大学 | 一种基于非易失性存储器和软件raid的缓存系统 |
CN106951376A (zh) * | 2017-02-27 | 2017-07-14 | 清华大学 | 面向闪存的细粒度非易失缓存系统以及缓存管理方法 |
-
2018
- 2018-08-09 CN CN201810900567.2A patent/CN109086425B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106104515A (zh) * | 2014-01-24 | 2016-11-09 | 新加坡科技研究局 | 利用非易失性存储器的文件系统设计和故障恢复方法 |
CN106528001A (zh) * | 2016-12-05 | 2017-03-22 | 北京航空航天大学 | 一种基于非易失性存储器和软件raid的缓存系统 |
CN106951376A (zh) * | 2017-02-27 | 2017-07-14 | 清华大学 | 面向闪存的细粒度非易失缓存系统以及缓存管理方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015807A (zh) * | 2019-05-31 | 2020-12-01 | 阿里巴巴集团控股有限公司 | 数据同步的处理方法、装置、电子设备及计算机存储介质 |
WO2020238748A1 (zh) * | 2019-05-31 | 2020-12-03 | 阿里巴巴集团控股有限公司 | 数据同步的处理方法、装置、电子设备及计算机存储介质 |
CN110659305A (zh) * | 2019-08-06 | 2020-01-07 | 上海孚典智能科技有限公司 | 基于非易失存储系统的高性能关系型数据库服务 |
CN110659305B (zh) * | 2019-08-06 | 2020-11-24 | 上海孚典智能科技有限公司 | 基于非易失存储系统的高性能关系型数据库服务系统 |
CN111813839A (zh) * | 2020-05-20 | 2020-10-23 | 北京元心科技有限公司 | 多终端任务结果展示冲突的处理方法、系统及相应设备 |
CN111813839B (zh) * | 2020-05-20 | 2023-09-22 | 北京元心科技有限公司 | 多终端任务结果展示冲突的处理方法、系统及相应设备 |
CN112214171A (zh) * | 2020-10-12 | 2021-01-12 | 华东师范大学 | 一种面向SQLite数据库的非易失性内存缓冲区设计方法 |
CN112214171B (zh) * | 2020-10-12 | 2022-08-05 | 华东师范大学 | 一种面向SQLite数据库的非易失性内存缓冲区设计方法 |
CN114974906A (zh) * | 2021-02-19 | 2022-08-30 | 美光科技公司 | 超级电容器及含有超级电容器的集成组合件 |
Also Published As
Publication number | Publication date |
---|---|
CN109086425B (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109086425A (zh) | 用于数据库的数据处理方法和装置 | |
CN106227621B (zh) | 基于逻辑卷管理精简卷的数据备份方法及系统 | |
CN105745624B (zh) | 来自存储快照的虚拟机备份 | |
CN106852175B (zh) | 可配置易失性存储器数据保存触发器 | |
CN105630632B (zh) | 一种虚拟机恢复的方法及虚拟机管理设备 | |
CN101231604B (zh) | 用于集群服务器数据的卷级恢复的设备、系统及方法 | |
CN106062742A (zh) | 用于改进快照性能的系统和方法 | |
CN105593829B (zh) | 从原始映像备份中排除文件系统对象的方法、系统及介质 | |
CN109597677A (zh) | 用于处理信息的方法和装置 | |
CN109643259A (zh) | 快速系统状态克隆 | |
CN110515917B (zh) | 一种控制重构速度的方法、装置及介质 | |
CN106155943B (zh) | 一种双控存储设备的掉电保护的方法及装置 | |
CN110389858A (zh) | 存储设备的故障恢复方法和设备 | |
CN108733311A (zh) | 用于管理存储系统的方法和设备 | |
CN112527452A (zh) | 跨OpenStack的虚拟机迁移方法、装置及介质 | |
CN107667353A (zh) | 将核存储器内容转储清除并恢复到外部存储器 | |
CN108197139A (zh) | 一种同步更新配置项的处理方法及终端 | |
CN107122316A (zh) | 一种soc备电方法以及soc | |
CN107329806A (zh) | 一种开发环境构建方法及装置 | |
US20220334733A1 (en) | Data restoration method and related device | |
CN109101323A (zh) | 虚拟机运行状态下基于qcow2格式的快照实现方法 | |
CN111651239A (zh) | 一种虚拟机克隆方法、装置、设备、介质 | |
US20190004948A1 (en) | Systems and methods for prognosticating likelihood of successful save operation in persistent memory | |
CN103309696B (zh) | 一种Java卡扩展库更新方法、装置和Java卡 | |
CN107402843A (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 |