oracle dul误删数据,案例:Oracle dul数据挖掘 没有数据库备份非常规恢复truncate删除的数据表...

Oracle数据库在没有备份情况下在对表中的某数据表进行truncate删除后,通过oracle dul进行非常规恢复

1.准备oracle dul测试环境SQL> select count(*) from t_xifenfei;

COUNT(*)

----------

67854

SQL> desc t_xifenfei

Name                                      Null?    Type

----------------------------------------- -------- ----------------------------

OWNER                                              VARCHAR2(30)

OBJECT_NAME                                        VARCHAR2(128)

SUBOBJECT_NAME                                     VARCHAR2(30)

OBJECT_ID                                          NUMBER

DATA_OBJECT_ID                                     NUMBER

OBJECT_TYPE                                        VARCHAR2(19)

CREATED                                            DATE

LAST_DDL_TIME                                      DATE

TIMESTAMP                                          VARCHAR2(19)

STATUS                                             VARCHAR2(7)

TEMPORARY                                          VARCHAR2(1)

GENERATED                                          VARCHAR2(1)

SECONDARY                                          VARCHAR2(1)

NAMESPACE                                          NUMBER

EDITION_NAME                                       VARCHAR2(30)

SQL> select object_id,data_object_id from user_objects where object_name='T_XIFENFEI';

OBJECT_ID DATA_OBJECT_ID

---------- --------------

68332          68332

SQL> TRUNCATE TABLE T_XIFENFEI;

Table truncated.

SQL> ALTER SYSTEM CHECKPOINT;

System altered.

SQL> select object_id,data_object_id from user_objects where object_name='T_XIFE

NFEI';

OBJECT_ID DATA_OBJECT_ID

---------- --------------

68332          68468

SQL> SELECT TABLESPACE_NAME FROM DBA_SEGMENTS WHERE SEGMENT_NAME='T_XIFENFEI';

TABLESPACE_NAME

------------------------------

USERS

SQL> SELECT FILE_ID FROM DBA_DATA_FILES WHERE TABLESPACE_NAME='USERS';

FILE_ID

----------

4

SQL> SELECT file#,RFILE#,NAME FROM V$DATAFILE;

FILE#     RFILE# NAME

---------- ---------- --------------------------------------------------

1          1 E:\ORACLE\ORADATA\XIFENFEI\SYSTEM01.DBF

2          2 E:\ORACLE\ORADATA\XIFENFEI\SYSAUX01.DBF

3          3 E:\ORACLE\ORADATA\XIFENFEI\UNDOTBS01.DBF

4          4 E:\ORACLE\ORADATA\XIFENFEI\USERS01.DBF

5          5 E:\ORACLE\ORADATA\XIFENFEI\UNDO01.DBF

6          6 E:\ORACLE\ORADATA\XIFENFEI\CZUM01.DBF

6 rows selected.

备注说明:因为我们为了测试,所以直接查询出来了data_object_id,在实际的恢复中,我们需要使用logminer来找出来历史dataobj#

2.dul恢复truncate 表e:\dul10>dul.exe

Data UnLoader 10.2.4.37 - Oracle Internal Only - on Mon Feb 04 00:20:08 2013

with 64-bit io functions

Copyright (c) 1994 2010 Bernard van Duijnen All rights reserved.

Strictly Oracle Internal use Only

DUL: Warning: Recreating file "dul.log"

Reading USER.dat 65 entries loaded

Reading OBJ.dat 67944 entries loaded and sorted 67944 entries

Reading SCANNEDLOBPAGE.dat 8 entries loaded and sorted 8 entries

Reading TAB.dat 1869 entries loaded

Reading COL.dat 77409 entries loaded and sorted 77409 entries

Reading SEG.dat 23 entries loaded

Reading EXT.dat 54 entries loaded and sorted 54 entries

Reading TABPART.dat 110 entries loaded and sorted 110 entries

Reading TABCOMPART.dat 1 entries loaded and sorted 1 entries

Reading TABSUBPART.dat 32 entries loaded and sorted 32 entries

Reading INDPART.dat 127 entries loaded and sorted 127 entries

Reading INDCOMPART.dat 0 entries loaded and sorted 0 entries

Reading INDSUBPART.dat 0 entries loaded and sorted 0 entries

Reading IND.dat 3729 entries loaded

Reading LOB.dat

DUL: Warning: Increased the size of DC_LOBS from 1024 to 8192 entries

1109 entries loaded

