编者按:Oracle数据库系统是目前世界上流行的关系数据库管理系统,当Oracle数据库发生损坏时,目前主要的解决办法是恢复丢失的数据库文件,进而恢复记录。但是,如果Oracle数据库文件是以碎片的形式存储,便无法解决。本期,数据恢复四川省重点试验室科研人员将介绍一种按照“数据库记录特征来完成数据恢复的方法”,能有效解决Oracle数据库丢失问题。
一、Oracle数据库介绍
Oracle Database,又名Oracle RDBMS,或简称Oracle,是甲骨文公司的一款关系数据库管理系统,它在数据库领域一直处于领先地位。Oracle数据库系统作为目前世界上流行的关系数据库管理系统,具有可移植性好、使用方便、功能强等优势,适用于各类大、中、小、微机环境,是一种高效、可靠、适应高吞吐量的数据库解决方案。
二、Oracle数据库丢失原因
Oracle数据库在使用过程中有时会发生故障,导致无法访问数据。其中数据库损坏常见的原因有以下几种:
1.事务日志问题:比如事务日志文件丢失;事务日志文件在操作过程中被误删;事务日志文件被损坏以及事务日志文件过大,导致硬盘的空间不足等。
2.意外损坏:意外掉电或异常强制关机,造成数据文件损坏;主要数据库正在被读写过程中异常关机,造成数据库的表被破坏或索引等被破坏;数据库的其他对象被意外破坏或丢失等。
3.误操作:误删除数据文件,或者误更改文件名字。
4.硬件问题:硬盘损坏造成数据和日志文件读写错误等。
在这些错误中,有一部分错误数据库可以自身采取容灾机制进行处理,保证数据可以正常访问。但是,针对数据库表破坏、数据库被删除、或者数据文件被删除,数据库自身无法修复,此时就需要一个专门的方法来解决这些问题。
针对以上问题,目前市面上解决的主要办法是恢复丢失的数据库文件,进而恢复记录。但是如果文件是以碎片的形式存储,那这些常规的恢复数据库方法就无从下手。针对这一难题,数据恢复四川省重点实验室科研人员通过按照“数据库记录特征方法”来完成数据恢复,可最大程度上保全关键数据的完整性。
三、Oracle数据库恢复方法
1、通过一个正常的数据库文件(备份的数据库或者设计数据库结构时的文档)分析得到数据表记录的组成结构,每个表中有什么字段,每个字段有多长,这些参数是在提取必不可少的,分析完成这些参数我们就得到了数据表的详细结构(如图1)。
图1:数据表记录的组成结构
备注:红色方框里“FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF”表示为数据库表的特征头;蓝色方框里的“08”表示为记录里内容的大小,紧跟着的棕色方框里的内容表示数据库的相关内容,内容大小不定,内容的大小是根据前面蓝色方框里的字节读取出来的;绿色方框里的字节也表示数据库里的内容,但大小一定。
2、分析出正常的数据库文件的结构之后,将数据库文件(可以是磁盘、镜像以及数据库源文件,如图2)装载至相关程序(效率源数据库碎片信息抽取大师)。
图2:装载数据库文件
3、通过此程序,配置出数据库表结构信息(如图3)。
图3:配置数据库表结构信息
4、通过配置出的数据库表结构信息,在底层检索出所需要的数据库表(如图4)。
图4:在底层检索数据库表(为保护隐私,隐去关键信息)
结语:数据恢复四川重点实验室科研人员介绍的“按照数据库记录特征来完成Oracle数据库数据恢复的方法”,可以提取删除Oracle数据库中的记录,可以提取碎片Oracle数据库中的关键记录,提取到的数据是按照原来Oracle数据库的表结构组织的。此项技术主要应用于硬盘数据恢复,能有效解决Oracle数据库数据丢失问题。
|