CN109657015A - 一种基于oracle行迁移和行连接的数据提取方法 - Google Patents
一种基于oracle行迁移和行连接的数据提取方法 Download PDFInfo
- Publication number
- CN109657015A CN109657015A CN201811588895.XA CN201811588895A CN109657015A CN 109657015 A CN109657015 A CN 109657015A CN 201811588895 A CN201811588895 A CN 201811588895A CN 109657015 A CN109657015 A CN 109657015A
- Authority
- CN
- China
- Prior art keywords
- row
- record
- current
- data
- piece
- 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
-
- 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
本发明公开了一种基于oracle行迁移和行连接的数据提取方法,其特征在于包括以下步骤:S100:查找并判断当前记录是否为oracle数据的记录,如果是,执行步骤S200,否则结束流程;S200:获取当前记录的行管理;S300:判断当前记录是否为行迁移和行连接,如果是,执行步骤S400,否则,表示当前记录是完整记录,步骤S100;S400:判断当前记录是否是头片数据记录,如果是,执行步骤S500,否则,表示当前记录为分片数据记录,执行步骤S600;S500:读取当前行管理的后续记录地址,执行步骤S600;S600:寻址并获取当前记录的当前数据段;S700:判断当前记录的当前数据段是否为结束片,如果是,结束流程,否则,执行步骤S800;S800:根据后续记录地址,寻址并获取后续记录,执行步骤S200。
Description
技术领域
本发明属于数据恢复领域,涉及一种基于oracle行迁移和行连接的数据提取方法。
背景技术
随着信息时代的来临,对数据的管理和应用都离不开数据库。数据库系统是计算机应用系统的重要组成部分之一。数据库技术已广泛应用于数据处理、信息检索、人工智能等诸多方面,数据库应用技术是从事计算机工作的人员必备的技术之一。
甲骨文公司是世界上最大的软件提供商之一。Oracle Database,又名OracleRDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。
在数据库的使用过程中,难免会遇到误操作、人为恶意破坏、软硬件故障等原因对数据库造成损坏,丢失重要数据。此时,对数据库进行恢复,找回数据就至关重要。现有技术中,尚无一种基于oracle行迁移和行连接的数据提取方法。
发明内容
本发明针对现有技术的不足问题,提出了一种基于oracle行迁移和行连接的数据提取方法,通过查找记录的行管理并判断是否为行迁移和行连接,获取本条记录及下一片数据的位置并进行数据提取,直到提取完整的记录,包括以下步骤:
S100:查找并判断当前记录是否为oracle数据的记录,如果是,执行步骤S200,否则结束流程;
S200:获取当前记录的行管理;
S300:读取当前行管理的首字节标记及列数,用以判断当前记录是否为行迁移和行连接,如果是,执行步骤S400,否则,表示当前记录是完整记录,步骤S100;
S400:根据当前首字节标记,判断当前记录是否是头片数据记录,如果是,执行步骤S500,否则,表示当前记录为分片数据记录,执行步骤S600;
S500:读取当前行管理的后续记录地址,执行步骤S600;
S600:寻址并获取当前记录的当前数据段;
S700:判断当前记录的当前数据段是否为结束片,如果是,结束流程,否则,执行步骤S800;
S800:根据所述步骤S500中所述后续记录地址,寻址并获取后续记录,执行步骤S200。
优选地,所述行管理的数据结构如下表1所示。
表1:行管理的数据结构
优选地,所述当前数据段的数据结构如下表2所示。
表2:当前数据段的数据结构
优选地,所述目标文件包括当前目标文件系统所支持的所有类型的文件。
优选地,所述行管理包含的1字节长度的所述首字节标记的8个比特位从左至右依次表示为KCHDFLPN,各个比特位功能如下。
K=簇密钥Cluster Key
C=簇表成员Cluster table member
H=列的头片Head piece of row
D=已删除列Deleted row
F=首数据片First data piece
L=末数据片Last data piece
P=接上一片的首列First column continues from previous piece
N=续下一片的末列Last column continues in next piece
优选地,所述步骤S300中,判断当前记录是否为行迁移和行连接的具体方法如下:
①如果所述首数据片First data piece比特位F为1,则表示当前记录为第一片记录;
②如果所述末数据片Last data piece比特位L为1,则表示当前记录为最后一片记录;
③如果所述接上一片的首列First column continues from previous piece S2比特位P为1,则表示当前记录的第一列为当前记录从某列中间分隔的下半部分,当前片数据的首列+上一片数据的末列为一个完整的列;
④如果所述续下一片的末列Last column continues in next piece比特位N为1,则表示当前片记录的末列为当前记录从某列中间分隔的上半部分,当前片数据的末列+上一片数据的首列为一个完整的列;
⑤列个数为0表示发生行迁移,如果不为0表示发生行连接;
如果上述任一比特位为1,表示所述步骤S300中,当前记录为行迁移和行连接,执行步骤S400;
如果上述①、②同时为0,表示当前记录为行迁移,执行步骤S400;
否则,表示当前记录是完整记录,执行步骤S100;
如果上述①、②同时为1,也表示当前记录是完整记录,执行步骤S100。
优选地,所述后续记录地址的字节长度为6字节,包括4字节长度的记录索引信息及2字节长度的片段索引信息,其中,
所述记录索引信息的4字节长度的32比特位中,高10比特位为文件ID,低22比特位为块ID;
所述片段索引信息表示下一分片在当前块中的位置。
本发明的有益效果是解决了现有技术中尚无一种基于oracle行迁移和行连接的数据提取方法的问题。
附图说明
图1为本发明的流程图。
具体实施方式
本发明所提供的方法中,首先找到oracle数据库的一条记录;然后读取该条记录的行格式中的首字节标记fb(first byte),根据首字节标记fb判断是否为数据记录头片、数据记录分片还是数据记录结束片;之后再根据行格式中的列数来判断是行迁移、行连接;如果是行迁移就按照行迁移的方法提取数据,如果是行连接就按照行连接的方法提取数据。下面结合附图和实施例对本发明作进一步阐述。
图1示出了本发明的流程图。
如图1所示,本发明的方法包括以下步骤:
S100:查找并判断当前记录是否为oracle数据的记录,如果是,执行步骤S200,否则结束流程;
S200:获取当前记录的行管理;
行管理的数据结构如下表1所示。
表1:行管理的数据结构
行管理包含的1字节长度的首字节标记的8个比特位从左至右依次表示为KCHDFLPN,各个比特位功能如下。
K=簇密钥Cluster Key
C=簇表成员Cluster table member
H=列的头片Head piece of row
D=已删除列Deleted row
F=首数据片First data piece
L=末数据片Last data piece
P=接上一片的首列First column continues from previous piece
N=续下一片的末列Last column continues in next piece
S300:读取当前行管理的首字节标记及列数,用以判断当前记录是否为行迁移和行连接,如果是,执行步骤S400,否则,表示当前记录是完整记录,执行步骤S100;
具体方法如下:
①如果所述首数据片First data piece比特位F为1,则表示当前记录为第一片记录;
②如果所述末数据片Last data piece比特位L为1,则表示当前记录为最后一片记录;
③如果所述接上一片的首列First column continues from previous piece S2比特位P为1,则表示当前记录的第一列为当前记录从某列中间分隔的下半部分,当前片数据的首列+上一片数据的末列为一个完整的列;
④如果所述续下一片的末列Last column continues in next piece比特位N为1,则表示当前片记录的末列为当前记录从某列中间分隔的上半部分,当前片数据的末列+上一片数据的首列为一个完整的列;
⑤列个数为0表示发生行迁移,如果不为0表示发生行连接;
如果上述任一比特位为1,表示所述步骤S300中,当前记录为行迁移和行连接,执行步骤S400;
如果上述①、②同时为0,表示当前记录为行迁移,执行步骤S400;
否则,表示当前记录是完整记录,执行步骤S100;
如果上述①、②同时为1,也表示当前记录是完整记录,执行步骤S100。
S400:根据当前首字节标记,判断当前记录是否是头片数据记录,如果是,执行步骤S500,否则,表示当前记录为分片数据记录,执行步骤S600;
S500:读取当前行管理的后续记录地址,执行步骤S600;
后续记录地址的字节长度为6字节,包括4字节长度的记录索引信息及2字节长度的片段索引信息,其中,
记录索引信息的4字节长度的32比特位中,高10比特位为文件ID,低22比特位为块ID;
片段索引信息表示下一分片在当前块中的位置。
S600:寻址并获取当前记录的当前数据段;
当前数据段的数据结构如下表2所示。
表2:当前数据段的数据结构
因为long类型的字段在块中的字节的长度不会超过64K,所以最多用3字节来表示长度就已经足够,再长就采用链接行,因此,当前列内容的长度超过250字节时就用3字节来表示当前列内容的长度。
列内容的长度由如下方法来确定:
①1字节:列内容的长度的内容小于0xFA,表示当前列内容的长度为1字节;
②3字节:列内容的长度的内容不小于0xFA,表示当前列内容的长度为3字节;
③1字节:列内容的长度的内容为0xFF,表示当前列内容为数字类型的null值且其长度为1字节;
S700:判断当前记录的当前数据段是否为结束片,如果是,结束流程,否则,执行步骤S800;
S800:根据步骤S500中后续记录地址,寻址并获取后续记录,执行步骤S200。
通过本发明提供的方法,解决了现有技术中尚无一种基于oracle行迁移和行连接的数据提取方法的技术问题。
应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (6)
1.一种基于oracle行迁移和行连接的数据提取方法,其特征在于包括以下步骤:
S100:查找并判断当前记录是否为oracle数据的记录,如果是,执行步骤S200,否则结束流程;
S200:获取当前记录的行管理;
S300:读取当前行管理的首字节标记及列数,用以判断当前记录是否为行迁移和行连接,如果是,执行步骤S400,否则,表示当前记录是完整记录,执行步骤S100;
S400:根据当前首字节标记,判断当前记录是否是头片数据记录,如果是,执行步骤S500,否则,表示当前记录为分片数据记录,执行步骤S600;
S500:读取当前行管理的后续记录地址,执行步骤S600;
S600:寻址并获取当前记录的当前数据段;
S700:判断当前记录的当前数据段是否为结束片,如果是,结束流程,否则,执行步骤S800;
S800:根据所述步骤S500中所述后续记录地址,寻址并获取后续记录,执行步骤S200。
2.根据权利要求1所述的一种基于oracle行迁移和行连接的数据提取方法,其特征在于,所述行管理的数据结构如下表1所示。
表1:行管理的数据结构
。
3.根据权利要求2所述的一种基于oracle行迁移和行连接的数据提取方法,其特征在于,所述当前数据段的数据结构如下表2所示。
表2:当前数据段的数据结构
。
4.根据权利要求4所述的一种基于oracle行迁移和行连接的数据提取方法,其特征在于,所述行管理包含的1字节长度的所述首字节标记的8个比特位从左至右依次表示为KCHDFLPN,各个比特位功能如下。
K=簇密钥Cluster Key
C=簇表成员Cluster table member
H=列的头片Head piece of row
D=已删除列Deleted row
F=首数据片First data piece
L=末数据片Last data piece
P=接上一片的首列First column continues from previous piece
N=续下一片的末列Last column continues in next piece。
5.根据权利要求4所述的一种基于oracle行迁移和行连接的数据提取方法,其特征在于,所述步骤S300中,判断当前记录是否为行迁移和行连接的具体方法如下:
①如果所述首数据片First data piece比特位F为1,则表示当前记录为第一片记录;
②如果所述末数据片Last data piece比特位L为1,则表示当前记录为最后一片记录;
③如果所述接上一片的首列First column continues from previous piece S2比特位P为1,则表示当前记录的第一列为当前记录从某列中间分隔的下半部分,当前片数据的首列+上一片数据的末列为一个完整的列;
④如果所述续下一片的末列Last column continues in next piece比特位N为1,则表示当前片记录的末列为当前记录从某列中间分隔的上半部分,当前片数据的末列+上一片数据的首列为一个完整的列;
⑤列个数为0表示发生行迁移,如果不为0表示发生行连接;
如果上述任一比特位为1,表示所述步骤S300中,当前记录为行迁移和行连接,执行步骤S400;
如果上述①、②同时为0,表示当前记录为行迁移,执行步骤S400;
否则,表示当前记录是完整记录,执行步骤S100;
如果上述①、②同时为1,也表示当前记录是完整记录,执行步骤S100。
6.根据权利要求5所述的一种基于oracle行迁移和行连接的数据提取方法,其特征在于,所述后续记录地址的字节长度为6字节,包括4字节长度的记录索引信息及2字节长度的片段索引信息,其中,
所述记录索引信息的4字节长度的32比特位中,高10比特位为文件ID,低22比特位为块ID;
所述片段索引信息表示下一分片在当前块中的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811588895.XA CN109657015B (zh) | 2018-12-25 | 2018-12-25 | 一种基于oracle行迁移和行连接的数据提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811588895.XA CN109657015B (zh) | 2018-12-25 | 2018-12-25 | 一种基于oracle行迁移和行连接的数据提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109657015A true CN109657015A (zh) | 2019-04-19 |
CN109657015B CN109657015B (zh) | 2023-05-02 |
Family
ID=66115095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811588895.XA Active CN109657015B (zh) | 2018-12-25 | 2018-12-25 | 一种基于oracle行迁移和行连接的数据提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109657015B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08255103A (ja) * | 1995-03-17 | 1996-10-01 | Fujitsu Ltd | ファイル管理方法及びファイル管理装置 |
JP2004185270A (ja) * | 2002-12-03 | 2004-07-02 | Fujitsu Ltd | アンロードプログラム,ロードプログラム及びデータ移行方法 |
JP2004259075A (ja) * | 2003-02-27 | 2004-09-16 | Fujitsu Ltd | リレーショナルデータベースにおける階層型データのマッピングプログラム、装置、および方法 |
CN101533675A (zh) * | 2008-03-11 | 2009-09-16 | 深圳市朗科科技股份有限公司 | 闪存介质扫描和管理方法 |
WO2010031260A1 (zh) * | 2008-09-22 | 2010-03-25 | 华为技术有限公司 | 一种处理数据的方法、系统和节点设备 |
CN102571949A (zh) * | 2011-12-31 | 2012-07-11 | 河海大学 | 一种基于网络的数据自毁方法 |
US20130275367A1 (en) * | 2012-04-12 | 2013-10-17 | Computer Associates Think, Inc. | System and Method for Automated Online Reorganization of Sequential Access Databases |
CN105324770A (zh) * | 2013-04-30 | 2016-02-10 | 亚马逊科技公司 | 有效读出副本 |
US9684687B1 (en) * | 2014-03-10 | 2017-06-20 | Ca, Inc. | Multi-phase data expiration path for a database |
JP2017134700A (ja) * | 2016-01-29 | 2017-08-03 | 日本電気株式会社 | 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム |
CN113076221A (zh) * | 2021-03-30 | 2021-07-06 | 四川效率源信息安全技术股份有限公司 | 一种针对MongoDB-MMAPv1引擎的数据恢复方法 |
US20220043690A1 (en) * | 2020-08-05 | 2022-02-10 | Ocient Holdings LLC | Parallelized segment generation via key-based subdivision in database systems |
-
2018
- 2018-12-25 CN CN201811588895.XA patent/CN109657015B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08255103A (ja) * | 1995-03-17 | 1996-10-01 | Fujitsu Ltd | ファイル管理方法及びファイル管理装置 |
JP2004185270A (ja) * | 2002-12-03 | 2004-07-02 | Fujitsu Ltd | アンロードプログラム,ロードプログラム及びデータ移行方法 |
JP2004259075A (ja) * | 2003-02-27 | 2004-09-16 | Fujitsu Ltd | リレーショナルデータベースにおける階層型データのマッピングプログラム、装置、および方法 |
CN101533675A (zh) * | 2008-03-11 | 2009-09-16 | 深圳市朗科科技股份有限公司 | 闪存介质扫描和管理方法 |
WO2010031260A1 (zh) * | 2008-09-22 | 2010-03-25 | 华为技术有限公司 | 一种处理数据的方法、系统和节点设备 |
CN102571949A (zh) * | 2011-12-31 | 2012-07-11 | 河海大学 | 一种基于网络的数据自毁方法 |
US20130275367A1 (en) * | 2012-04-12 | 2013-10-17 | Computer Associates Think, Inc. | System and Method for Automated Online Reorganization of Sequential Access Databases |
CN105324770A (zh) * | 2013-04-30 | 2016-02-10 | 亚马逊科技公司 | 有效读出副本 |
US9684687B1 (en) * | 2014-03-10 | 2017-06-20 | Ca, Inc. | Multi-phase data expiration path for a database |
JP2017134700A (ja) * | 2016-01-29 | 2017-08-03 | 日本電気株式会社 | 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム |
US20220043690A1 (en) * | 2020-08-05 | 2022-02-10 | Ocient Holdings LLC | Parallelized segment generation via key-based subdivision in database systems |
CN113076221A (zh) * | 2021-03-30 | 2021-07-06 | 四川效率源信息安全技术股份有限公司 | 一种针对MongoDB-MMAPv1引擎的数据恢复方法 |
Non-Patent Citations (2)
Title |
---|
覃灵军: "基于对象的主动存储关键技术研究", 《信息科技》 * |
雷红妮: "Oracle数据库的空间使用分析及其管理", 《工业控制计算机》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109657015B (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105138635B (zh) | 一种利用哈希值比对进行数据增量复制的方法 | |
US20100082545A1 (en) | Compression of sorted value indexes using common prefixes | |
CN106126543B (zh) | 一种关系型数据库到MongoDB的模型转换和数据迁移方法 | |
CN102110123B (zh) | 倒排索引建立方法 | |
CN107291858B (zh) | 一种基于字符串后缀的数据索引方法 | |
NZ505767A (en) | Database management system with layered index arranged in blocks | |
CN108108374B (zh) | 一种数据仓库的存储方法及装置 | |
CN109388523A (zh) | 一种基于二进制日志文件恢复MySQL数据库的方法 | |
CN113051347B (zh) | 异构数据库之间数据同步方法、系统、设备及存储介质 | |
CN111832287A (zh) | 一种实体关系联合抽取方法及装置 | |
KR20140053888A (ko) | 판식 파일중 구조화 정보 획득방법 및 장치 | |
CN104679829A (zh) | 对车牌号进行快速搜索的方法及装置 | |
CN110297781B (zh) | 一种基于写时复制来恢复apfs中被删除数据的方法 | |
CN107169003B (zh) | 一种数据关联方法及装置 | |
CN107391769A (zh) | 一种索引查询方法及装置 | |
CN103929499A (zh) | 一种物联网异构标识识别方法和系统 | |
KR20100037325A (ko) | 패턴 기반 참고문헌 자동 구축 시스템 및 방법과 이를 위한기록매체 | |
CN109657015A (zh) | 一种基于oracle行迁移和行连接的数据提取方法 | |
CN111160075A (zh) | 一种大规模人脸识别系统及方法 | |
US9600599B2 (en) | Prefix burrows-wheeler transformation with fast operations on compressed data | |
TWI396990B (zh) | 引用文獻記錄擷取系統、方法及程式產品 | |
US8843818B2 (en) | Field correlation method and system, and program thereof | |
CN105389378A (zh) | 一种分离式数据整合系统 | |
CN113407538B (zh) | 一种多源异构关系型数据库数据的增量采集方法 | |
CN112307233B (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 |