CN109739689B - 一种雕复SQL Server数据库文件的方法 - Google Patents
一种雕复SQL Server数据库文件的方法 Download PDFInfo
- Publication number
- CN109739689B CN109739689B CN201811592785.0A CN201811592785A CN109739689B CN 109739689 B CN109739689 B CN 109739689B CN 201811592785 A CN201811592785 A CN 201811592785A CN 109739689 B CN109739689 B CN 109739689B
- Authority
- CN
- China
- Prior art keywords
- sql server
- elements
- server database
- data page
- data
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种雕复SQL Server数据库文件的方法,包括以下步骤:S1:提取所述SQL Server数据库中数据源的空闲簇/块并计入集合A1;S2:检测所述集合A1的元素中所述SQL Server数据库的数据页块并计入集合A2;S3:采用图论的方法对所述集合A2的元素进行重组;S4:根据所述集合A2的元素恢复所述SQL Server数据库文件。本发明提供的方法能够快速检测SQL Server数据库的数据页并高效雕复/重组SQL Server数据库的数据页块。
Description
技术领域
本发明属于数据恢复领域,涉及一种雕复SQL Server数据库文件的方法。
背景技术
随着计算机中数据存储管理技术的飞速发展,数据库的应用变得十分广泛,深入到各个领域。从小型单项事务处理系统到大型信息系统,从联机事务处理到联机分析处理,从一般企业管理到计算机辅助设计与制造,计算机集成制造系统,电子政务,电子商务地理信息系统等,越来越多的应用领域采用数据库技术来存储和处理信息资源。数据库已成为了现代信息系统的重要组成部分。
数据库中存储着重要重要而敏感的信息,因此数据库系统就成为了黑客们有价值的攻击对象。黑客可以通过口令入侵、特权提升、漏洞入侵、SQL注入和窃取备份等手段攻击数据库系统,窃取、篡改、破坏其中的数据或进行其他非法活动。从数据库中恢复出入侵者破坏的数据是取证中重要的一部分,也是本文的研究主题。数据库恢复相对于其它电子数据的恢复优点之一是存在很多冗余信息,具有很丰富的证据来源来恢复数据。
SQL Server是微软推出的企业级关系型数据库,具有高性能、高易用性、可伸缩性好、与相关软件集成度高等优点,广泛应用于各种信息管理系统、办公自动化系统、决策支持系统等。
SQL Server数据库文件的存储是微软自定义的存储格式,传统的数据恢复技术无法应用到数据库文件中的数据记录提取与恢复。
市面上现有技术无法有效重组多片段的SQL Server数据库文件,无法有效地恢复数据库中删除的数据记录数据。
发明内容
本发明针对现有技术的不足问题,提出了一种雕复SQL Server数据库文件的方法,通过查找和提取空闲簇/块并采用有向无环图论技术雕复/重组数据页,从而实现基于图论的雕复SQL Server数据库文件的目的,本发明可能涉及的术语如下:
簇/块:常规文件系统中分区的最小管理单元,由连续的固定个数的扇区组成;
数据库的数据文件:本文中特指记录数据库表结构及表实际数据的相关文件的总称;
数据页:数据库的数据文件的最小管理单元,由16个物理连续的扇区组成,具有特定的结构。
数据页块:由物理连续的一个或多个数据页组成的区段。
区:在同一种数据文件中由固定个数的数据页组成的结构,是数据库引擎存储分配的最小单元;
段:由一个或多个连续的区组成,具有独立存储结构的数据页对象的数据,根据需要存储的数据特性和用途不同常常分为索引段、数据段、回滚段、回退段、临时段。
图论:〔Graph Theory〕以图为研究对象,图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。
本发明包括以下步骤:
S1:提取所述SQL Server数据库中数据源的空闲簇/块并计入集合A1;
S2:检测所述集合A1的元素中所述SQL Server数据库的数据页块并计入集合A2;
S3:采用图论的方法对所述集合A2的元素进行重组;
S4:根据所述集合A2的元素恢复所述SQL Server数据库文件。
优选地,所述步骤S2的具体步骤如下:
S21:从所述集合A1的元素中读取数据页P;
S22:检查当前数据页P是否符合SQL Server数据库的数据页结构;
S23:判断步骤S22的检查是否通过,如果是,执行步骤S24,否则执行步骤S25;
S24:将当前数据页P计入所述集合A2;
S25:判断所述集合A1的所有元素是否读取完毕,如果是,则执行步骤S27,否则执行步骤S26;
S26:设置读数据的偏移量,执行步骤S21;
S27:将所述集合A2的元素组合为所述SQL Server数据库的数据页块。
优选地,步骤S3的具体步骤如下:
S31:通过所述集合A2构建有向无环图G;
S32:采用广度优先搜索算法对有向无环图G进行拓扑排序;
S33:计算所述有向无环图G的边的权重;
S34:通过启发式搜索和贪婪算法在所述有向无环图G中寻找多源最优路径并计入集合A3;
S35:通过所述集合A3的元素重组所述集合A2的元素。
优选地,所述多源最优路径是指所述有向无环图G中权重之和最大且不相交的路径。
本发明的有益效果是:能够快速检测SQL Server数据库的数据页并高效雕复/重组SQL Server数据库的数据页块。
附图说明
图1为本发明所提供的方法的总流程图;
图2为本发明中检测数据页块的具体流程图;
图3为本发明中雕复/重组数据页块的具体流程图。
具体实施方式
图1示出了本发明所提供的方法的总流程图。如图1所示,本发明包括以下步骤:
S1:解析待恢复的数据源所包含的文件系统结构,获取其分区信息,分区信息主要包括分区的数量、分区大小、分区的起始位置、分区的簇/块大小、分区的总簇/块数、分区的位图表等参数,根据分区的位图表信息来标记数据源中空闲簇/块,同时记录其空闲簇/块对应的LBA值;若未包含正常文件系统,则默认将待恢复的数据源的全部内容作为空闲簇处理,且簇的大小默认为8扇区,记录所有簇对应的LBA值,并将上述获取的空闲簇/块计入集合A1。
S2:遍历集合A1的元素a1i,检测a1i中的SQL Server数据页块并计入集合A2。图2示出了本发明中检测数据页块的具体流程图,如图2所示,步骤S2的具体步骤如下:
S21:从集合A1的元素中读取连续的16扇区作为数据页P;
S22:SQL Server数据页的前0x60字节为页头,其具有特定的结构,根据该结构中每个成员的取值范围,检查数据页P的正确性;
S23:若S22检查通过,则执行S24,否则执行S25;
S24:将数据页P计入集合A2;
S25:若集合A1的所有元素读取数据完毕,则执行S27,否则执行S26;
S26:若S22检查通过,则读数据偏移移动16扇区,否则移动1扇区,执行S21;
S27:将集合A2的物理和逻辑连续的数据页组合为数据页块,物理连续的条件为:数据页在数据源中的位置相差16扇区,逻辑连续的条件为:数据页ID相差1。
S3:通过集合A2构建有向无环图G,在有向无环图G中寻找多源最优路径(即,有向无环图G中权重之和最大且不相交的路径)并计入集合A3,通过集合A3的元素a3i对集合A2的元素进行重组。
图3示出了本发明中雕复/重组数据页块的具体流程图。如图3所示,步骤S3的具体步骤如下:
S31:以集合A2的元素为顶点,以元素之间无页ID重复为边,边的方向为起始页ID较小者指向起始页ID较大者,构建有向无环图G。由于数据页块存在逻辑线性关系,故有向无环图G为有向无环图,本发明采用邻接矩阵来存储有向无环图G。
S32:利用广度优先搜索算法(BFS算法)对有向无环图G进行拓扑排序,步骤S32的具体步骤如下:
S321:从有向无环图G中选择一个入度为0的顶点V加入队列Q1。
S322:从有向无环图G中删除顶点V及其所有的边。
S323:若有向无环图G中无入度为0的顶点,则执行S324,否则执行S321。
S324:利用队列Q1重构有向无环图G。
S33:根据集合A2的元素之间的物理间距、页ID间距、错误关联页数、页总数等因子,计算边的权重。权重越大,元素之间关联越强,寻找路径时的优先级越高。
S34:通过启发式搜索和贪婪算法在有向无环图G中寻找多源最大权重无相交路径并计入集合A3,步骤S34的具体步骤如下:
S341:在队列Q1中查找第一个未标记的节点N1;
S342:在队列Q1中标记N1,将N1加入队列Q2尾部;
S343:若队列Q2的尾部节点N2为有向无环图G边界,则将Q2加入集合A3,执行S346,否则执行S344;
S344:在队列Q1中查找满足条件的节点N3,条件为:N3未标记;N3与队列Q2的尾部节点N2在有向无环图G中存在边E;边E的权重在N2的所有未标记边中最大;
S345:若S344找到节点N3,在队列Q1中标记N3,在有向无环图G中标记边E,将N3加入队列Q2尾部,执行S343,否则将Q2加入集合A3,执行S346;
S346:若队列Q1中存在未标记节点,则执行S341,否则结束。
S35:遍历集合A3的元素a3i,将集合A2的元素按a3i记录的顺序进行重组,其中,下标i表示集合A2的元素的顺序。本实施例中,集合A2为{a21,a22,a23,a24,a25},集合A3为{a31={1,3,5},a32={2,4}}。
S4:遍历集合A2的元素a2i,将a2i中的数据页块按顺序写入恢复文件,完成雕复。
遍历集合A3,根据A3中每个元素a3i中记录的块编号,从A2中取出对应页块,写入恢复文件中,例如,本实施例中,
a31={1,3,5},根据a31中的页块编号1,3,5,按顺序从A2中取出a21,a23,a25,写入恢复文件F1,换言之,a21,a23,a25属于文件F1;
a32={2,4},根据a32中的页块编号2,4,按顺序从A2中取出a22,a24,写入恢复文件F2,换言之,a22,a24属于文件F2。
通过本发明提供的方法,解决了现有技术中尚无一种雕复SQL Server数据库文件的方法的技术问题。
应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (1)
1.一种雕复SQL Server数据库文件的方法,其特征在于包括以下步骤:
S1:提取所述SQL Server数据库中数据源的空闲簇/块并计入集合A1;
S2:检测所述集合A1的元素中所述SQL Server数据库的数据页块并计入集合A2,步骤S2的具体步骤如下:
S21:从所述集合A1的元素中读取数据页P;
S22:检查当前数据页P是否符合SQL Server数据库的数据页结构;
S23:判断步骤S22的检查是否通过,如果是,执行步骤S24,否则执行步骤S25;
S24:将当前数据页P计入所述集合A2;
S25:判断所述集合A1的所有元素是否读取完毕,如果是,则执行步骤S27,否则执行步骤S26;
S26:设置读数据的偏移量,执行步骤S21;
S27:将所述集合A2的元素组合为所述SQL Server数据库的数据页块;
S3:采用图论的方法对所述集合A2的元素进行重组,步骤S3的具体步骤如下:
S31:通过所述集合A2构建有向无环图G;
S32:采用广度优先搜索算法对有向无环图G进行拓扑排序;
S33:计算所述有向无环图G的边的权重;
S34:通过启发式搜索和贪婪算法在所述有向无环图G中寻找多源最优路径并计入集合A3,所述多源最优路径是指所述有向无环图G中权重之和最大且不相交的路径;
S35:通过所述集合A3的元素重组所述集合A2的元素;
S4:根据所述集合A2的元素恢复所述SQL Server数据库文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811592785.0A CN109739689B (zh) | 2018-12-25 | 2018-12-25 | 一种雕复SQL Server数据库文件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811592785.0A CN109739689B (zh) | 2018-12-25 | 2018-12-25 | 一种雕复SQL Server数据库文件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739689A CN109739689A (zh) | 2019-05-10 |
CN109739689B true CN109739689B (zh) | 2023-03-14 |
Family
ID=66359770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811592785.0A Active CN109739689B (zh) | 2018-12-25 | 2018-12-25 | 一种雕复SQL Server数据库文件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739689B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101055589A (zh) * | 2007-05-30 | 2007-10-17 | 北京航空航天大学 | 嵌入式数据库的存储管理方法 |
CN103324733A (zh) * | 2013-06-30 | 2013-09-25 | 四川效率源信息安全技术有限责任公司 | 一种基于数据库的文件可重构存储及管理方法 |
CN105190622A (zh) * | 2013-03-15 | 2015-12-23 | 亚马逊科技公司 | 用于分布式数据库系统的快速崩溃恢复 |
CN108351882A (zh) * | 2015-08-28 | 2018-07-31 | 斯沃尔德斯股份有限公司 | 用于网络内的分布式数据库的方法和装置 |
CN108563535A (zh) * | 2018-04-27 | 2018-09-21 | 四川巧夺天工信息安全智能设备有限公司 | 一种对MySQL数据库全库的恢复方法 |
US10599344B1 (en) * | 2004-05-13 | 2020-03-24 | Primos Storage Technology Llc | Transaction-based storage system and method that uses variable sized objects to store data |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101418467B1 (ko) * | 2008-08-15 | 2014-07-10 | 엘에스아이 코포레이션 | 니어 코드워드들의 ram 리스트-디코딩 |
-
2018
- 2018-12-25 CN CN201811592785.0A patent/CN109739689B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10599344B1 (en) * | 2004-05-13 | 2020-03-24 | Primos Storage Technology Llc | Transaction-based storage system and method that uses variable sized objects to store data |
CN101055589A (zh) * | 2007-05-30 | 2007-10-17 | 北京航空航天大学 | 嵌入式数据库的存储管理方法 |
CN105190622A (zh) * | 2013-03-15 | 2015-12-23 | 亚马逊科技公司 | 用于分布式数据库系统的快速崩溃恢复 |
CN103324733A (zh) * | 2013-06-30 | 2013-09-25 | 四川效率源信息安全技术有限责任公司 | 一种基于数据库的文件可重构存储及管理方法 |
CN108351882A (zh) * | 2015-08-28 | 2018-07-31 | 斯沃尔德斯股份有限公司 | 用于网络内的分布式数据库的方法和装置 |
CN108563535A (zh) * | 2018-04-27 | 2018-09-21 | 四川巧夺天工信息安全智能设备有限公司 | 一种对MySQL数据库全库的恢复方法 |
Non-Patent Citations (2)
Title |
---|
Database image content explorer: Carving data that does not officially exist;JamesWagner 等;《Digital Investigation》;20160807;第S97-S107页 * |
Oracle数据文件的文件雕复;武振东 等;《计算机工程》;20131015;第297-300页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109739689A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7689602B1 (en) | Method of creating hierarchical indices for a distributed object system | |
US8639669B1 (en) | Method and apparatus for determining optimal chunk sizes of a deduplicated storage system | |
US8151139B1 (en) | Preventing data loss from restore overwrites | |
US9063947B2 (en) | Detecting duplicative hierarchical sets of files | |
US20130018855A1 (en) | Data deduplication | |
CN107665219B (zh) | 一种日志管理方法及装置 | |
CN103279532A (zh) | 多集合元素去重并标识所属集合的过滤系统及其方法 | |
CN110888837A (zh) | 对象存储小文件归并方法及装置 | |
CN110019017B (zh) | 一种基于访问特征的高能物理文件存储方法 | |
CN107506466B (zh) | 一种小文件存储方法及系统 | |
US10599614B1 (en) | Intersection-based dynamic blocking | |
CN112287339B (zh) | Apt入侵检测方法、装置以及计算机设备 | |
US9734195B1 (en) | Automated data flow tracking | |
CN109739689B (zh) | 一种雕复SQL Server数据库文件的方法 | |
CN109697197B (zh) | 一种雕复Access数据库文件的方法 | |
CN115454717B (zh) | 数据库实时备份方法、装置、计算机设备和存储介质 | |
Haraty et al. | A matrix-based damage assessment and recovery algorithm | |
KR20210077975A (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
US9128823B1 (en) | Synthetic data generation for backups of block-based storage | |
CN113821476B (zh) | 数据处理方法及装置 | |
US11275666B1 (en) | Method and apparatus for identifying high importance devices of a consistency group | |
KR102432530B1 (ko) | 대상 디스크의 데이터 선별 수집을 통한 전자증거목록 리포팅 시스템 | |
CN112988696B (zh) | 文件整理方法、装置及相关设备 | |
US11645333B1 (en) | Garbage collection integrated with physical file verification | |
Khurana | An introduction to temporal graph data management |
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 |