Oracle数据恢复神器Dbseeker for Oracle Database
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1版
Dbseeker for Oracle Database使用说明书 (1)
目录 (2)
第1章 Dbseeker 的概要 (3)
1.1 Dbseeker 的功能概要 (3)
1.2 Dbseeker 的运行环境 (4)
1.3 Dbseeker 支持的Oracle Dabase 版本 (4)
1.4 Dbseeker 支持表类型 (5)
1.5 Dbseeker 支持字段类型 (5)
1.6 Dbseeker 支持语言字符集 (6)
1.6 其它 (7)
第2章 Dbseeker 的下载和启动 (8)
2.1 下载Dbseeker和解压 (8)
2.2 Windows 环境启动Dbseeker (8)
2.3 Linux/Unix环境启动Dbseeker (8)
第3章 Dbseeker实战场景 (9)
实战场景3.1 数据字典完整,数据库表记录被误DELETE (9)
实战场景3.2 数据字典损坏,数据库表记录被误DELETE (19)
实战场景3.3 数据字典完整,数据库表被误TRUNCATE (26)
实战场景3.4 数据字典不完整,数据库表被误TRUNCATE (28)
实战场景3.5 数据字典完整,数据库表被误DROP (28)
实战场景3.6 数据字典不完整,数据库表被误DROP (31)
实战场景3.7 数据字典完整,数据库出现坏块,表无法查询 (31)
实战场景3.8 数据字典完整损坏,数据库出现坏块,表无法查询 (31)
第4章配置Dbseeker (32)
第5章注册Dbseeker (32)
Dbseeker for Oracle Database(以下简称为Dbseeker)是一款用Java语言开发的Oracle数据库恢复软件。Dbseeker能够绕过Oracle读数据引擎,直接扫描数据文件的数据块, 分析数据块格式,读取数据库中的表记录。因此,在由于各种原因引起的数据库不能打开或者数据库中的表被DROP,TRUNCATE,DELETE后,而且没有备份的情况下,使用Dbseeker能够及时找回数据表记录。
当相关人员由于一些人为错误,不慎DROP,TRUNCATE,DELETE了表数据。首先要保持冷静,在大部分的情况下,数据还在数据文件里,Oracle database只是做了一些删除标记或者清除了表头的一些信息。为了保证数据不会被覆盖,立即Offline表所属的表空间,或关闭相关的应用程序。如果数据没有被覆盖,Dbseeker找回数据的成功率高达99.9%,但是如果数据被覆盖,又没有备份的情况下,神仙也爱莫能助。
数据库是数据的集合,数据库维护和管理用户的数据,用户数据表存在哪里,表的字段结构信息,表的索引信息,是数据库维护和管理用户数据的核心。这些信息就是通过数据库的数据字典表来维护的,它们存放在SYSTEM 表空间中,数据库的数据字典汇集了数据库运行所需要的基础信息。
数据字典表完整
当数据字典表完整时,推荐使用Dbseeker扫描数据字典表来恢复数据(实际上Dbseeker并不扫描全部的数据字典表,而是其中的一部分关键字典表的信息,例如OBJ$,TAB$,COL$,USER$等10多个表)。扫描数据字典完成后,数据字典表的信息不会常驻内存,会保存在Dbseeker自带的小巧Apache Derby数据库中。
数据字典表完整,Dbseeker扫描表记录时, 首先会先从数据字典表COL$得到表的字段信息,再根据TAB$的信息定位到表的SEGMENT HEADER数据块,通过分析SEGMENT HEADER数据块,找到所有存储表记录的Data Block数据块,然后遍历表记录Data Block数据块,分析Data Block数据块格式,获取表的全部记录信息。
数据字典表不完整
当数据字典表不完整时,推荐使用Dbseeker遍历扫描数据文件的所有数据块来恢复数据。在扫描数据文件的每个数据块时,分析结果保存到Apache Derby数据库。扫描完成后,提供两种模式得到表记录信息。
■Seek all segment header
该模式会检索出保存在Derby数据库中的所有数据块类型为SEGMENT HEADER的列表。
适用于SEGMENT HEADER数据块没有损坏,而且数据文件完整的情况。
(例如表的记录保存在3个数据文件里,3个数据文件都没有损坏。)
■Seek all data block
该模式会检索出保存在Derby数据库中的所有数据块类型为Data Block的列表。
适用于SEGMENT HEADER数据块已经损坏,或者数据文件缺少的情况。
(例如表的记录保存在3个数据文件里,2个数据文件正常,其中一个已经丢失。)
由于数据字典表不完整,无法从COL$得到表的字段信息,Dbseeker会取样表记录条数最多的一个Data Block数据块,智能解析字段类型。解析表字段类型后,遍历表所有的Data Block类型的数据块,获取表的全部记录信息。
Dbseeker找到数据表记录后,支持两种方法导入数据库。
■通过生成的SQL*loader文件
Dbseeker可以为表生成SQL*loader的控制文件和数据文件,以及建表SQL文件,通过ORACLE的数据加载工具SQL*loader加载到目标数据库。
■通过Dbseeker直接导入目标数据库
Dbseeker支持通过JDBC建立数据库连接,直接把表记录数据导入到目标数据库。
Dbseeker能正常运行在Java 1.42以上的环境。
推荐运行环境为Java 1.6以上(64-Bit),以获得最佳的运行性能。