CN113590212A - 数据库实例的启动方法、装置及设备 - Google Patents

数据库实例的启动方法、装置及设备 Download PDF

Info

Publication number
CN113590212A
CN113590212A CN202110704080.9A CN202110704080A CN113590212A CN 113590212 A CN113590212 A CN 113590212A CN 202110704080 A CN202110704080 A CN 202110704080A CN 113590212 A CN113590212 A CN 113590212A
Authority
CN
China
Prior art keywords
database instance
buffer pool
data
linked list
database
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
CN202110704080.9A
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.)
Alibaba Innovation Co
Original Assignee
Alibaba Singapore Holdings Pte 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 Alibaba Singapore Holdings Pte Ltd filed Critical Alibaba Singapore Holdings Pte Ltd
Priority to CN202110704080.9A priority Critical patent/CN113590212A/zh
Publication of CN113590212A publication Critical patent/CN113590212A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

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

Abstract

本申请实施例提供一种数据库实例的启动方法、装置及设备。该方法包括:在数据库实例启动的过程中,确定数据库实例是否存在基于共享内存的缓冲池,基于共享内存的缓冲池是指对应内存是从共享内存中分配的缓冲池,共享内存独立于数据库实例存在;如果存在,将数据库实例连接到缓冲池,并根据缓冲池中的数据执行数据库实例启动过程中的数据修复操作,以完成数据库实例的启动。本申请实施例提供的方法能够使得数据库实例重启后,其数据操作性能快速恢复。

Description

