如何找回被删除的Oracle数据

2025-12-03 05:41:51

1、■新建表MYDELETEDTABLE,生成测试记录。

■为了能够校验Dbseeker找回的数据的正确性,复制MYDELETEDTABLE到MYDELETEDTABLE2。

■DELETE表MYDELETEDTABLE全部记录。

■使用Dbseeker找回数据,生成的SQL*loader文件,导入数据库后,和MYDELETEDTABLE2表校验正确性。

■使用Dbseeker找回数据,通过Dbseeker直接导入目标数据库后,和MYDELETEDTABLE2表校验正确性。

SQL> conn dbseeker/password

Connected.

SQL> CREATE TABLE MYDELETEDTABLE AS SELECT * FROM SH.CUSTOMERS;

Table created.

SQL> SELECT COUNT(*) FROM MYDELETEDTABLE;

  COUNT(*)

----------

     55500

SQL> CREATE TABLE MYDELETEDTABLE2 AS SELECT * FROM SH.CUSTOMERS;

Table created.

SQL> SELECT COUNT(*) FROM MYDELETEDTABLE2;

  COUNT(*)

----------

     55500

SQL> DELETE FROM MYDELETEDTABLE;

55500 rows deleted.

SQL> COMMIT;

SQL> SELECT COUNT(*) FROM MYDELETEDTABLE;

  COUNT(*)

----------

         0

SQL> ALTER SYSTEM CHECKPOINT;

System altered.

2、 启动Dbseeker恢复向导界面,点击[Next]按钮。

如何找回被删除的Oracle数据

3、如果数据文件为File System格式,选择[File System.],点击[Next]按钮。如果为ASM格式,选择[Automatic Storage Management(ASM).]。在这里我们选择[File System.]。

如何找回被删除的Oracle数据

4、选择[Yes,The Oracle data dictionary in the system tablespace is intact.],点击[Next]按钮。

如何找回被删除的Oracle数据

5、点击[Choose Files] 按钮。

如何找回被删除的Oracle数据

6、 选择数据文件。

如果是数据字典完整的恢复模式,必须选择系统表空间的数据文件和需恢复表所在的数据文件。如果不清楚恢复表具体存储在哪个数据文件,请全部选择所有的数据文件。

如何找回被删除的Oracle数据

7、填入数据文件的OFFSET信息(单位Byte),点击[Start]按钮。

Windows和LINUX环境下的数据文件不用考虑OFFSET,默认设置为0。

如何找回被删除的Oracle数据

8、Dbseeker初始化后,开始扫描关键字典表的信息。

如何找回被删除的Oracle数据

9、扫描关键字典表完成后,显示Dbseeker的主界面。

   Dbseeker主界面显示以下数据库信息。           

·         DBID

·         DBNAME

·         数据库字符集

·         数据库国家字符集

·         被选择的数据文件的路径,BLOCK SIZE 和OFFSET

如何找回被删除的Oracle数据

10、找到需要恢复的表,点击右键,点击[Desc Table]查看表的字段信息。

确认列表中是否存在Dbseeker不支持的字段类型(Unknown)。

如果有Unknown字样的字段类型,恢复数据时有可能会发生问题。

如何找回被删除的Oracle数据

如何找回被删除的Oracle数据

11、找到需要恢复的表,点击右键,点击[Seek Table]。

●  点击[Deleted Rows]标签,列出前200条被删除取样的记录信息。

如何找回被删除的Oracle数据

如何找回被删除的Oracle数据

12、 数据恢复方法1:使用SQL*loader 加载数据。

●  点击[Export to SQL*loader files]按钮,生成SQL*loader 文件。

●  导出数据记录成功后,弹出提示信息。

●  拷贝DBSEEKER.MYDELETEDTABLE目录到目标服务器端,通过ORACLE的数据加载工具SQL*loader加载到目标数据库原表MYDELETEDTABLE,并校验数据的正确性。

如何找回被删除的Oracle数据

如何找回被删除的Oracle数据

如何找回被删除的Oracle数据

13、● SQL*loader加载数据

[oracle@bogon DBSEEKER.MYDELETEDTABLE]$ sqlldr dbseeker/password control=DBSEEKER.MYDELETEDTABLE.trl

SQL*Loader: Release 11.2.0.1.0 - Production on Thu Oct 29 15:34:04 2015

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Commit point reached - logical record count 64

Commit point reached - logical record count 128

…….

Commit point reached - logical record count 55499

Commit point reached - logical record count 55500

●校验结果

SQL> SELECT * FROM DBSEEKER.MYDELETEDTABLE MINUS SELECT * FROM MYDELETEDTABLE2;

no rows selected

14、数据恢复方法2:通过Dbseeker直接导入目标数据库。

●  点击[Export to target database]按钮。

●  弹出导入界面窗口。

●  填写导入目标数据库连接信息,点击[Connect!]按钮,测试数据库连接信息。

●  如果能正常连接到导入目标数据库,出现连接成功信息提示。

●  点击[Connect!+Export] 按钮,直接把Dbseeker找到的被删除表记录信息通过JDBC插入目标数据库用户dbseeker下的表MYDELETEDTABLE。

●  点击[Connect!+Export]按钮后,出现进度条提示。

●  数据导入到目标数据库成功后,弹出提示信息。

●  校验数据是否一致(MINUS)。

SQL> SELECT * FROM DBSEEKER.MYDELETEDTABLE MINUS SELECT * FROM MYDELETEDTABLE2;

no rows selected

如何找回被删除的Oracle数据

如何找回被删除的Oracle数据

如何找回被删除的Oracle数据

如何找回被删除的Oracle数据

如何找回被删除的Oracle数据

如何找回被删除的Oracle数据

如何找回被删除的Oracle数据

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