System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,具体而言,本申请涉及一种数据库版本回退方法、装置、电子设备及存储介质。
技术介绍
1、随着信息科技的发展,企业对于数据库的需求也越来越高。大部分企业通常是通过数据库对企业的重要数据进行存储,而随着数据量的不断增加和业务需求的变化,很多情况需要对数据库的版本进行回退(例如对数据库进行更新失败时,需要回退到升级前的可用版本),因此,如何较好地实现数据库版本的回退是当前需要解决的问题。
2、现有技术的方案中,一般需要扫描数据库系统中已备份的所有数据,然后将需要回退至的版本的数据读取出来并写入到备份磁盘上,完成数据库的构建,最终得到需要回退的数据库版本。但是,这种方案需要通过拷贝数据文件或磁盘数据块的方式创建一个全量备份文件集合,而全量备份往往数据量较大,这样不仅会导致数据备份的时间过长,也会导致数据进行读取恢复时,需要扫描读取的文件数量过多,进而导致数据库回退的效率较低。
技术实现思路
1、本申请的目的旨在至少能解决上述的技术缺陷之一,本申请实施例所提供的技术方案如下:
2、第一方面,本申请实施例提供了数据库版本回退方法,包括:
3、接收针对目标数据库的版本回退请求;其中,版本回退请求中包含有目标数据库的目标回退版本的版本标识;
4、基于版本标识确定目标回退版本的第一创建时刻,从已保存的针对目标数据库的至少一个初始备份版本中,确定与第一创建时刻相关联的至少一个参考备份版本;各个初始备份版本是每间隔预设时间段对目标数据库进行
5、基于第一创建时刻和各参考备份版本的第二创建时刻,从至少一个参考备份版本中确定出目标备份版本;
6、对目标备份版本进行修改,得到目标数据库的目标回退版本。
7、在本申请的一种可选实施例中,初始备份版本通过以下方式生成:
8、若接收到生成初始备份版本的指令,且当前时刻不存在任一初始备份版本,获取目标数据库当前时刻已存储的数据,对当前时刻已存储的数据进行复制并生成对应的目标访问链接;其中,目标访问链接用于访问当前时刻已存储的数据;将目标访问链接对应的目标数据库版本作为初始备份版本;
9、若接收到生成初始备份版本的指令,且当前时刻存在至少一个初始备份版本,对当前时刻与上一初始备份版本创建时刻之间生成的键值对进行复制,并基于各键值对和上一初始备份版本生成当前时刻的初始备份版本。
10、在本申请的一种可选实施例中,若第一创建时刻之后创建了至少一个初始备份版本;
11、基于第一创建时刻和各参考备份版本的第二创建时刻,从至少一个参考备份版本中确定出目标备份版本,具体包括:
12、将处于第一创建时刻之后且距离第一创建时刻最近的第二创建时刻对应的参考备份版本作为目标备份版本;
13、对目标备份版本进行修改,得到目标数据库的目标回退版本,具体包括:
14、将目标备份版本中不属于目标回退版本的数据删除,得到目标回退版本。
15、在本申请的一种可选实施例中,将目标备份版本中不属于目标回退版本的数据删除,具体包括:
16、获取目标备份版本中各键值对的生成时间戳;
17、将生成时间戳处于第一创建时刻与第二创建时刻之间的键值对删除。
18、在本申请的一种可选实施例中,若各个初始备份版本的第二创建时刻均在处于第一创建时刻之前;
19、基于第一创建时刻和各参考备份版本的第二创建时刻,从至少一个参考备份版本中确定出目标备份版本,具体包括:
20、将距离第一创建时刻最近的第二创建时刻对应的参考备份版本作为目标备份版本;
21、对目标备份版本进行修改,得到目标数据库的目标回退版本,具体包括:
22、获取第一创建时刻与第二创建时刻之间针对目标数据库的修改记录;
23、对目标备份版本重放修改记录,得到目标回退版本。
24、在本申请的一种可选实施例中,修改记录通过如下方式获取:
25、每当接收到针对目标数据库中的修改指令时,根据当前时刻获取修改指令对应的时间戳;
26、基于修改指令生成对应的键值对,并将键值对与对应的时间戳存储至目标数据库中;
27、基于修改指令生成对应的修改记录,并对修改记录进行存储。
28、在本申请的一种可选实施例中,该方法还具体包括:
29、当任一初始备份版本生成时,将任一初始备份版本创建时刻之前的修改记录删除。
30、第二方面,本申请实施例提供了一种数据库版本回退装置,包括:
31、请求接收模块,用于接收针对目标数据库的版本回退请求;其中,版本回退请求中包含有目标数据库的目标回退版本的版本标识;
32、第一备份选取模块,用于基于版本标识确定目标回退版本的第一创建时刻,从已保存的针对目标数据库的至少一个初始备份版本中,确定与第一创建时刻相关联的至少一个参考备份版本;各个初始备份版本是每间隔预设时间段对目标数据库进行备份得到的;
33、第二备份选取模块,用于基于第一创建时刻和各参考备份版本的第二创建时刻,从至少一个参考备份版本中确定出目标备份版本;
34、版本回退模块,用于对目标备份版本进行修改,得到目标数据库的目标回退版本。
35、在本申请的一种可选实施例中,该装置还包括初始备份版本生成模块,具体用于:
36、若接收到生成第一备份版本的指令,且当前时刻不存在任一初始备份版本,获取目标数据库当前时刻已存储的数据,对当前时刻已存储的数据进行复制并生成对应的目标访问链接;其中,目标访问链接用于访问当前时刻已存储的数据;将目标访问链接对应的目标数据库版本作为初始备份版本;
37、若接收到生成第一备份版本的指令,且当前时刻存在至少一个初始备份版本,对当前时刻与上一初始备份版本创建时刻之间生成的键值对进行复制,并基于各键值对和上一初始备份版本生成当前时刻的初始备份版本。
38、在本申请的一种可选实施例中,第二备份选取模块具体用于:
39、将处于第一创建时刻之后且距离第一创建时刻最近的第二创建时刻对应的参考备份版本作为目标备份版本;
40、对目标备份版本进行修改,得到目标数据库的目标回退版本,具体包括:
41、将目标备份版本中不属于目标回退版本的数据删除,得到目标回退版本。
42、在本申请的一种可选实施例中,第二备份选取模块进一步用于:
43、获取目标备份版本中各键值对的生成时间戳;
44、将生成时间戳处于第一创建时刻与第二创建时刻之间的键值对删除。
45、在本申请的一种可选实施例中,第二备份选取模块还可以用于:
46、将距离第一创建时刻最近的第二创建时刻对应的参考备份版本作为目标备份版本;
47、对目标备份版本进行修改,得到目标数据库的目标回退版本文档来自技高网...
【技术保护点】
1.一种数据库版本回退方法,其特征在于,包括:
2.根据权利要求1中所述的方法,其特征在于,所述初始备份版本通过以下方式生成:
3.根据权利要求1中所述的方法,其特征在于,若所述第一创建时刻之后创建了至少一个初始备份版本;
4.根据权利要求3中所述的方法,其特征在于,所述将所述目标备份版本中不属于所述目标回退版本的数据删除,包括:
5.根据权利要求1中所述的方法,其特征在于,若各个初始备份版本的第二创建时刻均在处于所述第一创建时刻之前;
6.根据权利要求5中所述的方法,其特征在于,所述修改记录通过如下方式获取:
7.根据权利要求6中所述的方法,其特征在于,所述方法还包括:
8.一种数据库回退方法装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1
...【技术特征摘要】
1.一种数据库版本回退方法,其特征在于,包括:
2.根据权利要求1中所述的方法,其特征在于,所述初始备份版本通过以下方式生成:
3.根据权利要求1中所述的方法,其特征在于,若所述第一创建时刻之后创建了至少一个初始备份版本;
4.根据权利要求3中所述的方法,其特征在于,所述将所述目标备份版本中不属于所述目标回退版本的数据删除,包括:
5.根据权利要求1中所述的方法,其特征在于,若各个初始备份版本的第二创建时刻均在处于所述第一创建时刻之前;
6.根据权...
【专利技术属性】
技术研发人员:赵志高,刘奇,黄东旭,崔秋,
申请(专利权)人:平凯星辰北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。