CN110457284A - 基于SQLServer数据库的多时间点数据恢复方法及系统 - Google Patents
基于SQLServer数据库的多时间点数据恢复方法及系统 Download PDFInfo
- Publication number
- CN110457284A CN110457284A CN201910487248.8A CN201910487248A CN110457284A CN 110457284 A CN110457284 A CN 110457284A CN 201910487248 A CN201910487248 A CN 201910487248A CN 110457284 A CN110457284 A CN 110457284A
- Authority
- CN
- China
- Prior art keywords
- database
- checkpoint
- time point
- value
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于SQLServer数据库的多时间点数据恢复方法及系统,包括以下步骤:S1.定时对数据库的事务日志函数进行查询,获取当前的日志序列号Current LSN字段和检查点的结束时间Checkpoint End字段值;S2.分析所述检查点的结束时间Checkpoint End字段值,若为空值,将所述Checkpoint End字段值对应的所述日志序列号Current LSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述Checkpoint End字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号Current LSN字段和检查点的结束时间Checkpoint End字段结束,等待进行下一查询周期。本发明有益效果:通过捕获的一致性时间点进行数据库的数据恢复。
Description
技术领域
本发明涉及持续数据保护技术领域,具体来说,涉及一种基于 SQLServer数据库的多时间点数据恢复方法及系统。
背景技术
持续数据保护(Continuous Data Protection,简称CDP)是一种在不破坏当前数据的前提下,可以实现对目标数据状态的任何改变进行持续捕捉或跟踪,并且能够将数据恢复到之前任意时间点的方法。
在传统数据保护技术中采用的是拷贝单时间点的数据并进行管理的方法,而持续数据保护可以实现拷贝任意时间点的数据,当生产数据由于人为的逻辑错误而导致数据的破坏时(例如数据被误删除),传统数据保护技术会将遭到破坏的数据状态同步到目标数据存储系统,使目标数据也受到破坏,而CDP技术可以使目标数据状态恢复到数据遭到破坏之前的任意一个时间点,从而保证数据的正确性。
虽然CDP技术可以使数据状态恢复到数据遭到破坏之前的任意一个时间点,但是恢复后的数据不能确保数据库处于一致性状态,而非一致性状态的数据库有可能导致数据的准确性,影响数据的正常使用,进而造成数据的毁坏。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的上述技术问题,本发明提出一种基于SQLServer数据库的多时间点数据恢复方法及系统,能够通过捕获的一致性时间点进行数据库的数据恢复。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种基于SQLServer数据库的多时间点数据恢复方法,包括以下步骤:
S1.定时对数据库的事务日志函数进行查询,获取当前的日志序列号 CurrentLSN字段和检查点的结束时间Checkpoint End字段值;
S2.分析所述检查点的结束时间Checkpoint End字段值,若为空值,将所述Checkpoint End字段值对应的所述日志序列号Current LSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述Checkpoint End字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号Current LSN字段和检查点的结束时间Checkpoint End字段结束,等待进行下一查询周期。
进一步地,在所述步骤2之前分析所述Current LSN字段值是否发生变化,若未发生变化,则等待进行下一次的查询;若发生变化,则说明数据库事务日志发生了变化,则进入所述步骤S2。
进一步地,所述步骤S1中定时对数据库的事务日志函数进行查询的周期为1秒。
进一步地,在所述步骤S1之前使用SQLServer数据库连接到需要恢复数据的SQLServer数据库,并保持数据库的连接。
进一步地,所述使用SQLServer数据库连接到需要获取时间点的 SQLServer数据库是通过JDBC实现的。
本发明的另一方面,提供一种基于SQLServer数据库的多时间点数据恢复系统,包括:
获取模块,用于定时对数据库的事务日志函数进行查询,获取当前的日志序列号Current LSN字段和检查点的结束时间Checkpoint End字段值;
第一分析模块,用于分析所述检查点的结束时间Checkpoint End字段值,若为空值,将所述Checkpoint End字段值对应的所述日志序列号 Current LSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述Checkpoint End字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号Current LSN字段和检查点的结束时间Checkpoint End字段结束,等待进行下一查询周期。
进一步地,所述获取模块与所述第一分析模块之间包括第二分析模块,用于分析所述Current LSN字段值是否发生变化,若未发生变化,则等待进行下一次的查询;若发生变化,则说明数据库事务日志发生了变化,则进入所述第一分析模块。
进一步地,所述获取模块中定时对数据库的事务日志函数进行查询的周期为1秒。
进一步地,该系统还包括数据库连接模块,用于使用SQLServer数据库连接到需要恢复数据的SQLServer数据库,并保持数据库的连接。
本发明的有益效果:能在SQLServer数据库相应事务结束后秒级时间内获取时间点,当处于CDP状态的SQLServer数据库需要进行恢复时,能够对照获取的多个时间点,将数据库恢复到某一时间点,从而实现数据库的数据恢复。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述的基于SQLServer数据库的多时间点数据恢复方法的流程图之一;
图2是根据本发明实施例所述的基于SQLServer数据库的多时间点数据恢复方法的流程图之二;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1和2所示,根据本发明实施例所述的一种基于SQLServer数据库的多时间点数据恢复方法,包括以下步骤:
S1.定时对数据库的事务日志函数进行查询,获取当前的日志序列号 CurrentLSN字段和检查点的结束时间Checkpoint End字段值,Current LSN 字段和CheckpointEnd字段值记录数据库事务变化的时间和LSN号,并对之进行分析,通过对Checkpoint End字段值分析能够看出数据库事务是否发生变化;
具体的,定时对数据库的事务日志函数fn_dblog(@start,@end)进行查询,将从起始日志序列号(@start)一直查询到日志的末尾 (@end=null),取得当前的日志序列号Current LSN字段、检查点的结束时间Checkpoint End字段值,采用分组汇总查询方法,从查询结果中得到 Current LSN字段和Checkpoint End字段值。
事务日志函数查询结果的两个字段:
1、Current LSN字段:此字段记录发生的当前事务的日志序列号,当数据库事务方式变化时该字段会记录相应事务的LSN号。
2、Checkpoint End字段:此字段记录发生的当前事务的时间点,当数据库事务发生变化时该字段会记录发生事务的时间。
通过以上信息可以获取事务日志记录的多个时间点。
S2.分析所述检查点的结束时间Checkpoint End字段值,若为空值,将所述Checkpoint End字段值对应的所述日志序列号Current LSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述Checkpoint End字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号Current LSN字段和检查点的结束时间Checkpoint End字段结束,等待进行下一查询周期。
具体的,分析检查点的结束时间Checkpoint End字段值,如果 Checkpoint End字段值为空值,将该字段值对应的日志序列号Current LSN 字段值作为下一次查询的基准参考值保存;如果Checkpoint End字段值不为空值,将查询到的Checkpoint End字段值作为数据恢复的一致性时间点进行保存,将查询到的所有不为空的Checkpoint End字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号Current LSN字段和检查点的结束时间Checkpoint End字段结束,本次获取所有一致性时间点完成,关闭数据库的连接,等待进行下一查询周期。
表1为查询到的一致性点
Current LSN | Checkpoint End |
000040e5:000000a0:0001 | NULL |
000040e5:000000a8:0001 | 2019/04/10 08:29:06:623 |
000040e5:000000b0:0001 | NULL |
000040e5:000000b0:0002 | NULL |
000040e5:000000d8:0001 | NULL |
000040e5:000000e0:0001 | NULL |
000040e5:000000e0:0002 | NULL |
000040e5:000000e0:0003 | NULL |
000040e5:000000e0:0004 | NULL |
在本发明的一个具体实施例中,在所述步骤2之前分析所述Current LSN字段值是否发生变化,若未发生变化,则等待进行下一次的查询;若发生变化,则说明数据库事务日志发生了变化,则进入所述步骤S2。
在本发明的一个具体实施例中,所述步骤S1中定时对数据库的事务日志函数进行查询的周期为1秒,采用此方案,能够在秒级时间内获取数据库事务的检查点。
在本发明的一个具体实施例中,在所述步骤S1之前使用SQLServer数据库用户连接到需要恢复数据的SQLServer数据库,并保持数据库的连接,采用此方案,能够在数据库执行查询语句,在一次查询周期结束时关闭数据库的连接,避免占用数据库资源。
具体的,每个SQL Server数据库都具有事务日志,用于记录所有事务以及每个事务对数据库所做的修改,SQLServer数据库提供查看当前数据库事务日志记录的函数fn_dblog(@start,@end),该函数接受两个参数,第一个是启动日志序列号,即LSN,可以指定NULL,将从日志开始返回所有内容,第二个是结尾的LSN,可以指定NULL,将所有内容返回到日志的末尾。
在本发明的一个具体实施例中,所述使用SQLServer数据库连接到需要获取时间点的SQLServer数据库是通过JDBC实现的,采用JDBC能够实现与数据库建立连接、发送操作数据库的语句并处理结果。
本发明另一方面,提供一种基于SQLServer数据库的多时间点数据恢复系统,包括:
获取模块,用于定时对数据库的事务日志函数进行查询,获取当前的日志序列号Current LSN字段和检查点的结束时间Checkpoint End字段值;
第一分析模块,用于分析所述检查点的结束时间Checkpoint End字段值,若为空值,将所述Checkpoint End字段值对应的所述日志序列号 Current LSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述Checkpoint End字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号Current LSN字段和检查点的结束时间Checkpoint End字段结束,等待进行下一查询周期。
在本发明的一个具体实施例中,所述获取模块与所述第一分析模块之间包括第二分析模块,用于分析所述Current LSN字段值是否发生变化,若未发生变化,则等待进行下一次的查询;若发生变化,则说明数据库事务日志发生了变化,则进入所述第一分析模块。
在本发明的一个具体实施例中,所述获取模块中定时对数据库的事务日志函数进行查询的周期为1秒。
在本发明的一个具体实施例中,该系统还包括数据库连接模块,用于使用SQLServer数据库连接到需要恢复数据的SQLServer数据库,并保持数据库的连接。
为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。
在具体使用时,根据本发明所述的基于SQLServer数据库的多时间点数据恢复方法,通过SQLServer数据库用户连接到需要恢复数据的SQLServer 数据库,并保持数据库的连接,定时对数据库的事务日志函数进行查询,取得Current LSN字段和Checkpoint End字段数据,并对之进行分析;分析 Checkpoint End字段值,如果为空,将对应的Current LSN字段值作为下一次查询的基准值进行保存;如果不为空,将查询到的所有Checkpoint End字段值作为数据恢复的时间点保存,本次获取一致性点结束,等待进行下一查询周期。
综上所述,借助于本发明的上述技术方案,能在SQLServer数据库相应事务结束后秒级时间内获取时间点,当处于CDP状态的SQLServer数据库需要进行恢复时,能够对照获取的多个时间点,将数据库恢复到某一时间点,从而实现数据库的数据恢复。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于SQLServer数据库的多时间点数据恢复方法,其特征在于,包括以下步骤:
S1.定时对数据库的事务日志函数进行查询,获取当前的日志序列号Current LSN字段和检查点的结束时间Checkpoint End字段值;
S2.分析所述检查点的结束时间Checkpoint End字段值,若为空值,将所述CheckpointEnd字段值对应的所述日志序列号Current LSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述Checkpoint End字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号Current LSN字段和检查点的结束时间Checkpoint End字段结束,等待进行下一查询周期。
2.根据权利要求1所述的基于SQLServer数据库的多时间点数据恢复方法,其特征在于,在所述步骤2之前分析所述Current LSN字段值是否发生变化,若未发生变化,则等待进行下一次的查询;若发生变化,则说明数据库事务日志发生了变化,则进入所述步骤S2。
3.根据权利要求1所述的基于SQLServer数据库的多时间点数据恢复方法,其特征在于,所述步骤S1中定时对数据库的事务日志函数进行查询的周期为1秒。
4.根据权利要求1-3任一项所述的基于SQLServer数据库的多时间点数据恢复方法,其特征在于,在所述步骤S1之前使用SQLServer数据库连接到需要恢复数据的SQLServer数据库,并保持数据库的连接。
5.根据权利要求4所述的基于SQLServer数据库的多时间点数据恢复方法,其特征在于,所述使用SQLServer数据库连接到需要获取时间点的SQLServer数据库是通过JDBC实现的。
6.一种基于SQLServer数据库的多时间点数据恢复系统,其特征在于,包括:
获取模块,用于定时对数据库的事务日志函数进行查询,获取当前的日志序列号Current LSN字段和检查点的结束时间Checkpoint End字段值;
第一分析模块,用于分析所述检查点的结束时间Checkpoint End字段值,若为空值,将所述Checkpoint End字段值对应的所述日志序列号Current LSN字段值作为下一次查询的基准参考值保存;若不为空值,将查询到的所有不为空值的所述Checkpoint End字段值作为本次恢复数据的一致性时间点,本次获取事务日志当前序列号Current LSN字段和检查点的结束时间Checkpoint End字段结束,等待进行下一查询周期。
7.根据权利要求6所述的基于SQLServer数据库的多时间点数据恢复系统,其特征在于,所述获取模块与所述第一分析模块之间包括第二分析模块,用于分析所述Current LSN字段值是否发生变化,若未发生变化,则等待进行下一次的查询;若发生变化,则说明数据库事务日志发生了变化,则进入所述第一分析模块。
8.根据权利要求6所述的基于SQLServer数据库的多时间点数据恢复系统,其特征在于,所述获取模块中定时对数据库的事务日志函数进行查询的周期为1秒。
9.根据权利要求6-8任一项所述的基于SQLServer数据库的多时间点数据恢复系统,其特征在于,该系统还包括数据库连接模块,用于使用SQLServer数据库连接到需要恢复数据的SQLServer数据库,并保持数据库的连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910487248.8A CN110457284B (zh) | 2019-06-05 | 2019-06-05 | 基于SQLServer数据库的多时间点数据恢复方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910487248.8A CN110457284B (zh) | 2019-06-05 | 2019-06-05 | 基于SQLServer数据库的多时间点数据恢复方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457284A true CN110457284A (zh) | 2019-11-15 |
CN110457284B CN110457284B (zh) | 2022-11-29 |
Family
ID=68480626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910487248.8A Active CN110457284B (zh) | 2019-06-05 | 2019-06-05 | 基于SQLServer数据库的多时间点数据恢复方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457284B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347189A (zh) * | 2020-11-05 | 2021-02-09 | 江苏电力信息技术有限公司 | 基于云计算的财务数据一致性失效的发现与恢复方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399921A (zh) * | 2013-08-01 | 2013-11-20 | 天津火星科技有限公司 | 一种基于Oracle数据库的一致点捕获方法 |
RU2526753C1 (ru) * | 2013-06-20 | 2014-08-27 | Закрытое акционерное общество Научно-производственное предприятие "Реляционные экспертные системы" | Способ восстановления данных в системе управления базами данных |
CN105574187A (zh) * | 2015-12-23 | 2016-05-11 | 武汉达梦数据库有限公司 | 一种异构数据库复制事务一致性保障方法及系统 |
CN109189608A (zh) * | 2018-08-13 | 2019-01-11 | 武汉达梦数据库有限公司 | 一种保证复制事务一致性的方法以及相应的复制装置 |
-
2019
- 2019-06-05 CN CN201910487248.8A patent/CN110457284B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2526753C1 (ru) * | 2013-06-20 | 2014-08-27 | Закрытое акционерное общество Научно-производственное предприятие "Реляционные экспертные системы" | Способ восстановления данных в системе управления базами данных |
CN103399921A (zh) * | 2013-08-01 | 2013-11-20 | 天津火星科技有限公司 | 一种基于Oracle数据库的一致点捕获方法 |
CN105574187A (zh) * | 2015-12-23 | 2016-05-11 | 武汉达梦数据库有限公司 | 一种异构数据库复制事务一致性保障方法及系统 |
CN109189608A (zh) * | 2018-08-13 | 2019-01-11 | 武汉达梦数据库有限公司 | 一种保证复制事务一致性的方法以及相应的复制装置 |
Non-Patent Citations (1)
Title |
---|
向猛等: "SQL SERVER 2005基于事务日志的备份与恢复深入研究", 《计算机系统应用》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347189A (zh) * | 2020-11-05 | 2021-02-09 | 江苏电力信息技术有限公司 | 基于云计算的财务数据一致性失效的发现与恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110457284B (zh) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105843702B (zh) | 一种用于数据备份的方法以及装置 | |
CN109460349B (zh) | 一种基于日志的测试用例生成方法和装置 | |
US11775560B1 (en) | Method and system for using before images of changes for continuously comparing two databases which are actively being kept synchronized | |
US6934877B2 (en) | Data backup/recovery system | |
US7849111B2 (en) | Online incremental database dump | |
US8712970B1 (en) | Recovering a database to any point-in-time in the past with guaranteed data consistency | |
US6122630A (en) | Bidirectional database replication scheme for controlling ping-ponging | |
US9559928B1 (en) | Integrated test coverage measurement in distributed systems | |
US6105078A (en) | Extended remote copying system for reporting both active and idle conditions wherein the idle condition indicates no updates to the system for a predetermined time period | |
US7587430B2 (en) | Backup system for data base | |
US9996434B2 (en) | Data mirror volume verification | |
US9053123B2 (en) | Mirroring file data | |
US20160378617A1 (en) | Data gap management in a remote data mirroring system | |
US10922186B1 (en) | Method and system for implementing current, consistent, and complete backups by rolling a change log backwards | |
US8554727B2 (en) | Method and system of tiered quiescing | |
CN110188103A (zh) | 数据对账方法、装置、设备和存储介质 | |
CN111427898A (zh) | 一种基于解析Oracle日志的持续数据保护系统及方法 | |
EP1209569A1 (en) | Data backup/recovery system | |
US9612921B2 (en) | Method and system for load balancing a distributed database providing object-level management and recovery | |
CN110457284A (zh) | 基于SQLServer数据库的多时间点数据恢复方法及系统 | |
CN106155835A (zh) | 一种基于同步复制技术的容灾方法 | |
CN115033578A (zh) | 一种业务数据更新的方法、相关装置及存储介质 | |
US7831782B1 (en) | Roll-back log to provide data consistency | |
KR101589213B1 (ko) | 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법 | |
Ji | Instant snapshots in a federated array of bricks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230105 Address after: Room 301, floor 3, building 5, yard 16, Meiliyuan Middle Road, Haidian District, Beijing 100097 Patentee after: Beijing Mars high tech digital technology Co.,Ltd. Address before: No. 1401, 23 / F, No. 105, North West Third Ring Road, Haidian District, Beijing 100048 Patentee before: Huang Jiang |
|
TR01 | Transfer of patent right |