数据库实例的启动方法、装置及设备
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库实例的启动方法、装置及设备。
背景技术
数据库是存储在磁盘上的一系列物理文件。要使用数据库,必须由数据库实例将磁盘上的文件读入内存中的缓冲池(buffer pool)。
通常,在数据库实例启动的过程中,由数据库实例从内存中分配缓冲池并对缓冲池进行初始化。在数据库实例启动完成之后,数据库实例可以使用初始化后的缓冲池提供数据库服务,具体的,可以将存储数据库中的数据块从磁盘读入缓冲池,并在缓冲池中进行数据的查找、修改处理,修改后的数据块还可以由缓冲池刷新到磁盘的对应位置,以将修改更新到数据库中。之后,在数据库实例关机或崩溃时,缓冲池所在的内存资源被释放。
然而,这种方式,数据库实例重启后,其数据操作性能无法快速恢复。
发明内容
本申请实施例提供一种数据库实例的启动方法、装置及设备,用以解决现有技术中数据库实例重启后,其数据操作性能无法快速恢复的问题。
第一方面,本申请实施例提供一种数据库实例的启动方法,包括:
在数据库实例启动的过程中,确定所述数据库实例是否存在基于共享内存的缓冲池,所述基于共享内存的缓冲池是指对应内存是从共享内存中分配的缓冲池;其中,所述共享内存独立于所述数据库实例存在;
如果存在,将所述数据库实例连接到所述缓冲池,并根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,以完成所述数据库实例的启动。
第二方面,本申请实施例提供一种数据库实例的启动装置,包括:
确定模块,用于在数据库实例启动的过程中,确定所述数据库实例是否存在基于共享内存的缓冲池,所述基于共享内存的缓冲池是指对应内存是从共享内存中分配的缓冲池;其中,所述共享内存独立于所述数据库实例存在;
修复模块,用于如果存在,将所述数据库实例连接到所述缓冲池,根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,以完成所述数据库实例的启动。
第三方面,本申请实施例提供一种计算机设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如第一方面任一项所述的方法。
第四方面,本申请实施例提供一种数据库管理系统,包括:数据库,以及部署所述数据库对应数据库实例的计算机设备,所述计算机设备用于执行第一方面任一项所述的方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行如第一方面任一项所述的方法。
本申请实施例还提供一种计算机程序,当所述计算机程序被计算机执行时,用于实现如第一方面任一项所述的方法。
在本申请实施例中,数据库实例对应的缓冲池是从独立于数据库实例的共享内存中分配,使得缓冲池的存在不再依赖于数据库实例,在数据库实例关机或崩溃后缓冲池所在的内存资源可以不被释放,数据库实例重启时其关机或崩溃前缓冲池中的数据还存在,通过根据缓冲池中的数据执行数据库实例启动过程中的数据修复处理以完成数据库实例的启动,使得数据库实例重启后可以继续使用关机或崩溃前缓冲池中缓存的数据进行数据操作,而关机或崩溃前缓冲池中已缓存有数据库中被频繁访问的数据,因此能够避免数据库实例重启后需要频繁从磁盘读取数据到缓冲池的情况,从而避免由于此种情况所带来操作性能无法快速恢复的问题,实现数据库实例重启后其数据操作性能的快速恢复。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的数据库管理系统的结构示意图;
图2为现有技术中数据库实例与其对应的缓冲池的关系示意图;
图3A为本申请一实施例提供的数据库实例与其对应的缓冲池的关系示意图;
图3B为本申请另一实施例提供的数据库实例与其对应的缓冲池的关系示意图;
图4为本申请一实施例提供的数据库实例的启动方法的流程示意图;
图5为本申请另一实施例提供的数据库实例启动方法的流程示意图;
图6为本申请实施例提供的数据库实例对应从共享内存中分配的缓冲池的示意图;
图7为本申请一实施例提供的根据缓冲池中的数据执行数据修复操作的流程示意图;
图8为本申请一实施例提供的数据库实例的启动装置的结构示意图;
图9为本申请一实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
为了方便本领域技术人员理解本申请实施例提供的技术方案,下面先对技术方案实现的技术环境进行说明。
相关技术中比较常用的数据库实例的启动方法,主要包括在数据库实例启动的过程中,由数据库实例从内存中分配缓冲池并对缓冲池进行初始化。并且,在数据库实例关机或崩溃时,缓冲池所在的内存资源被释放。然而,在数据库实例重启后数据操作性能无法快速恢复。因此,相关技术中亟需一种能够使得数据库实例重启后,其数据操作性能快速恢复的数据库实例启动方式。
基于类似于上文所述的实际技术需求,本申请提供的数据库实例的启动方法可以利用技术化的手段能够使得数据库实例重启后,其数据操作性能快速恢复。
下面通过一个示例性的应用场景具体说明本申请各个实施例提供的数据库实例的启动方法。
图1为本申请一实施例提供的数据库管理系统的结构示意图。如图1所示,该数据库管理系统中可以包括数据库实例11和数据库12。其中,数据库12是指存储在磁盘上的一系列文件的集合,例如SQL数据库等。数据库实例11用于操作数据库12中的数据,外界(例如用户)对数据库12中的数据做任何的操作,例如数据查询、数据修改等都是在数据库实例下进行。本申请实施例提供的方法是针对于数据库实例11的启动过程,即本申请实施例提供的方法可以由部署数据库实例11的计算机设备执行。
需要说明的是,图1中一个数据库12对应一个数据库实例11仅为举例,本申请实施例并不对数据库实例11与数据库12的对应方式作限定,例如在其他实施例中,一个数据库12也可以对应多个数据库实例11。
通常,如图2所示,在数据库实例启动的过程中,由数据库实例从其私有的内存21中分配缓冲池并对缓冲池进行初始化。由于缓冲池是由数据库实例分配的,因此缓冲池的存在依赖于数据库实例,在数据库实例运行的过程中缓冲池可以一直存在,然而在数据库实例关机或崩溃后缓冲池所在的内存资源会被释放,使得在数据库实例重启的过程中需要由数据库实例从内存中重新分配缓冲池并对缓冲池进行初始化。可以理解的是,初始化后的缓冲池中未缓存有从磁盘读取到的数据库中的数据,即数据库实例重启后缓冲池被初始化为空。
需要说明的是,数据库实例在操作数据库中的数据时,会先查看操作针对的数据是否在缓冲池中,如果在缓冲池中则可以直接对缓冲池中的数据进行操作,如果未在缓冲池中则需要先将操作针对的数据从磁盘读取到缓冲池中,然后再对缓冲池中的数据进行操作。并且,由于从磁盘中读取数据会消耗较长时间,因此先将操作针对的数据从磁盘读取到缓冲池中,再针对缓冲池中的相应数据进行操作的方式需要消耗较长的时间,数据操作性能较低。
传统技术中,由于数据库实例重启后对应的缓冲池被初始化为空,因此在数据库实例重启后的一段时间内,需要频繁的从磁盘读取数据到缓冲池,直至将数据库中被频繁访问的数据缓存在缓冲池中。由于频繁的从磁盘读取数据到缓冲池会导致数据库实例的数据操作性能较低,从而导致数据库实例重启后其数据操作性能无法快速恢复的问题。
为了解决数据库实例重启后其数据操作性能无法快速恢复的技术问题,在图1所示的数据库管理系统中,数据库实例11对应的缓冲池是从独立于数据库实例11的共享内存(Shared Memory)中分配,使得缓冲池的存在不再依赖于数据库实例,在数据库实例关机或崩溃后缓冲池所在的内存资源可以不被释放,数据库实例重启时其关机或崩溃前缓冲池中的数据还存在,通过根据缓冲池中的数据执行数据库实例启动过程中的数据修复处理以完成数据库实例的启动,使得数据库实例重启后可以继续使用关机或崩溃前缓冲池中缓存的数据进行数据操作,而关机或崩溃前缓冲池中已缓存有数据库中被频繁访问的数据,因此能够避免数据库实例重启后需要频繁从磁盘读取数据到缓冲池的情况,从而避免由于此种情况所带来操作性能无法快速恢复的问题,实现数据库实例重启后其数据操作性能的快速恢复。
可以理解的是,所述数据库实例启动的过程中执行所述数据修复操作的情况下,在所述数据库实例启动完成之后,所述数据库实例能够使用所述缓冲池中的数据来响应用户对数据库中数据的操作。
基于上述,在图1所示数据库管理系统中,部署数据库实例11的计算机设备在数据库实例11启动的过程中,可以确定数据库实例11是否存在基于共享内存的缓冲池,基于共享内存的缓冲池是指对应内存是从独立于数据库实例11存在的共享内存中分配的缓冲池,如果存在,将数据库实例11连接到缓冲池,并根据缓冲池中的数据执行数据库实例11启动过程中的数据修复操作,以完成数据库实例11的启动。
其中,共享内存独立于数据库实例11存在,即在数据库实例11退出时共享内存不被释放,也即共享内存并不会随着数据库实例11的关机或崩溃而释放,在数据库实例11关机或崩溃后,共享内存还可以独立存在。由于共享内存是独立于数据库实例11存在,因此从共享内存中分配的缓冲池的内存也可以独立于数据库实例11存在,从共享内存中分配的缓冲池的内存可以不再随着数据库实例的关机或崩溃而释放。
另外,共享内存可以由运维人员使用软件管理工具进行管理,管理的内容包括但不限于查看缓冲池的配置信息,释放共享内存等。
本申请实施例中,共享内存和数据库实例11可以位于同一物理机中,使得数据库实例11可以通过进程间通信(IPC)的方式直接访问从共享内存中分配的缓冲池。
本申请实施例中,数据库实例11可以基于虚拟化技术来实现,以提高资源利用率。
一个实施例中,如图3A所示,创建数据库实例11的虚拟机与创建共享内存M1的虚拟机可以为同一虚拟机(即图3A中的虚拟机31)。虽然共享内存M1和数据库实例11均是由同一虚拟机创建,但是由于共享内存M1并非是数据库实例11中的内存,因此共享内存M1可以独立于虚拟机实例11存在,从而在虚拟机实例11关机或崩溃时,从共享内存M中分配的缓冲池BF1所在的内存资源可以不被释放。在此情况下,当虚拟机31正常运行,而数据库实例11由于某种原因重启,数据库实例11还是可以继续使用缓冲池BF1中的数据。
另一个实施例中,如图3B所示,创建数据库实例11的虚拟机(即图3B中的虚拟机32)与创建共享内存的虚拟机(即图3B中的虚拟机33)可以是同一物理机上不同的虚拟机。由于不同虚拟机之间是相互独立的,因此共享内存M2可以独立于数据库实例11存在,从而在虚拟机实例11关机或崩溃时,从共享内存中分配的缓冲池BF2所在的内存资源可以不被释放。在此情况下,当虚拟机32正常运行,而数据库实例11由于某种原因重启,数据库实例11还是可以继续使用缓冲池BF2中的数据。或者,当虚拟机32由于某种原因重启导致数据库实例11重启,数据库实例11还是可以继续使用缓冲池BF2中的数据。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图4为本申请一实施例提供的数据库实例的启动方法的流程示意图,如图4所示,本实施例的方法可以包括:
步骤41,在数据库实例启动的过程中,确定所述数据库实例是否存在基于共享内存的缓冲池,所述基于共享内存的缓冲池是指对应内存是从共享内存中分配的缓冲池;其中,所述共享内存独立于所述数据库实例存在;
步骤42,如果存在,将所述数据库实例连接到所述缓冲池,并根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,以完成所述数据库实例的启动。
可选的,从共享内存中为所述数据库实例分配缓冲池的功能可以固定开启,在此情况下,在数据库实例启动的过程中,可以直接确定所述数据库实例是否存在基于共享内存的缓冲池。
或者,可选的,从共享内存中为所述数据库实例分配缓冲池的功能可以根据需求开启或关机,有利于提高灵活性。在此情况下,在数据库实例启动的过程中,可以先确定从共享内存中为所述数据库实例分配缓冲池是否开启,如果开启,进一步确定所述数据库实例是否存在基于共享内存的缓冲池。
一个实施例中,可以通过确定针对所述数据库实例是否设置有共享内存的标识来确定从共享内存中为所述数据库实例分配缓冲池的功能是否开启。其中,共享内存的标识例如可以为共享内存的键值(Key)。具体的,在确定针对所述数据库实例设置有共享内存的标识时,表示从共享内存中为所述数据库实例分配缓冲池的功能开启,从而可以进一步确定所述数据库实例是否存在基于共享内存的缓冲池;在确定针对所述数据库实例未设置有共享内存的标识时,表示从共享内存中为所述数据库实例分配缓冲池的功能未开启,从而可以采用传统技术所提供的方式完成所述数据库实例的启动,具体的可以由数据库实例从内存中分配缓冲池并对缓冲池进行初始化。基于此,所述在数据库实例启动的过程中,确定所述数据库实例是否存在基于共享内存的缓冲池之前,还可以包括:确定针对所述数据库实例是否设置有共享内存的标识;如果设置有,执行所述确定所述数据库实例是否存在基于共享内存的缓冲池的步骤。
例如,如图5所示,在数据库实例启动的过程中,在步骤51中可以先判断针对数据库实例是否设置有共享内存的标识,如果否则执行步骤52,如果是则执行步骤53。在步骤52中,数据库实例从其私有的内存(即private memory)中分配缓冲池。在步骤53中,进一步判断数据库实例是否存在基于共享内存的缓冲池。
本申请实施例提供的方法还可以包括:如果所述数据库实例不存在对应内存是从共享内存中分配缓冲池,从操作系统的共享内存中分配与所述数据库实例对应的缓冲池,初始化所述缓冲池,并对所述缓冲池与所述数据库实例做适配的配置处理。其中,所述操作系统例如可以为Linux操作系统,通过所述配置处理使得所述数据库实例可以使用所述缓冲池进行数据操作。参考图5,如果数据库实例不存在对应内存是从共享内存中分配的缓冲池,则执行步骤54。在步骤54中,从共享内存中分配与数据库实例对应的缓冲池。
如果所述数据库实例存在对应内存是从共享内存中分配的缓冲池,可以认为所述数据库实例的本次启动(关闭后启动或崩溃后恢复启动),可以继续使用所述数据库实例关机或崩溃前所述缓冲池中的数据,从而可以将所述数据库实例连接到(attach to)所述缓冲池,并根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,以完成所述数据库实例的启动。
可选的,在确定所述数据库实例存在对应内存是从共享内存中分配的缓冲池之后,可以直接将所述数据库实例连接到所述缓冲池。
或者可选的,在确定所述数据库实例存在对应内存是从共享内存中分配的缓冲池之后,可以进一步确定所述数据库实例的配置和所述缓冲池的配置是否相同,如果相同将所述数据库实例连接到所述缓冲池,以避免出现在数据库实例和缓冲池的配置不同的情况下,数据库实例使用缓冲池来进行数据操作所带来的问题,有利于提高数据库管理系统的可靠性。基于此,所述将所述数据库实例连接到所述缓冲池之前,还可以包括:确定所述数据库实例的配置和所述缓冲池的配置是否相同;如果相同,执行所述将所述数据库实例连接到所述缓冲池的步骤。继续参考图5,如果数据库实例存在对应内存是从共享内存中分配的缓冲池,则在步骤55中可以判断数据库实例的配置与缓冲池的配置是否相同,如果相同则执行步骤56,如果不相同则结束。在步骤56中,将数据库实例连接到缓冲池,并在步骤57中根据缓冲池中的数据在数据库实例启动的过程中执行数据修复操作。
进一步可选的,本申请实施例提供的方法还可以包括:如果所述数据库实例的配置和所述缓冲池的配置不相同,退出所述数据库实例的启动流程,并触发相应的告警提示信息。从而使得运维人员可以获知所述数据库实例退出启动流程的原因,方便运维人员解决问题。
需要说明的是,所述数据库实例的重启可能是关机后重启,也可能是崩溃后恢复重启。其中,关机后重启时,所述数据库实例上一次运行是正常关机(即clean shutdown),即数据库实例的上一次运行是通过执行clean shutdown将数据库实例关机。崩溃后恢复重启时,所述数据库实例的上一次运行是非正常关机,例如,数据库实例崩溃(crash)或者数据库实例所在虚拟机宕机会导致数据库实例非正常关机。
在所述数据库实例上一次运行是正常关机时,所述缓冲池中的数据不存在一致性问题,然而在所述数据库实例上一次运行不是正常关机时,所述缓冲池中的数据很可能存在一致性问题。因此,在所述根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作时,可以根据所述数据库实例上一次运行是否是正常关机来进行相应的数据修复操作。具体的,在所述数据库实例上一次运行是正常关机时,不执行所述缓冲池中的数据的修复操作;在所述数据库实例上一次运行不是正常关机时,执行对所述缓冲池中的数据的修复操作。
本申请实施例中,所述缓冲池中数据块的哈希索引可以存放在所述数据库实例私有的内存中,在所述数据库实例关机时,用于存放数据块的哈希索引的内存被释放。基于此,步骤42中所述根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,具体可以包括:在所述数据库实例的上一次运行是正常关机时,重建所述缓冲池中数据块的哈希索引;和/或,在所述数据库实例上一次运行不是正常关机时,修复所述缓冲池中的数据,并在修复的过程中重建所述缓冲池中数据块的哈希索引。
需要说明的是,对于重建缓冲池中数据块的哈希索引的具体方式,本申请不做限定。以下主要说明可以如何修复缓冲池中的数据。
如图6所示,以数据库12为MySQL数据库,数据库实例为mysqld实例为例,在mysqld实例连接到从共享内存中分配的缓冲池之后,mysqld实例的InnoDB可以采用本地内存访问(Local Memory Access)的方式访问共享内存。图6的共享内存中多个黑色小矩形框中的每个黑色小矩形框可以表示缓冲池中的一个数据块,数据块用于存放从数据库中读取的数据,一个实施例中,数据块可以为数据页(page)。图6的共享内存中的灰色大矩形框可以表示缓冲池中数据块之外的存储空间,例如可以用于缓存数据块描述信息的链表、锁信息等。图6的InnoDB中的白色矩形框可以表示InnoDB中的内存,例如可以用于缓存事务信息(Transaction Info)等。图6中的mysql***可以表示用于运维人员对共享内存进行管理的软件管理工具。
本申请实施例中,所述缓冲池中用于缓存数据块描述信息的链表可以包括:用于缓存空闲数据块的描述信息的第一链表(例如free list)、用于缓存非空闲数据块中需要刷新到磁盘的数据块的描述信息的第二链表(例如flush list)以及用于缓存非空闲数据块的描述信息的第三链表(例如LRU链表)。
本申请实施例中,所述修复所述缓冲池中的数据,具体可以包括:修复所述缓冲池中用于缓存数据块描述信息的链表。
在所述数据库实例上一次运行不是正常关机的情况下,如果在上一次运行结束时所述第一链表是加锁状态,可以认为所述第一链表的状态不可信,所述第一链表存在一致性问题,因此可以对所述第一链表进行修复。一个实施例中,可以通过重建所述第一链表的方式对所述第一链表进行修复。基于此,所述修复所述缓冲池中用于缓存数据块描述信息的链表,具体可以包括:将所述第一链表的状态设置为解锁状态,将所述第一链表初始化为空链表,并将所述缓冲池中空闲数据块的描述信息加入到所述第一链表中。
在所述数据库实例上一次运行不是正常关机的情况下,如果在上一次运行结束时所述第二链表是加锁状态,可以认为所述第二链表的状态不可信,所述第二链表存在一致性问题,因此可以对所述第二链表进行修复。一个实施例中,可以通过重建所述第二链表的方式对所述第二链表进行修复。基于此,所述修复所述缓冲池中用于缓存数据块描述信息的链表,具体可以包括:将所述第二链表的状态设置为解锁状态,将所述第二链表初始化为空链表,并将所述缓冲池中修改记录已被写入日志的脏数据块的描述信息,按照修改先后顺序依次加入到所述第二链表中。例如,可以在某一数据块的日志序列号(LSN,logsequence number)小于或等于数据库最后一条日志的LSN时,确定该数据块为修改记录已被写入日志的脏数据块。
在所述数据库实例上一次运行不是正常关机的情况下,如果所述缓冲池中存在状态不可信的数据块,可以认为所述第三链表存在一致性问题,因此可以根据这些状态不可信的数据块修复链表。其中,状态不可信的数据块可以包括处于加锁状态的数据块和/或修改记录未被写入日志的脏数据块。基于此,所述修复所述缓冲池中用于缓存数据块描述信息的链表,具体可以包括:将所述缓冲池中状态不可信的数据块的描述信息从所述第三链表中删除,将所述数据块的类型设置为空闲,并将所述数据块的描述信息加入到所述第一链表中;例如,可以在某一数据块的LSN大于数据库最后一条日志的LSN时,可以确定该数据块为修改记录未被写入日志的脏数据块。
本申请实施例中,对于状态不可信的数据块还可以进行恢复(recovery)。基于此,所述修复所述缓冲池中的数据,还可以包括:基于所述数据库实例的重做日志(Redo Log),恢复所述处于加锁状态的数据块和/或所述修改记录未被写入日志的脏数据块。具体的,可以对所述处于加锁状态的数据块和/或所述修改记录未被写入日志的脏数据块,通过磁盘的原始数据块和Redo Log的回放来恢复。
常规架构的数据库,在数据库实例崩溃后启动时,需要从检查点(checkpoint)扫描所有的重做日志,并将其回放到数据库对应的数据块中,这是一个非常耗时的过程,不单需要按需解析所有的Redo Log,同时需要做大量的数据块读取并进行回放。本申请实施例中,由于数据库实例崩溃后恢复启动时,共享内存中的未刷盘的数据块依然存在,因此绝大部分数据块都不需要做崩溃恢复过程,只需要针对不可信的数据块进行Redo Log的回放就可以。从而大大简化了Redo Log解析和回放的过程。
在所述数据库实例上一次运行不是正常关机的情况下,如果所述缓冲池中存在需要释放空间的数据块,还可以根据这些数据库修复链表。其中,需要释放空间的数据块包括用于存储临时数据的数据块或处于读状态的数据块。基于此,所述修复所述缓冲池中用于缓存数据块描述信息的链表,具体可以包括:将所述缓冲池中需要释放空间的数据块的描述信息从所述第三链表中删除,将所述数据块的类型设置为空闲,并将所述数据块的描述信息加入到所述第一链表中。需要说明的是,需要释放空间的数据块和状态不可信的数据块可以记为目标数据块。
本申请实施例中,以数据块为数据页为例,修复缓冲池中的数据的具体方式例如可以如图7所示。
在步骤71中,根据缓冲池中第一链表和第二链表的互斥锁(mutex)的状态,确定第一链表和第二链表是否需要修复,并对确定需要恢复的链表进行初始化。
具体的,在第一链表的互斥锁的状态为加锁状态时,可以确定第一链表需要修复并将第一链表初始化为空链表,在第一链表的互斥锁的状态为未加锁状态时可以确定第一链表不需要修复。类似的,在第二链表的互斥锁的状态为加锁状态时,可以确定第二链表需要修复并将第二链表初始化为空链表,在第二链表的互斥锁的状态为未加锁状态时可以确定第二链表不需要修复。
在步骤72中,初始化缓冲池中各链表的互斥锁的状态。
具体的,可以将缓冲池中各链表的互斥锁的状态均设置为未加锁状态,以便于后续可以对链表进行操作。
在步骤73中,并行扫描缓冲池中所有的数据页,并针对各数据页执行如下步骤a至步骤d。
步骤a,判断该数据页是否是处于加锁状态的数据页或者该数据页是修改记录未被写入日志的脏数据页。
其中,如果是,则执行步骤a’,并在步骤a’中,将该数据页加到待恢复的数据页集合中。在执行完步骤a’之后可以继续执行步骤b’,可以理解的是,在其他实施例中,也可以先执行完步骤b’之后再执行步骤a’。
如果否,则继续执行步骤b的判断。
步骤b,判断该数据页是否是用于存储临时数据的数据页或处于读状态的数据页。
其中,如果是,则执行步骤b’,并在步骤b’中,将该数据页的描述信息从第三链表删除,将该数据页的类型设置为空闲,并将该数据页的描述信息加入到第一链表中。
需要说明的是,如果步骤73中确定第一链表需要修复,且步骤b中确定该数据页不是存储临时数据的数据页或处于读状态的数据页时,可以继续执行该数据页是否是空数据页。如果步骤73中确定第二链表需要修复,且步骤b中确定该数据页不是存储临时数据的数据页或处于读状态的数据页时,可以继续执行该数据页是否是修改记录已被写入日志的脏数据页。如果步骤73中确定第一链表和第二链表均不需要修复,针对该数据页的处理可以结束。
需要说明的是,图7中是以在步骤73中确定第一链表和第二链表均需要修复为例,因此如果该数据页不是用于存储临时数据的数据页或处于读状态的数据页。则可以执行步骤c。
步骤c,判断该数据页是否是空数据页。
其中,如果是,则可以执行步骤c’,并在步骤c’中可以将该数据页的描述信息加入到第一链表中;如果否,则执行步骤d。
步骤d,判断该数据页是否是修改记录已被写入日志的脏数据页。
其中,如果是,则执行步骤d’,并在步骤d’中可以将该数据页的描述信息加入到第二链表中;如果否,则针对该数据页的处理可以结束。
在对各数据页执行均执行步骤a至步骤d之后,在步骤74中对待恢复的数据页集合中的数据页进行崩溃恢复。
需要说明的是,图7中的判断顺序仅为举例。
本申请实施例提供的数据库实例的启动方法,通过数据库实例对应的缓冲池是从独立于数据库实例的共享内存中分配,使得缓冲池的存在不再依赖于数据库实例,在数据库实例关机或崩溃后缓冲池所在的内存资源可以不被释放,数据库实例重启时其关机或崩溃前缓冲池中的数据还存在,通过根据缓冲池中的数据执行数据库实例启动过程中的数据修复处理以完成数据库实例的启动,使得数据库实例重启后可以继续使用关机或崩溃前缓冲池中缓存的数据进行数据操作,而关机或崩溃前缓冲池中已缓存有数据库中被频繁访问的数据,因此能够避免数据库实例重启后要频繁从磁盘读取数据到缓冲池的情况,从而避免由于此种情况所带来操作性能无法快速恢复的问题,实现数据库实例重启后其数据操作性能的快速恢复。
图8为本申请一实施例提供的数据库实例的启动装置的结构示意图;参考附图8所示,本实施例提供了一种数据库实例的启动装置,该装置可以执行上述方法实施例所述的数据库实例的启动方法,具体的,该装置可以包括:
确定模块81,用于在数据库实例启动的过程中,确定所述数据库实例是否存在基于共享内存的缓冲池,所述基于共享内存的缓冲池是指对应内存是从共享内存中分配的缓冲池;其中,所述共享内存独立于所述数据库实例存在;
修复模块82,用于如果存在,将所述数据库实例连接到所述缓冲池,并根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,以完成所述数据库实例的启动。
可选的,所述修复模块82用于根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,具体包括:在所述数据库实例上一次运行是正常关机时,重建所述缓冲池中数据块的哈希索引。
可选的,所述修复模块82用于根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,具体包括:在所述数据库实例上一次运行不是正常关机时,修复所述缓冲池中的数据,并在修复的过程中重建所述缓冲池中数据块的哈希索引。
可选的,所述修复模块82用于修复所述缓冲池中的数据,具体包括:修复所述缓冲池中用于缓存数据块描述信息的链表。
可选的,所述修复模块82用于修复所述缓冲池中用于缓存数据块描述信息的链表的步骤,包括下述中的一个或多个:
将第一链表设置为解锁状态,将所述第一链表初始化为空链表,并将所述缓冲池中空闲数据块的描述信息加入到所述第一链表中;
将第二链表设置为解锁状态,将所述第二链表初始化为空链表,并将所述缓冲池中修改记录已被写入日志的脏数据块的描述信息,按照修改先后顺序依次加入到所述第二链表中;或者,
将所述缓冲池中目标数据块的描述信息从第三链表中删除,将所述目标数据块的类型设置为空闲,并将所述目标数据块的描述信息加入到第一链表中;
其中,所述第一链表用于缓存空闲数据块的描述信息,所述第二链表用于缓存非空闲数据块中需要刷新到磁盘的数据块的描述信息;所述第三链表用于缓存非空闲数据块的描述信息。
可选的,所述目标数据块包括下述中的一种或多种:处于加锁状态的数据块、修改记录未被写入日志的脏数据块、用于存储临时数据的数据块或处于读状态的数据块。
可选的,所述修复模块82用于修复所述缓冲池中的数据,还包括:基于所述数据库实例的重做日志,恢复所述处于加锁状态的数据块和/或所述修改记录未被写入日志的脏数据块。
可选的,在所述数据库实例退出时所述共享内存不被释放。
可选的,所述确定模块81,还用于确定针对所述数据库实例是否设置有共享内存的标识;如果设置有,执行所述确定所述数据库实例是否存在基于共享内存的缓冲池,所述基于共享内存的缓冲池是指对应内存是从共享内存中分配的缓冲池的步骤。
可选的,所述确定模块81,还用于确定所述数据库实例的配置和所述缓冲池的配置是否相同;如果相同,执行所述将所述数据库实例连接到所述缓冲池的步骤。
可选的,所述确定模块81,还用于如果所述数据库实例不存在对应内存是从共享内存中分配缓冲池,从操作系统的共享内存中分配与所述数据库实例对应的缓冲池,初始化所述缓冲池,并对所述缓冲池与所述数据库实例做适配的配置处理。
图8所示装置可以执行图4所示实施例的方法,本实施例未详细描述的部分,可参考对图4所示实施例的相关说明。该技术方案的执行过程和技术效果参见图4所示实施例中的描述,在此不再赘述。
在一个可能的实现中,图8所示装置的结构可实现为一计算机设备。如图9所示,该计算机设备可以包括:处理器91和存储器92。其中,存储器92用于存储支持计算机设备执行上述图4所示实施例提供的方法的程序,处理器91被配置为用于执行存储器92中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器91执行时能够实现如下步骤:
在数据库实例启动的过程中,确定所述数据库实例是否基于共享内存的缓冲池,所述基于共享内存的缓冲池是指存在对应内存是从共享内存中分配的缓冲池;其中,所述共享内存独立于所述数据库实例存在;
如果存在,将所述数据库实例连接到所述缓冲池,并根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,以完成所述数据库实例的启动。
可选的,处理器91还用于执行前述图4所示实施例中的全部或部分步骤。
其中,计算机设备的结构中还可以包括通信接口93,用于计算机设备与其他设备或通信网络通信。
另外,本申请实施例提供了一种计算机存储介质,用于储存计算机设备所用的计算机软件指令,其包含用于执行上述图4所示方法实施例中方法所涉及的程序。
本申请实施例提供一种数据库管理系统,包括:数据库,以及部署所述数据库对应数据库实例的计算机设备,所述计算机设备用于图4所示方法实施例所提供的方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、链表、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (13)

