块级CDP中数据库一致点的捕获方法、系统、存储介质技术方案

技术编号:33895645 阅读:14 留言:0更新日期:2022-06-22 17:32
本发明专利技术涉及一种块级CDP中数据库一致点的捕获方法、系统、存储介质,属于数据恢复领域。所述方法包括:重做日志所在路径获取步骤;一致点高速缓存创建步骤;文件过滤驱动及卷过滤驱动安装步骤;发送步骤;基本信息获取步骤;判断步骤;捕获步骤。所述系统包括:重做日志所在路径获取模块;一致点高速缓存创建模块;文件过滤驱动及卷过滤驱动安装模块;发送模块;基本信息获取模块;判断模块;捕获模块。本发明专利技术提供一种更轻量级的方法让卷过滤驱动捕获到一致点,通过文件过滤驱动、一致点高速缓存和卷过滤驱动相互协作完成捕获一致点的工作,无需解析IO请求包的具体内容,仅通过识别InnoDB重做日志检查点即可,简便可行。简便可行。简便可行。

【技术实现步骤摘要】
块级CDP中数据库一致点的捕获方法、系统、存储介质


[0001]本专利技术属于数据恢复领域,涉及一种块级CDP中数据库一致点的捕获方法、系统、存储介质。

技术介绍

[0002]InnoDB是一种支持事务、回滚、多版本并发控制的存储引擎,当下比较流行的MySQL数据库是将InnoDB作为默认存储引擎。InnoDB在其重做日志文件中设有位置固定的检查点字段,数据库缓存每次落盘时都会在检查点中做相应记录。块级CDP是一种可以持续地捕获所有卷设备IO请求的备份方式,可以有效地避免用户因操作错误,病毒攻击等非硬件故障造成的数据丢失,并且能够提供更加灵活的目标恢复点。随着存储技术的发展,块级CDP正逐渐成为数据保护的主流方式,而将块级CDP应用到主流数据库,以实现数据快速完整恢复,也逐渐成为行业研究热点。
[0003]目前,现有技术中有一些针对数据库一致性的块级连续数据保护方法,例如现有技术公开了一种保证数据库一致性的CDP备份和恢复方法(公开号CN108170766B),该方式通过解析事务日志IO请求包的具体内容找到一个事务所产生的最后一个IO请求包,从而判断一条IO请求包是否具有一致性。这种方法可以有效解决块级CDP中数据库的一致性问题,但也具有一定的缺点,即要分析每一条事务日志IO请求包的内容,这难免会对被保护的客户端造成一定的性能影响,特别是IO请求包产生于内核层,且下发速度非常快,如果在IO请求包下发的过程中解析其具体内容,会造成较大的延迟。
[0004]因此,如何能在捕获块级CDP一致点的同时尽可能减少对系统的效率影响,成为当前急需解决的技术问题。

技术实现思路