Reading ICOL.dat 4868 entries loaded

Reading COLTYPE.dat 2823 entries loaded

Reading TYPE.dat 2082 entries loaded

Reading ATTRIBUTE.dat 8736 entries loaded

Reading COLLECTION.dat 591 entries loaded

Reading COMPATSEG.dat 0 entries loaded

Reading BOOTSTRAP.dat 60 entries loaded

Reading LOBFRAG.dat 1 entries loaded and sorted 1 entries

Reading LOBCOMPPART.dat 0 entries loaded and sorted 0 entries

Reading UNDO.dat 24 entries loaded

Reading TS.dat 7 entries loaded

Reading PROPS.dat 36 entries loaded

Database character set is ZHS16GBK

Database national character set is AL16UTF16

Found db_id = 1422012639

Found db_name = XIFENFEI

DUL> SCAN DATAFILE 4;

DUL: Warning: Recreating file "EXT.dat"

DUL: Warning: Recreating file "SEG.dat"

DUL: Warning: Recreating file "COMPATSEG.dat"

DUL: Warning: Recreating file "SCANNEDLOBPAGE.dat"

Scanning tablespace 4, data file 4 ...

23 segment header and 1601 data blocks

tablespace 4, data file 4: 2079 blocks scanned

Reading EXT.dat 54 entries loaded and sorted 54 entries

Reading SEG.dat 23 entries loaded

Reading COMPATSEG.dat 0 entries loaded

Reading SCANNEDLOBPAGE.dat 8 entries loaded and sorted 8 entries

DUL>  ALTER SESSION SET USE_SCANNED_EXTENT_MAP = TRUE;

Parameter altered

DUL> scan extents;

DUL: Warning: Recreating file "seen_tab.dat"

DUL: Warning: Recreating file "seen_col.dat"

Scanning extents without segment header

Scanning extent id (dba 0, obj 68332)

Analyzing segment: data object id 68332

heap organized table

Col    Seen  Max PCT  PRINT  NUMBERS DATES TIMESTAMP WITH TZ INTRVAL  ROWIDS LOB

no   count Size NUL 75%100% AnyNice AnyNice AnyNice AnyNice Y2M D2S AnyNice

1   67854   18   0 100 100   0   0   0   0   0   0   0   0   0   0  44   0   0

…………

14   67854    2   0   0   0 100 100   0   0   0   0   0   0   0   0   0   0   0

|SYS| |C_FILE#_BLOCK#| || |8| |8| |CLUSTER| |20-JAN-2013 AD 17:13:18| |20-JAN-20

…………

:18| |2013-01-20:17:13:18| |VALID| |N| |N| |N| |1|

UNLOAD TABLE OBJNO68332 ( COL001 VARCHAR2(18), COL002 VARCHAR2(30), COL003 VARCH

AR2(27)

, COL004 NUMBER, COL005 NUMBER, COL006 VARCHAR2(18), COL007 DATE

, COL008 DATE, COL009 VARCHAR2(19), COL010 VARCHAR2(7), COL011 VARCHAR2(

1)

, COL012 VARCHAR2(1), COL013 VARCHAR2(1), COL014 NUMBER )

STORAGE( DATAOBJNO 68332 );

--自己拼接语句

DUL> UNLOAD TABLE t_xifenfei_1(OWNER VARCHAR2(30),OBJECT_NAME  VARCHAR2(128),SUB

OBJECT_NAME    VARCHAR2(30),OBJECT_ID  NUMBER,DATA_OBJECT_ID    NUMBER,OBJECT_TY

PE  VARCHAR2(19),CREATED    DATE,LAST_DDL_TIME DATE,TIMESTAMP    VARCHAR2(19),ST

ATUS VARCHAR2(7),TEMPORARY    VARCHAR2(1),GENERATED    VARCHAR2(1),SECONDARY

VARCHAR2(1),NAMESPACE    NUMBER,EDITION_NAME VARCHAR2(30))  STORAGE( DATAOBJNO 6

8332 );

. unloading table              T_XIFENFEI_1

DUL: Warning: Recreating file "T_XIFENFEI_1.ctl"

67854 rows unloaded

补充说明:

1.在最新的dul 10.2.0.5.20中,不支持scan extents命令

2.在最新的dul 10.2.0.5.20中,挖出来的无数据字典数据,字符串转换为16进制值

--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之案例:Oracle dul数据挖掘 没有数据库备份非常规恢复truncate删除的数据表

关键词:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值