1.一种数据库实例的启动方法,包括:
在数据库实例启动的过程中,确定所述数据库实例是否存在基于共享内存的缓冲池,所述基于共享内存的缓冲池是指对应内存是从共享内存中分配的缓冲池;其中,所述共享内存独立于所述数据库实例存在;
如果存在,将所述数据库实例连接到所述缓冲池,并根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,以完成所述数据库实例的启动。
2.根据权利要求1所述的方法,所述根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,包括:
在所述数据库实例上一次运行是正常关机时,重建所述缓冲池中数据块的哈希索引;和/或,
在所述数据库实例上一次运行不是正常关机时,修复所述缓冲池中的数据,并在修复的过程中重建所述缓冲池中数据块的哈希索引。
3.根据权利要求2所述的方法,所述修复所述缓冲池中的数据,包括:修复所述缓冲池中用于缓存数据块描述信息的链表。
4.根据权利要求3所述的方法,所述修复所述缓冲池中用于缓存数据块描述信息的链表的步骤,包括下述中的一个或多个:
将第一链表设置为解锁状态,将所述第一链表初始化为空链表,并将所述缓冲池中空闲数据块的描述信息加入到所述第一链表中;
将第二链表设置为解锁状态,将所述第二链表初始化为空链表,并将所述缓冲池中修改记录已被写入日志的脏数据块的描述信息,按照修改先后顺序依次加入到所述第二链表中;或者,
将所述缓冲池中目标数据块的描述信息从第三链表中删除,将所述目标数据块的类型设置为空闲,并将所述目标数据块的描述信息加入到第一链表中;
其中,所述第一链表用于缓存空闲数据块的描述信息,所述第二链表用于缓存非空闲数据块中需要刷新到磁盘的数据块的描述信息;所述第三链表用于缓存非空闲数据块的描述信息。
5.根据权利要求4所述的方法,所述目标数据块包括下述中的一种或多种:处于加锁状态的数据块、修改记录未被写入日志的脏数据块、用于存储临时数据的数据块或处于读状态的数据块。
6.根据权利要求5所述的方法,所述修复所述缓冲池中的数据,还包括:基于所述数据库实例的重做日志,恢复所述处于加锁状态的数据块和/或所述修改记录未被写入日志的脏数据块。
7.根据权利要求1所述的方法,在所述数据库实例退出时所述共享内存不被释放。
8.根据权利要求1所述的方法,在所述确定所述数据库实例是否存在基于共享内存的缓冲池之前,还包括:确定针对所述数据库实例是否设置有共享内存的标识;如果设置有,执行所述确定所述数据库实例是否存在基于共享内存的缓冲池的步骤。
9.根据权利要求1所述的方法,所述将所述数据库实例连接到所述缓冲池之前,还包括:确定所述数据库实例的配置和所述缓冲池的配置是否相同;如果相同,执行所述将所述数据库实例连接到所述缓冲池的步骤。
10.一种数据库实例的启动装置,包括:
确定模块,用于在数据库实例启动的过程中,确定所述数据库实例是否存在基于共享内存的缓冲池,所述基于共享内存的缓冲池是指对应内存是从共享内存中分配的缓冲池;其中,所述共享内存独立于所述数据库实例存在;
修复模块,用于如果存在,将所述数据库实例连接到所述缓冲池,并根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,以完成所述数据库实例的启动。
11.一种计算机设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求1至9中任一项所述的方法。
12.一种数据库管理系统,包括:数据库,以及部署所述数据库对应数据库实例的计算机设备,所述计算机设备用于执行权利要求1-9中任一项所述的方法。
13.一种计算机程序,当所述计算机程序被计算机执行时,用于实现如权利要求1至9中任一项所述的方法。
CN202110704080.9A 2021-06-24 2021-06-24 数据库实例的启动方法、装置及设备 Pending CN113590212A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110704080.9A CN113590212A (zh) 2021-06-24 2021-06-24 数据库实例的启动方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110704080.9A CN113590212A (zh) 2021-06-24 2021-06-24 数据库实例的启动方法、装置及设备

