一种基于Oracle数据库的数据恢复方法

文档序号:9349823阅读:630来源:国知局
一种基于Oracle数据库的数据恢复方法
【技术领域】
[0001]本发明涉及信息安全技术领域,特别涉及一种基于Oracle数据库的数据恢复方法。
【背景技术】
[0002]Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案;一个数据库含有各种成分,包括表、视图、存储过程、记录、字段、索引等。
[0003]但是数据库有时也会发生故障,导致无法访问数据,其中数据库损坏常见的原因有以下几种:事务日志问题。比如事务日志文件丢失;事务日志文件在操作过程中被误删;事务日志文件被损坏以及事务日志文件过大,导致硬盘的空间不足等;意外掉电或异常强制关机,造成数据文件损坏,主要数据库正在被读写过程中异常关机;数据库的表被破坏或索引等被破坏,或者数据库的其他对象被破坏或丢失等;删除了数据文件,或者更改了它的名字;硬盘损坏,造成数据和日志文件读写错误等;这些错误中部分数据库自己是可以采取容灾机制处理,保证数据可以正常访问,但是针对数据库表破坏,数据库被删除,或者数据文件被删除,此时数据库本身无法修复,就需要一个专门的方法来解决这些问题,解决办法大多是恢复丢失的数据库文件,进而恢复记录,但是如果文件是以碎片的形式存储,市面上有一些恢复数据库的方法就无从下手了 ;在此时就需要用到按照记录特征的方法来完成数据恢复,最大程度的保全关键数据的完整性。
[0004]本发明涉及到的部分专业术语:
[0005]Oracle数据库-Oracle数据库由于表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。总之,逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。在Oracle数据库中,用户数据总是储存在自己创建的后缀名为DBF的表空间中。Oracle数据库在丢失或者异常时,可以咨询数据库管理员是否有备份的一样结构数据库,有则直接查看这个数据库中需要恢复的数据表,没有则按照数Oracle据库的设计文档来确定数据库中的表参数,如果都没有就只能在底层按照关键字段进行人工分析出数据表,具体操作就是按照已知的字段在Oracle数据库中按照GB2312编码在存储介质中检索找到字段,再结合数据库管理员提供的参数确定出关键表。
[0006]数据表:数据表(Table)简称表,由一组数据记录组成,数据库中的数据是以表为单位进行组织的。一个表是一组相关的按行排列的数据;每个表中都含有相同类型的信息。表实际上是一个二维表格,例如,一个班所有学生的考试成绩,可以存放在一个表中,表中的每一行对应一个学生,这一行包括学生的学号,姓名及各门课程成绩。
[0007]记录:表中的每一行称为一个记录,它由若干个字段组成。
[0008]字段:也称域。表中的每一列称为一个字段。每个字段都有相应的描述信息,如数据类型、数据宽度等。

【发明内容】

[0009]本发明针对现有技术的缺陷,提供了一种基于Oracle数据库的数据恢复方法,能有效的解决上述现有技术存在的问题。
[0010]为了实现以上发明目的,本发明采取的技术方案如下:
[0011]一种基于Oracle数据库的数据恢复方法,包括以下步骤:
[0012]S1:找Oracle数据库备份或者数据库设计文档,确定数据库中的数据表;
[0013]S2:根据SI中的数据库备份或者数据库设计文档选择并找到需要恢复数据的数据表,并得到表的所有信息;
[0014]S3:根据S2的数据表可以得到数据表中的每个记录的逻辑结构关系;
[0015]S4:根据数据库的类型说明与数据库的设计文档可以得到字段的具体信息;字段信息包括:数据类型、数据长度、数据排逻辑顺序;
[0016]S5:由SI,S2,S3,S4的参数分析得到数据库存储的逻辑关系,得到数据恢复逻辑结构特征;
[0017]S6:得到数据表的逻辑结构特征,我们可以按照关键记录的排列顺序、字段的数据类型、字段数据宽度信息,将这些信息按照数据提取逻辑特征算法在介质中提取关键的记录数据,将这些数据组成数据表形式,并提取。
[0018]作为优选,所述S5的详细流程如下:
[0019]S501:检索所有记录的头特征,找到所有记录的头;具体的在Oracle数据库一般是使用“0X2C01”两个字节作为数据特征头;
[0020]S502:根据数据表中的记录确定字段的组成结构,可以按照记录的排列顺序、字段的数据类型、数据宽度信息得到的字段结构,按照上述结构分隔所有记录头后面的字段。
[0021]作为优选,所述S502具体为:找到第一个记录头特征“0x20)1”,该特征后一字节为此记录的列数,在向后一字节为第一个字段的大小,向后为该字段内容,内容后的第一个字节为下一个字段大小,如此循环直至下一个记录的头部特征“0x2C01”,在进行下一个记录的结构分析,直至完成所有表中的记录。
[0022]与现有技术相比本发明的优点在于:通过Oracle数据库结构,解析数据表中的记录和字段,找到每条记录的头部和字段的结构划分数据后提取,恢复数据效率高,对数据损坏,数据不连续的碎片级数据库也可以正常提取和恢复,数据恢复成功率高,有效降低因数据库损坏带来的损失。
【附图说明】
[0023]图1为本发明实施例中记录的结构示意图;
[0024]图2为本发明实施例中记
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1