[发明专利]数据库实例的启动方法、装置及设备在审
申请号: | 202110704080.9 | 申请日: | 2021-06-24 |
公开(公告)号: | CN113590212A | 公开(公告)日: | 2021-11-02 |
发明(设计)人: | 章颖强;王波;方璟;王宇辉 | 申请(专利权)人: | 阿里巴巴新加坡控股有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/50;G06F16/21 |
代理公司: | 北京太合九思知识产权代理有限公司 11610 | 代理人: | 刘戈 |
地址: | 新加坡珊顿道*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 实例 启动 方法 装置 设备 | ||
1.一种数据库实例的启动方法,包括:
在数据库实例启动的过程中,确定所述数据库实例是否存在基于共享内存的缓冲池,所述基于共享内存的缓冲池是指对应内存是从共享内存中分配的缓冲池;其中,所述共享内存独立于所述数据库实例存在;
如果存在,将所述数据库实例连接到所述缓冲池,并根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,以完成所述数据库实例的启动。
2.根据权利要求1所述的方法,所述根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,包括:
在所述数据库实例上一次运行是正常关机时,重建所述缓冲池中数据块的哈希索引;和/或,
在所述数据库实例上一次运行不是正常关机时,修复所述缓冲池中的数据,并在修复的过程中重建所述缓冲池中数据块的哈希索引。
3.根据权利要求2所述的方法,所述修复所述缓冲池中的数据,包括:修复所述缓冲池中用于缓存数据块描述信息的链表。
4.根据权利要求3所述的方法,所述修复所述缓冲池中用于缓存数据块描述信息的链表的步骤,包括下述中的一个或多个:
将第一链表设置为解锁状态,将所述第一链表初始化为空链表,并将所述缓冲池中空闲数据块的描述信息加入到所述第一链表中;
将第二链表设置为解锁状态,将所述第二链表初始化为空链表,并将所述缓冲池中修改记录已被写入日志的脏数据块的描述信息,按照修改先后顺序依次加入到所述第二链表中;或者,
将所述缓冲池中目标数据块的描述信息从第三链表中删除,将所述目标数据块的类型设置为空闲,并将所述目标数据块的描述信息加入到第一链表中;
其中,所述第一链表用于缓存空闲数据块的描述信息,所述第二链表用于缓存非空闲数据块中需要刷新到磁盘的数据块的描述信息;所述第三链表用于缓存非空闲数据块的描述信息。
5.根据权利要求4所述的方法,所述目标数据块包括下述中的一种或多种:处于加锁状态的数据块、修改记录未被写入日志的脏数据块、用于存储临时数据的数据块或处于读状态的数据块。
6.根据权利要求5所述的方法,所述修复所述缓冲池中的数据,还包括:基于所述数据库实例的重做日志,恢复所述处于加锁状态的数据块和/或所述修改记录未被写入日志的脏数据块。
7.根据权利要求1所述的方法,在所述数据库实例退出时所述共享内存不被释放。
8.根据权利要求1所述的方法,在所述确定所述数据库实例是否存在基于共享内存的缓冲池之前,还包括:确定针对所述数据库实例是否设置有共享内存的标识;如果设置有,执行所述确定所述数据库实例是否存在基于共享内存的缓冲池的步骤。
9.根据权利要求1所述的方法,所述将所述数据库实例连接到所述缓冲池之前,还包括:确定所述数据库实例的配置和所述缓冲池的配置是否相同;如果相同,执行所述将所述数据库实例连接到所述缓冲池的步骤。
10.一种数据库实例的启动装置,包括:
确定模块,用于在数据库实例启动的过程中,确定所述数据库实例是否存在基于共享内存的缓冲池,所述基于共享内存的缓冲池是指对应内存是从共享内存中分配的缓冲池;其中,所述共享内存独立于所述数据库实例存在;
修复模块,用于如果存在,将所述数据库实例连接到所述缓冲池,并根据所述缓冲池中的数据执行所述数据库实例启动过程中的数据修复操作,以完成所述数据库实例的启动。
11.一种计算机设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求1至9中任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴新加坡控股有限公司,未经阿里巴巴新加坡控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110704080.9/1.html,转载请声明来源钻瓜专利网。