Publications (1)

Publication Number Publication Date
CN113590212A true CN113590212A (zh) 2021-11-02

Family

ID=78244600

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110704080.9A Pending CN113590212A (zh) 2021-06-24 2021-06-24 数据库实例的启动方法、装置及设备

Country Status (1)

Country Link
CN (1) CN113590212A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114880356A (zh) * 2022-04-26 2022-08-09 北京人大金仓信息技术股份有限公司 数据库共享内存缓冲池的处理方法、存储介质与设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101315628A (zh) * 2007-06-01 2008-12-03 华为技术有限公司 内存数据库系统及实现内存数据库的方法和装置
CN102567490A (zh) * 2011-12-21 2012-07-11 华为技术有限公司 数据库内的描述信息的恢复和数据的缓存方法及设备
CN102955817A (zh) * 2011-08-30 2013-03-06 腾讯数码(深圳)有限公司 一种基于共享内存的对象管理与恢复方法及系统
CN103198122A (zh) * 2013-04-02 2013-07-10 华为技术有限公司 重启内存数据库的方法和装置
CN108874588A (zh) * 2018-06-08 2018-11-23 郑州云海信息技术有限公司 一种数据库实例恢复方法和装置
CN111475335A (zh) * 2020-03-08 2020-07-31 苏州浪潮智能科技有限公司 一种数据库快速恢复的方法、系统、终端及存储介质
CN112328435A (zh) * 2020-12-07 2021-02-05 武汉绿色网络信息服务有限责任公司 目标数据备份和恢复的方法、装置、设备及存储介质
CN112947856A (zh) * 2021-02-05 2021-06-11 彩讯科技股份有限公司 一种内存数据的管理方法、装置、计算机设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101315628A (zh) * 2007-06-01 2008-12-03 华为技术有限公司 内存数据库系统及实现内存数据库的方法和装置
CN102955817A (zh) * 2011-08-30 2013-03-06 腾讯数码(深圳)有限公司 一种基于共享内存的对象管理与恢复方法及系统
CN102567490A (zh) * 2011-12-21 2012-07-11 华为技术有限公司 数据库内的描述信息的恢复和数据的缓存方法及设备
CN103198122A (zh) * 2013-04-02 2013-07-10 华为技术有限公司 重启内存数据库的方法和装置
CN108874588A (zh) * 2018-06-08 2018-11-23 郑州云海信息技术有限公司 一种数据库实例恢复方法和装置
CN111475335A (zh) * 2020-03-08 2020-07-31 苏州浪潮智能科技有限公司 一种数据库快速恢复的方法、系统、终端及存储介质
CN112328435A (zh) * 2020-12-07 2021-02-05 武汉绿色网络信息服务有限责任公司 目标数据备份和恢复的方法、装置、设备及存储介质
CN112947856A (zh) * 2021-02-05 2021-06-11 彩讯科技股份有限公司 一种内存数据的管理方法、装置、计算机设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114880356A (zh) * 2022-04-26 2022-08-09 北京人大金仓信息技术股份有限公司 数据库共享内存缓冲池的处理方法、存储介质与设备
CN114880356B (zh) * 2022-04-26 2024-07-30 北京人大金仓信息技术股份有限公司 数据库共享内存缓冲池的处理方法、存储介质与设备

