zoukankan      html  css  js  c++  java
  • 案例: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:ORACLEORADATAXIFENFEISYSTEM01.DBF
             2          2 E:ORACLEORADATAXIFENFEISYSAUX01.DBF
             3          3 E:ORACLEORADATAXIFENFEIUNDOTBS01.DBF
             4          4 E:ORACLEORADATAXIFENFEIUSERS01.DBF
             5          5 E:ORACLEORADATAXIFENFEIUNDO01.DBF
             6          6 E:ORACLEORADATAXIFENFEICZUM01.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删除的数据表

    原文唯一网址:http://www.oracleplus.net/arch/oracle-20160522-217.html

    Oracle研究中心

    关键词:

    Oracle dul数据挖掘

    没有数据库备份非常规恢复truncate删除的数据表

  • 相关阅读:
    20165322 第九周 实现mypwd
    20165322 第七周 mybash 的实现
    2018-2019-1 20165322 实验三 实时系统
    2018-2019-1 20165318 20165322 20165326 实验二 固件程序设计
    2018-2019-1 20165322 《信息安全系统设计基础》第六周学习总结
    codeblocks汉化
    2019-2020-1 20175334 实验五 《通讯协议设计》实验报告
    2019-2020-1 20175334 20175322 20175315 实验四 外设驱动程序设计
    2019-2020-1 20175315 20175322 20175334 实验三 实时系统
    2019-2020-1 20175334 20175322 20175315 实验二 固件程序设计
  • 原文地址:https://www.cnblogs.com/piguanjia/p/5608273.html
Copyright © 2011-2022 走看看