当前位置: 首页 > 专利查询>黄疆专利>正文

基于SQLServer数据库的多时间点数据恢复方法及系统技术方案

技术编号:22564783 阅读:42 留言:0更新日期:2019-11-16 11:52
本发明专利技术公开了一种基于SQLServer数据库的多时间点数据恢复方法及系统,包括以下步骤:S1.定时对数据库的事务日志函数进行查询,获取当前的日志序列号Current LSN字段和检查点的结束时间Checkpoint End字段值;S2.分析所述检查点的结束时间Checkpoint End字段值,若为空值,将所述Checkpoint End字段值对应的所述日志序列号Current LSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述Checkpoint End字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号Current LSN字段和检查点的结束时间Checkpoint End字段结束,等待进行下一查询周期。本发明专利技术有益效果:通过捕获的一致性时间点进行数据库的数据恢复。

Method and system of multi time point data recovery based on SQL Server database

The invention discloses a multi time point data recovery method and system based on SQL Server database, which comprises the following steps: S1. Regularly query the transaction log function of the database, obtain the current log serial number current LSN field and the end time checkpoint end field value; S2. Analyze the end time checkpoint end field value of the checkpoint, if it is null The current LSN field value corresponding to the checkpoint end field value is saved as the benchmark reference value of the next query; if it is not null, the checkpoint end field value of all the non null values queried is taken as the consistency time point of this recovery data, and the current LSN field of the transaction log and the end time ch of the checkpoint are obtained The eckpoint end field ends, waiting for the next query cycle. The invention has the advantages that the data of the database is recovered through the captured consistency time point.

【技术实现步骤摘要】
基于SQLServer数据库的多时间点数据恢复方法及系统
本专利技术涉及持续数据保护
,具体来说,涉及一种基于SQLServer数据库的多时间点数据恢复方法及系统。
技术介绍
持续数据保护(ContinuousDataProtection,简称CDP)是一种在不破坏当前数据的前提下,可以实现对目标数据状态的任何改变进行持续捕捉或跟踪,并且能够将数据恢复到之前任意时间点的方法。在传统数据保护技术中采用的是拷贝单时间点的数据并进行管理的方法,而持续数据保护可以实现拷贝任意时间点的数据,当生产数据由于人为的逻辑错误而导致数据的破坏时(例如数据被误删除),传统数据保护技术会将遭到破坏的数据状态同步到目标数据存储系统,使目标数据也受到破坏,而CDP技术可以使目标数据状态恢复到数据遭到破坏之前的任意一个时间点,从而保证数据的正确性。虽然CDP技术可以使数据状态恢复到数据遭到破坏之前的任意一个时间点,但是恢复后的数据不能确保数据库处于一致性状态,而非一致性状态的数据库有可能导致数据的准确性,影响数据的正常使用,进而造成数据的毁坏。针对相关技术中的问题,目前尚未提出有效的解决方案。
技术实现思路
针对相关技术中的上述技术问题,本专利技术提出一种基于SQLServer数据库的多时间点数据恢复方法及系统,能够通过捕获的一致性时间点进行数据库的数据恢复。为实现上述技术目的,本专利技术的技术方案是这样实现的:一种基于SQLServer数据库的多时间点数据恢复方法,包括以下步骤:S1.定时对数据库的事务日志函数进行查询,获取当前的日志序列号CurrentLSN字段和检查点的结束时间CheckpointEnd字段值;S2.分析所述检查点的结束时间CheckpointEnd字段值,若为空值,将所述CheckpointEnd字段值对应的所述日志序列号CurrentLSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述CheckpointEnd字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号CurrentLSN字段和检查点的结束时间CheckpointEnd字段结束,等待进行下一查询周期。进一步地,在所述步骤2之前分析所述CurrentLSN字段值是否发生变化,若未发生变化,则等待进行下一次的查询;若发生变化,则说明数据库事务日志发生了变化,则进入所述步骤S2。进一步地,所述步骤S1中定时对数据库的事务日志函数进行查询的周期为1秒。进一步地,在所述步骤S1之前使用SQLServer数据库连接到需要恢复数据的SQLServer数据库,并保持数据库的连接。进一步地,所述使用SQLServer数据库连接到需要获取时间点的SQLServer数据库是通过JDBC实现的。本专利技术的另一方面,提供一种基于SQLServer数据库的多时间点数据恢复系统,包括:获取模块,用于定时对数据库的事务日志函数进行查询,获取当前的日志序列号CurrentLSN字段和检查点的结束时间CheckpointEnd字段值;第一分析模块,用于分析所述检查点的结束时间CheckpointEnd字段值,若为空值,将所述CheckpointEnd字段值对应的所述日志序列号CurrentLSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述CheckpointEnd字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号CurrentLSN字段和检查点的结束时间CheckpointEnd字段结束,等待进行下一查询周期。进一步地,所述获取模块与所述第一分析模块之间包括第二分析模块,用于分析所述CurrentLSN字段值是否发生变化,若未发生变化,则等待进行下一次的查询;若发生变化,则说明数据库事务日志发生了变化,则进入所述第一分析模块。进一步地,所述获取模块中定时对数据库的事务日志函数进行查询的周期为1秒。进一步地,该系统还包括数据库连接模块,用于使用SQLServer数据库连接到需要恢复数据的SQLServer数据库,并保持数据库的连接。本专利技术的有益效果:能在SQLServer数据库相应事务结束后秒级时间内获取时间点,当处于CDP状态的SQLServer数据库需要进行恢复时,能够对照获取的多个时间点,将数据库恢复到某一时间点,从而实现数据库的数据恢复。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本专利技术实施例所述的基于SQLServer数据库的多时间点数据恢复方法的流程图之一;图2是根据本专利技术实施例所述的基于SQLServer数据库的多时间点数据恢复方法的流程图之二;具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。如图1和2所示,根据本专利技术实施例所述的一种基于SQLServer数据库的多时间点数据恢复方法,包括以下步骤:S1.定时对数据库的事务日志函数进行查询,获取当前的日志序列号CurrentLSN字段和检查点的结束时间CheckpointEnd字段值,CurrentLSN字段和CheckpointEnd字段值记录数据库事务变化的时间和LSN号,并对之进行分析,通过对CheckpointEnd字段值分析能够看出数据库事务是否发生变化;具体的,定时对数据库的事务日志函数fn_dblog(@start,@end)进行查询,将从起始日志序列号(@start)一直查询到日志的末尾(@end=null),取得当前的日志序列号CurrentLSN字段、检查点的结束时间CheckpointEnd字段值,采用分组汇总查询方法,从查询结果中得到CurrentLSN字段和CheckpointEnd字段值。事务日志函数查询结果的两个字段:1、CurrentLSN字段:此字段记录发生的当前事务的日志序列号,当数据库事务方式变化时该字段会记录相应事务的LSN号。2、CheckpointEnd字段:此字段记录发生的当前事务的时间点,当数据库事务发生变化时该字段会记录发生事务的时间。通过以上信息可以获取事务日志记录的多个时间点。S2.分析所述检查点的结束时间CheckpointEnd字段值,若为空值,将所述CheckpointEnd字段值对应的所述日志序列号CurrentLSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述CheckpointEnd字段值作为本文档来自技高网...