Similar Documents

Publication Publication Date Title
EP2876556B1 (en) Fast restart of applications using shared memory
US8135914B2 (en) Managing cache data and metadata
US9032151B2 (en) Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US5805790A (en) Fault recovery method and apparatus
US7831569B2 (en) Preserving a query plan cache
US20080104441A1 (en) Data processing system and method
US20130246358A1 (en) Online verification of a standby database in log shipping physical replication environments
CN101981550B (zh) 数据库系统、数据库更新方法、数据库以及数据库更新程序
CN108475201B (zh) 一种虚拟机启动过程中的数据获取方法和云计算系统
CN115145697B (zh) 数据库事务的处理方法、装置及电子设备
US7975176B2 (en) Application failure recovery
JP2007133544A (ja) 障害情報解析方法及びその実施装置
US20100161572A1 (en) Concurrency management in cluster computing of business applications
CN114265670A (zh) 一种内存块整理方法、介质及计算设备
US11822419B2 (en) Error information processing method and device, and storage medium
CN109144947A (zh) 一种虚拟化系统的集群文件系统的控制方法和装置
CN113590212A (zh) 数据库实例的启动方法、装置及设备
US20230394027A1 (en) Transaction execution method, computing device, and storage medium
US20070234114A1 (en) Method, apparatus, and computer program product for implementing enhanced performance of a computer system with partially degraded hardware
US20190278479A1 (en) Detecting and managing collisions in storage
CN112988460B (zh) 一种虚拟机的数据备份方法及装置
CN116185902B (zh) 一种表切分方法、系统、电子设备及可读介质
WO2021161418A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US11567925B2 (en) Concurrent update management
CN112817986B (zh) 适用于Linux生产环境的数据结构修复方法及装置

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240312

Address after: # 03-06, Lai Zan Da Building 1, 51 Belarusian Road, Singapore

Applicant after: Alibaba Innovation Co.

Country or region after: Singapore

Address before: Room 01, 45th Floor, AXA Building, 8 Shanton Road, Singapore

Applicant before: Alibaba Singapore Holdings Ltd.

Country or region before: Singapore