CN110457284B - 基于SQLServer数据库的多时间点数据恢复方法及系统 - Google Patents

基于SQLServer数据库的多时间点数据恢复方法及系统 Download PDF

Info

Publication number
CN110457284B
CN110457284B CN201910487248.8A CN201910487248A CN110457284B CN 110457284 B CN110457284 B CN 110457284B CN 201910487248 A CN201910487248 A CN 201910487248A CN 110457284 B CN110457284 B CN 110457284B
Authority
CN
China
Prior art keywords
database
checkpoint
value
field
current
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.)
Active
Application number
CN201910487248.8A
Other languages
English (en)
Other versions
CN110457284A (zh
Inventor
刘亚楠
黄疆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Mars High Tech Digital Technology Co ltd
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201910487248.8A priority Critical patent/CN110457284B/zh
Publication of CN110457284A publication Critical patent/CN110457284A/zh
Application granted granted Critical
Publication of CN110457284B publication Critical patent/CN110457284B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Abstract

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

Description

基于SQLServer数据库的多时间点数据恢复方法及系统
技术领域
本发明涉及持续数据保护技术领域,具体来说,涉及一种基于SQLServer数据库的多时间点数据恢复方法及系统。
背景技术
持续数据保护(Continuous Data Protection,简称CDP)是一种在不破坏当前数据的前提下,可以实现对目标数据状态的任何改变进行持续捕捉或跟踪,并且能够将数据恢复到之前任意时间点的方法。
在传统数据保护技术中采用的是拷贝单时间点的数据并进行管理的方法,而持续数据保护可以实现拷贝任意时间点的数据,当生产数据由于人为的逻辑错误而导致数据的破坏时(例如数据被误删除),传统数据保护技术会将遭到破坏的数据状态同步到目标数据存储系统,使目标数据也受到破坏,而CDP技术可以使目标数据状态恢复到数据遭到破坏之前的任意一个时间点,从而保证数据的正确性。
虽然CDP技术可以使数据状态恢复到数据遭到破坏之前的任意一个时间点,但是恢复后的数据不能确保数据库处于一致性状态,而非一致性状态的数据库有可能导致数据的准确性,影响数据的正常使用,进而造成数据的毁坏。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的上述技术问题,本发明提出一种基于SQLServer数据库的多时间点数据恢复方法及系统,能够通过捕获的一致性时间点进行数据库的数据恢复。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种基于SQLServer数据库的多时间点数据恢复方法,包括以下步骤:
S1.定时对数据库的事务日志函数进行查询,获取当前的日志序列号Current LSN字段和检查点的结束时间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.定时对数据库的事务日志函数进行查询,获取当前的日志序列号Current LSN字段和检查点的结束时间Checkpoint End字段值,Current LSN字段和Checkpoint End字段值记录数据库事务变化的时间和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数据库,并保持数据库的连接。
CN201910487248.8A 2019-06-05 2019-06-05 基于SQLServer数据库的多时间点数据恢复方法及系统 Active CN110457284B (zh)

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 CN110457284A (zh) 2019-11-15
CN110457284B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112347189A (zh) * 2020-11-05 2021-02-09 江苏电力信息技术有限公司 基于云计算的财务数据一致性失效的发现与恢复方法

Citations (4)

* Cited by examiner, † Cited by third party
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 武汉达梦数据库有限公司 一种保证复制事务一致性的方法以及相应的复制装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
SQL SERVER 2005基于事务日志的备份与恢复深入研究;向猛等;《计算机系统应用》;20130615(第06期);全文 *

Also Published As

Publication number Publication date
CN110457284A (zh) 2019-11-15

Similar Documents

Publication Publication Date Title
CN109241185B (zh) 一种数据同步的方法以及数据同步装置
US11520772B2 (en) Tracking change data in a database
US20150293966A1 (en) System and Method for Massively Parallel Processing Database
US7406489B2 (en) Apparatus, system and method for persistently storing data in a data synchronization process
EP1618378A2 (en) Systems and methods for versioning based triggers
CN111858501B (zh) 一种基于日志解析同步的日志读取方法和数据同步系统
CN109063005B (zh) 一种数据迁移方法及系统、存储介质、电子设备
US20180032567A1 (en) Method and device for processing data blocks in a distributed database
CN107229537A (zh) 一种数据库实时备份方法
CN110457284B (zh) 基于SQLServer数据库的多时间点数据恢复方法及系统
CN103399921B (zh) 一种基于Oracle数据库的一致点捕获方法
CN111475517A (zh) 数据更新方法、装置、计算机设备及存储介质
CN107169003B (zh) 一种数据关联方法及装置
CN111414382A (zh) 一种基于MongoDB的慢SQL聚合展示方法和系统
CN115098486A (zh) 基于海关业务大数据的实时数据采集方法
CN114116253A (zh) 一种消息队列的消息处理方法及系统
CN115631866B (zh) 一种针对医疗大数据采集的快速精准去重方法
CN115269563B (zh) 用于针对数据库系统进行日志分析的方法及装置
CN115794875A (zh) 一种支持时序数据存储的图数据库系统和融合存储方法
CN114385260A (zh) 一种基于rowid区间的初始化装载方法及设备
CN114595224A (zh) 数据存储方法及装置、数据查询方法及装置
CN117992399A (zh) 一种集群的数据回收方法、存储介质及设备
CN116501539A (zh) 一种数据处理的方法及相关装置
CN111984501A (zh) 一种oracle数据库的sql跟踪方法及工具
CN115576929A (zh) 数据库异常崩溃的快速恢复方法及计算机可读存储介质

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