[发明专利]一种基于值日志系统的数据库闪回实现方法在审
申请号: | 202210997232.3 | 申请日: | 2022-08-19 |
公开(公告)号: | CN115454716A | 公开(公告)日: | 2022-12-09 |
发明(设计)人: | 王学海;付新;姜久文;张东;徐奇 | 申请(专利权)人: | 达梦数据技术(江苏)有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F16/22 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 王安琪 |
地址: | 215000 江苏省苏州市吴中经济开*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 值日 系统 数据库 实现 方法 | ||
本发明公开了一种基于值日志系统的数据库闪回实现方法,包括如下步骤:工作线程/进程接收用户库闪回请求;工作线程/进程执行挂起数据库或者数据处理系统,挂起工作线程停止对外提供服务,当前工作线程/进程除外,设置实例为挂起模式;工作线程/进程确定数据库闪回的闪回点;工作线程/进程基于确定的闪回点,截断值日志,并置零值日志块尾部,以便新的日志复用值日志存储空间;工作线程/进程基于确定的闪回点清理索引中的无效记录,即位于闪回点之后记录的索引;工作线程/进程上线其他工作线程/进程,重新打开实例为正常模式,并返回用户端闪回成功。本发明支持闪回到指定闪回点,不需要额外的闪回日志和REDO日志,值日志原生支持库级闪回。
技术领域
本发明涉及数据库技术领域,尤其是一种基于值日志系统的数据库闪回实现方法。
背景技术
传统数据库的库闪回是将整个数据库恢复到一个指定的时间点,实际上是数据库的不完全恢复。基于闪回日志和REDO日志来实现的(如Oracle),闪回日志就是以数据页为单位,记录旧版本的数据页。闪回日志有一定的限制,不是所有的旧值记录,一组操作的集合打包一起,类似一个一个逆向增量快照(若干个数据页集合)所以库级闪回需要借助REDO日志修复到目标闪回点。
传统数据库要支持数据库闪回,需要配置闪回日志,需要额外的存储空间,并且只支持有限时间段内的数据库闪回,这个和闪回存储空间和归档日志有关。库级闪回会依据用户给定的时间T1,以及闪回日志计算一个更早的时间T2,然后逆向把闪回日志回填到数据文件。最后通过归档REDO日志修复到T1时间点,完成库闪回。这里如果数据文件扩容了,不会缩回去,需要用户借助恢复工具把数据文件缩回去后,再执行库闪回。传统数据的闪回支持依赖闪回日志、REDO日志以及真实的数据文件,本质上通过数据冗余支持库闪回,存在大量的存储空间浪费。
发明内容
本发明所要解决的技术问题在于,提供一种基于值日志系统的数据库闪回实现方法,支持闪回到指定闪回点,这些闪回点包括自初始化库至今任意有效的截止偏移地址或者截止LSN或者截止时间点,不需要额外的闪回日志和REDO日志,值日志原生支持库级闪回。
为解决上述技术问题,本发明提供一种基于值日志系统的数据库闪回实现方法,包括如下步骤:
步骤1、基于值日志技术的数据库/KV数据处理系统中的工作线程/进程接收用户库闪回请求;
步骤2、工作线程/进程执行挂起数据库或者数据处理系统,挂起工作线程停止对外提供服务,当前工作线程/进程除外,设置实例为挂起模式;
步骤3、工作线程/进程确定数据库闪回的闪回点,闪回点包括截止偏移地址、截止LSN和截止时间;
步骤4、工作线程/进程基于步骤3确定的闪回点,截断值日志,并置零值日志块尾部,以便新的日志复用值日志存储空间;
步骤5、工作线程/进程基于步骤3确定的闪回点清理索引中的无效记录,即位于闪回点之后记录的索引;
步骤6、工作线程/进程上线其他工作线程/进程,重新打开实例为正常模式,并返回用户端闪回成功。
优选的,步骤3中,确定数据库闪回的闪回点包括以下几种情况或者它们的组合:
(a)基于截止偏移地址进行数据库闪回;
(b)基于截止LSN进行数据库闪回;
(c)基于截止时间进行数据库闪回;
(d)基于截至时间、截至LSN或者截至偏移地址的组合。
优选的,步骤(a)中,基于截止偏移地址进行数据库闪回具体为:基于值日志技术的数据处理系统中数据是不断追加产生的,偏移量的大小直接体现了数据的新旧程度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于达梦数据技术(江苏)有限公司,未经达梦数据技术(江苏)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210997232.3/2.html,转载请声明来源钻瓜专利网。