【技术保护点】
1.一种基于SQLServer数据库的多时间点数据恢复方法,其特征在于,包括以下步骤:/nS1.定时对数据库的事务日志函数进行查询,获取当前的日志序列号Current LSN字段和检查点的结束时间Checkpoint End字段值;/nS2.分析所述检查点的结束时间Checkpoint End字段值,若为空值,将所述CheckpointEnd字段值对应的所述日志序列号Current LSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述Checkpoint End字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号Current LSN字段和检查点的结束时间Checkpoint End字段结束,等待进行下一查询周期。/n

【技术特征摘要】
1.一种基于SQLServer数据库的多时间点数据恢复方法,其特征在于,包括以下步骤:
S1.定时对数据库的事务日志函数进行查询,获取当前的日志序列号CurrentLSN字段和检查点的结束时间CheckpointEnd字段值;
S2.分析所述检查点的结束时间CheckpointEnd字段值,若为空值,将所述CheckpointEnd字段值对应的所述日志序列号CurrentLSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述CheckpointEnd字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号CurrentLSN字段和检查点的结束时间CheckpointEnd字段结束,等待进行下一查询周期。


2.根据权利要求1所述的基于SQLServer数据库的多时间点数据恢复方法,其特征在于,在所述步骤2之前分析所述CurrentLSN字段值是否发生变化,若未发生变化,则等待进行下一次的查询;若发生变化,则说明数据库事务日志发生了变化,则进入所述步骤S2。


3.根据权利要求1所述的基于SQLServer数据库的多时间点数据恢复方法,其特征在于,所述步骤S1中定时对数据库的事务日志函数进行查询的周期为1秒。


4.根据权利要求1-3任一项所述的基于SQLServer数据库的多时间点数据恢复方法,其特征在于,在所述步骤S1之前使用SQLServer数据库连接到需要恢复数据的SQLServer数据库,并保持数据库的连接。


5.根据权利要求4所述的基于SQLServer数据库的多时间点数据恢复方法,其特征在于,所述使用SQLServer数据库连接到需...

【专利技术属性】
技术研发人员:刘亚楠黄疆
申请(专利权)人:黄疆
类型:发明
国别省市:北京;11

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

1