[0005]本专利技术为了解决上述
技术介绍
中的技术问题,本专利技术实施例提供了一种块级CDP中数据库一致点的捕获方法、系统、存储介质。所述技术方案如下:第一个方面,提供了一种块级CDP中数据库一致点的捕获方法,所述方法包括步骤:重做日志所在路径获取步骤,获取InnoDB重做日志所在路径;一致点高速缓存创建步骤,在内核层创建一致点高速缓存;文件过滤驱动及卷过滤驱动安装步骤,在文件驱动上层安装文件过滤驱动,并在卷设备驱动上层安装卷过滤驱动;发送步骤,将所述InnoDB重做日志所在路径发送给所述文件过滤驱动;基本信息获取步骤,当操作系统下发IO请求时,所述文件过滤驱动捕获文件系统层的写类型IO请求包并获得基本信息,所述基本信息包括:写入文件路径、偏移和数据长度;判断步骤,根据所述基本信息和InnoDB重做日志所在路径,所述文件过滤驱动判
断所述文件系统层IO请求包是否具有一致性;若是,则将所述文件系统层IO请求包的首地址记录在一致点高速缓存,再下发所述文件系统层IO请求包;若否,则下发所述文件系统层IO请求包;捕获步骤,所述卷过滤驱动通过查询一致点高速缓存捕获一致点。
[0006]在其中一个实施例中,所述重做日志所在路径获取步骤,包括:遍历当前操作系统的所有环境变量,筛选出数据库启动命令所在路径的环境变量,其中,所述数据库使用InnoDB存储引擎;根据所述数据库启动命令所在路径的环境变量和数据库的目录结构,得到InnoDB重做日志所在路径。
[0007]在其中一个实施例中,所述一致点高速缓存创建步骤,包括:安装内核态动态链接库驱动;在所述动态链接库驱动中创建自旋锁、非分页内存分配表和哈希表,其中,所述哈希表具有对外暴露的接口,所述哈希表通过所述非分页内存分配表管理内存。
[0008]在其中一个实施例中,所述判断步骤,包括:根据所述基本信息和InnoDB重做日志所在路径,判断所述文件系统层IO请求包是否覆盖数据库重做日志的检查点字段;若是,则在一致点高速缓存中申请指定大小的内存,并将所述文件系统层IO请求包的首地址存入所述内存,再下发所述文件系统层IO请求包;若否,则下发所述文件系统层IO请求包。
[0009]需要理解的是,所述文件系统层IO请求包与卷层IO请求包属于同一IO请求包在设备栈不同位置所处的不同状态,二者具有相同的首地址。
[0010]在其中一个实施例中,所述捕获步骤包括:卷过滤驱动获取卷层IO请求包的首地址;卷过滤驱动调用一致性高速缓存中哈希表的接口,判断所述卷层IO请求包的首地址是否已记录在一致性高速缓存中;若是,则对所述卷层IO请求包提取的备份数据进行标记,再将所述卷层IO请求包的首地址通过接口从一致性高速缓存中删除,下发所述卷层IO请求包;若不是,则将所述卷层IO请求包进行备份,再下发所述卷层IO请求包。
[0011]值得解释的是,对所述卷层IO请求包提取的备份数据进行标记的操作对应一致点捕获工作的完成。
[0012]还值得解释的是,所述卷层IO请求包是文件系统层IO请求包经过设备栈到达卷过滤驱动层时发生状态改变而来;所述卷层IO请求包和文件系统层IO请求包具有相同的首地址。
[0013]第二个方面,还提供了一种块级CDP中数据库一致点的捕获系统,所述系统包括:重做日志所在路径获取模块,用于获取InnoDB重做日志所在路径;一致点高速缓存创建模块,用于在内核层创建一致点高速缓存;文件过滤驱动及卷过滤驱动安装模块,用于在文件驱动层上安装文件过滤驱动,在卷设备驱动层上安装卷过滤驱动;发送模块,用于将所述InnoDB重做日志所在路径发送给所述文件过滤驱动;基本信息获取模块,用于在操作系统下发IO请求时,所述文件过滤驱动捕获文件系统层的写类型IO请求包并获得基本信息,所述基本信息包括:写入文件路径、偏移和数据
长度;判断模块,用于根据所述基本信息和所述InnoDB重做日志所在路径,所述文件过滤驱动判断所述文件系统层IO请求包是否具有一致性;若是,则将所述文件系统层IO请求包的首地址记录在一致点高速缓存,再下发所述文件系统层IO请求包;若否,则下发所述文件系统层IO请求包;捕获模块,用于所述卷过滤驱动通过查询一致点高速缓存捕获一致点。
[0014]在其中一个实施例中,所述一致点高速缓存创建模块,包括:安装单元,用于安装内核态动态链接库驱动;创建单元,用于在所述动态链接库驱动中创建自旋锁、非分页内存分配表和哈希表,其中,所述哈希表具有对外暴露的接口,所述哈希表通过所述非分页内存分配表管理内存。
[0015]在其中一个实施例中,所述判断模块,包括:检查点覆盖检测单元,用于根据所述基本信息和所述InnoDB重做日志所在路径,判断所述文件系统层IO请求包是否覆盖数据库重做日志的检查点字段;若是,则在一致点高速缓存中申请指定大小的内存,并将所述文件系统层IO请求包的首地址存入所述内存,再下发所述文件系统层IO请求包;若否,则下发所述文件系统层IO请求包。
[0016]在其中一个实施例中,所述捕获模块,包括:首地址获取单元,用于卷过滤驱动获取卷层IO请求包的首地址;一致点判断标记单元,用于卷过滤驱动调用一致性高速缓存中对外暴露的哈希表接口,判断所述卷层IO请求包的首地址是否已记录在一致性高速缓存中;若是,则对所述卷层IO请求包提取的备份数据进行标记,再将所述卷层IO请求包的首地本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种块级CDP中数据库一致点的捕获方法,其特征在于,包括步骤:重做日志所在路径获取步骤,获取InnoDB重做日志所在路径;一致点高速缓存创建步骤,在内核层创建一致点高速缓存;文件过滤驱动及卷过滤驱动安装步骤,在文件驱动上层安装文件过滤驱动,并在卷设备驱动上层安装卷过滤驱动;发送步骤,将所述InnoDB重做日志所在路径发送给所述文件过滤驱动;基本信息获取步骤,当操作系统下发IO请求时,所述文件过滤驱动捕获文件系统层的写类型IO请求包并获得基本信息,所述基本信息包括:写入文件路径、偏移和数据长度;判断步骤,根据所述基本信息和所述InnoDB重做日志所在路径,所述文件过滤驱动判断所述文件系统层IO请求包是否具有一致性;若是,则将所述文件系统层IO请求包的首地址记录在一致点高速缓存,再下发所述文件系统层IO请求包;若否,则下发所述文件系统层IO请求包;捕获步骤,所述卷过滤驱动通过查询一致点高速缓存捕获一致点。2.根据权利要求1所述的一种块级CDP中数据库一致点的捕获方法,其特征在于,所述重做日志所在路径获取步骤,包括:遍历当前操作系统的所有环境变量,筛选出数据库启动命令所在路径的环境变量,其中,所述数据库使用InnoDB存储引擎;根据所述数据库启动命令所在路径的环境变量和数据库的目录结构,得到InnoDB重做日志所在路径。3.根据权利要求1所述的一种块级CDP中数据库一致点的捕获方法,其特征在于,所述一致点高速缓存创建步骤,包括:安装内核态动态链接库驱动;在所述动态链接库驱动中创建自旋锁、非分页内存分配表和哈希表,其中,所述哈希表具有对外暴露的接口,所述哈希表通过所述非分页内存分配表管理内存。4.根据权利要求3所述的一种块级CDP中数据库一致点的捕获方法,其特征在于,所述判断步骤,包括:根据所述基本信息和所述InnoDB重做日志所在路径,判断所述文件系统层IO请求包是否覆盖数据库重做日志的检查点字段;若是,则在一致点高速缓存中申请指定大小的内存,并将所述文件系统层IO请求包的首地址存入所述内存,再下发所述文件系统层IO请求包;若否,则下发所述文件系统层IO请求包。5.根据权利要求3所述的一种块级CDP中数据库一致点的捕获方法,其特征在于,所述捕获步骤包括:卷过滤驱动获取卷层IO请求包的首地址;卷过滤驱动调用一致性高速缓存中哈希表的接口,判断所述卷层IO请求包的首地址是否已记录在一致性高速缓存中;若是,则对所述卷层IO请求包提取的备份数据进行标记,再将所述卷层IO请求包的首地址通过接口从一致性高速缓存中删除,下发所述卷层IO请求包;若不是,则将所述卷层IO请求包进行备份,再下发所述卷...

【专利技术属性】
技术研发人员:谢俊峰黄传波刘国印涂磊钱禹航谢卓伟
申请(专利权)人:成都云祺科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1