System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库的,尤其是涉及一种数据库还原方法、系统、设备及介质。
技术介绍
1、数据库日志是一种逻辑日志,常用于数据库业务中的主从复制和数据恢复等应用场景。大多数情况下,数据库日志多为二进制数据组织结构,需要由对应的解析程序对日志内容进行消费解析,进而得到数据库可识别的sql语句,再对sql语句进行重放处理,以执行数据库日志中所记录的变更操作。
2、在相关技术中,主要以表对象元信息定义在前,变更数据内容紧接其后的数据组织形式作为变更记载单元,然后将变更记载单元写入数据库日志,此种方式虽然可以做到表对象元信息与变更记录同步,但会出现数据冗余记载的现象,增加数据还原过程中系统的解析计算负担,进而加大了数据库维护和恢复的成本。
技术实现思路
1、为了降低数据库维护和恢复的成本,本申请提供一种数据库还原方法、系统、设备及介质。
2、第一方面,本申请提供了一种数据库还原方法,采用如下的技术方案:
3、一种数据库还原方法,包括:
4、获取日志消费请求,并根据所述日志消费请求从数据库日志中获取对应的日志消费数据;所述数据库日志包括第一日志和第二日志;所述第一日志为仅记载有表对象结构定义和修改的日志;所述第二日志为记载有数据内容变更的日志;
5、根据所述日志消费数据获取对应的数据标识,并根据所述数据标识确定所述日志消费数据对应的表对象元信息是否在缓存中;
6、若否,则从第一日志中获取所述日志消费数据对应的表对象元信息,并对
7、根据所述日志消费数据和所述日志消费数据对应的表对象元信息对目标数据库进行sql还原。
8、通过采用上述技术方案,先获取日志消费请求,并根据日志消费请求从数据库日志中获取对应的日志消费数据,数据库日志包括第一日志和第二日志;第一日志为仅记载有表对象结构定义和修改的日志,第二日志为记载有数据内容变更的日志,然后根据日志消费数据获取对应的数据标识,并根据数据标识确定日志消费数据对应的表对象元信息是否在缓存中;若日志消费数据对应的表对象元信息在缓存中,则从第一日志中获取日志消费数据对应的表对象元信息,并对日志消费数据对应的表对象元信息进行缓存,然后根据日志消费数据和日志消费数据对应的表对象元信息对目标数据库进行sql还原;在上述方法中,摒弃对象元信息与变更数据记录作为变更记载单元的方式,将数据库日志设计为第一日志和第二日志,并改用缓存对第一日志中的表对象元信息进行管理和维护,减少了处理器对表对象元信息的冗余解析计算,降低了数据还原过程中系统的解析计算负担,从而降低了数据库维护和恢复的成本。
9、可选的,在所述获取日志消费请求,并根据所述日志消费请求从数据库日志中获取对应的日志消费数据的步骤之前,还包括:
10、获取用户的sql请求,并根据所述sql请求确定所述sql请求是否为ddl请求或dml请求;
11、若所述sql请求为ddl请求,则将所述sql请求对应的ddl操作分别写入第一日志和第二日志,并根据所述sql请求生成所述ddl操作对应的表对象元信息,且对所述ddl操作对应的表对象元信息进行缓存;
12、若所述sql请求为dml请求,则将所述sql请求对应的dml操作写入第二日志。
13、通过采用上述技术方案,为了生成或更新第一日志和第二日志,获取用户的sql请求,并根据sql请求确定sql请求是否为ddl请求或dml请求,若sql请求为ddl请求,则将sql请求对应的ddl操作分别写入第一日志和第二日志,并根据sql请求生成ddl操作对应的表对象元信息,且对ddl操作对应的表对象元信息进行缓存,若sql请求为dml请求,则将sql请求对应的dml操作写入第二日志。
14、可选的,所述获取日志消费请求,并根据所述日志消费请求从数据库日志中获取对应的日志消费数据的步骤,包括:
15、获取日志消费请求,并根据所述日志消费请求确定对所述数据库日志的起始消费位置和数据消费长度;
16、根据所述起始消费位置和所述数据消费长度从所述第二日志中获取对应的日志消费数据。
17、通过采用上述技术方案,为了获取日志消费数据,先获取日志消费请求,并根据日志消费请求确定对数据库日志的起始消费位置和数据消费长度,然后根据起始消费位置和数据消费长度从第二日志中获取对应的日志消费数据。
18、可选的,所述根据所述日志消费数据获取对应的数据标识的步骤,包括:
19、根据所述日志消费数据创建日志消费对象;
20、根据所述日志消费对象的内置方法获取对应的数据标识。
21、通过采用上述技术方案,为了获取数据标识,先根据日志消费数据创建日志消费对象,进而根据日志消费对象的内置方法获取对应的数据标识。
22、可选的,在所述根据所述日志消费数据和所述日志消费数据对应的表对象元信息对目标数据库进行sql还原的步骤之后,还包括:
23、若是,则从所述缓存中获取所述日志消费数据对应的表对象元信息,并根据所述日志消费数据和所述日志消费数据对应的表对象元信息对目标数据库进行sql还原。
24、通过采用上述技术方案,当根据数据标识确定日志消费数据对应的表对象元信息在缓存中时,则从缓存中获取日志消费数据对应的表对象元信息,进而根据日志消费数据和日志消费数据对应的表对象元信息对目标数据库进行sql还原。
25、可选的,所述根据所述日志消费数据和所述日志消费数据对应的表对象元信息对目标数据库进行sql还原的步骤,包括:
26、所述根据所述日志消费数据和所述日志消费数据对应的表对象元信息生成对应的sql语句;
27、在目标数据库中执行所述sql语句。
28、通过采用上述技术方案,为了对目标数据库进行sql还原,先根据日志消费数据和日志消费数据对应的表对象元信息生成对应的sql语句,然后在目标数据库中执行sql语句。
29、可选的,所述方法还包括:
30、判断所述缓存中的表对象元信息的数量是否大于预设值,若是,则获取各个表对象元信息的使用频率,并将所述使用频率最小的表对象元信息作为目标表对象元信息;
31、将所述目标表对象元信息移出缓存。
32、通过采用上述技术方案,为了缓解数据库服务对内存资源的压力,判断缓存中的表对象元信息的数量是否大于预设值,若是,则获取各个表对象元信息的使用频率,并将使用频率最小的表对象元信息作为目标表对象元信息,进而将目标表对象元信息移出缓存。
33、第二方面,本申请还提供了一种数据库还原系统,采用如下的技术方案:
34、一种数据库还原系统,包括:
35、数据获取模块,用于获取日志消费请求,并根据所述日志消费请求从数据库日志中获取对应的日志消费数据;所述数据库日志包括第一日志和第二日志;本文档来自技高网...
【技术保护点】
1.一种数据库还原方法,其特征在于,包括:
2.根据权利要求1所述的一种数据库还原方法,其特征在于,在所述获取日志消费请求,并根据所述日志消费请求从数据库日志中获取对应的日志消费数据的步骤之前,还包括:
3.根据权利要求1所述的一种数据库还原方法,其特征在于,所述获取日志消费请求,并根据所述日志消费请求从数据库日志中获取对应的日志消费数据的步骤,包括:
4.根据权利要求1所述的一种数据库还原方法,其特征在于,所述根据所述日志消费数据获取对应的数据标识的步骤,包括:
5.根据权利要求1所述的一种数据库还原方法,其特征在于,在所述根据所述日志消费数据和所述日志消费数据对应的表对象元信息对目标数据库进行SQL还原的步骤之后,还包括:
6.根据权利要求1所述的一种数据库还原方法,其特征在于,所述根据所述日志消费数据和所述日志消费数据对应的表对象元信息对目标数据库进行SQL还原的步骤,包括:
7.根据权利要求1所述的一种数据库还原方法,其特征在于,所述方法还包括:
8.一种数据库还原系统,其特征在于,包括:
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行权利要求1至7中任一种所述方法的计算机程序。
...【技术特征摘要】
1.一种数据库还原方法,其特征在于,包括:
2.根据权利要求1所述的一种数据库还原方法,其特征在于,在所述获取日志消费请求,并根据所述日志消费请求从数据库日志中获取对应的日志消费数据的步骤之前,还包括:
3.根据权利要求1所述的一种数据库还原方法,其特征在于,所述获取日志消费请求,并根据所述日志消费请求从数据库日志中获取对应的日志消费数据的步骤,包括:
4.根据权利要求1所述的一种数据库还原方法,其特征在于,所述根据所述日志消费数据获取对应的数据标识的步骤,包括:
5.根据权利要求1所述的一种数据库还原方法,其特征在于,在所述根据所述日志消费数据和所述日志消费数据对应的表对象元信息对目标数据库进行s...
【专利技术属性】
技术研发人员:苏德财,周文平,李文彬,吴生勇,曾彬,梅杰,
申请(专利权)人:成都虚谷伟业科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。