zoukankan      html  css  js  c++  java
  • Oracle终极数据恢复,孰弱孰强(DUL vs AUL)

    这几天在帮朋友作数据恢复,由于已经到了无可救药的地步,只能使用终极手段进行恢复,直接从文件中读取数据进行恢复。

    在恢复过程中反复对比了DUL和dcba的AUL,感觉到了两者的不同。

    DUL在处理文件损坏的情况下,如文件部分缺失、数据块损坏的恢复明显要弱于AUL,AUL经过几次修正之后已经能够很好的处理这些情况。

    DUL无法跳过文件的损坏部分(也许是我不知道),在扫描文件时大量的错误信息让人崩溃;而AUL可以很容易的安静地处理这些损坏。

    在处理LOB对象时,我做过测试AUL在存在SYSTEM的情况下,能够非常完美的恢复图片对象:

    D:oradataEYGLEDATAFILE>aul4b.exe

    Register Code: 25FV-NFCH-B53H-RO9V-SZHV

    AUL : AnySQL UnLoader(MyDUL) for Oracle 8/8i/9i/10g, release 4.0.1

    (C) Copyright Lou Fangxin 2005-2006 (AnySQL.net), all rights reserved.

    AUL> open crl.txt

    * ts# fno rfn ver bsize blocks filename

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

    Y 4 4 4 a2 8192 640 O1_MF_USERS_2G8OJYYS_.DBF

    AUL> scan extents

    2007-02-02 10:52:09

    2007-02-02 10:52:09

    AUL> scan table to table.txt

    2007-02-02 10:52:29

    2007-02-02 10:52:29

    AUL> list table eygle;

    UNLOAD TABLE eygle.EYGLE TO EYGLE.txt;

    UNLOAD TABLE eygle.EYGLE_BLOB TO EYGLE_BLOB.txt;

    AUL> UNLOAD TABLE eygle.EYGLE_BLOB TO EYGLE_BLOB.txt;

    2007-02-02 10:58:16

    Unload OBJD=14367 FILE=4 BLOCK=19 CLUSTER=0 ...

    2007-02-02 10:58:16

    AUL>

    这个数据卸载或加载之后,与原数据完全相符:

     

    E: eclobtest>sqlldr eygle/eygle control=EYGLE_BLOB_sqlldr.ctl

    SQL*Loader: Release 10.2.0.1.0 - Production on 星期五 2月 2 11:43:32 2007

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

    SQL*Loader-292: 加载 XML, LOB 或 VARRAY 列时忽略 ROWS 参数

    加载完成 - 逻辑记录计数 2。

    E: eclobtest>sqlplus "/ as sysdba"

    SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 2月 2 11:43:41 2007

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

    连接到:

    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    With the Partitioning, OLAP and Data Mining options

    SQL> connect eygle/eygle

    已连接。

    SQL> desc eygle_blob;

    名称 是否为空? 类型

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

    FID NUMBER

    FNAME VARCHAR2(50)

    FDESC VARCHAR2(200)

    FPIC BLOB

    SQL> select fid,fname,length(fpic) from eygle_blob;

    FID FNAME LENGTH(FPIC)

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

    1 1.jpg 333769

    2 2.jpg 300332

    1 1.jpg 333769

    2 2.jpg 300332

    SQL>

    当然,DUL也有很强大的地方,比如转储文件格式等方面要优于AUL。

    不过AUL最大的好处在于可以很快地得到技术支持,DCBA最近正在编写完备AUL的手册用于指导用户恢复,而且DCBA修复Bug的速度也是超快的,在这次恢复中他就为我修复了一个Bug,感谢DCBA对我的大力支持。

    其实很多时候,到达用户现场后,你就只剩下一个想法,尽快帮用户最大程度的恢复数据,因为到了最后的阶段,数据已经影响到了很多人的生活,我们能做的就是尽最大可能以最快速度进行恢复。

    -The End-

    出处:http://blog.163.com/card_2005/blog/static/11781036820091065544571/

  • 相关阅读:
    php底层HashTable的实现
    【问底】徐汉彬:PHP7和HHVM的性能之争
    linux查找系统中占用磁盘空间最大的文件
    深入理解Yii2.0(yii学习的经典博客)
    梦想天空(关注前端开发技术 html5+css3)
    风雪之隅(Laruence PHP开发组成员, Zend兼职顾问, Yaf, Yar, Yac, Opcache等项目作者、维护者.)
    阿里云收集服务器性能指标的python脚本
    简单5步,释放Mac磁盘空间
    我是如何自学Android,资料分享(2015 版)
    查询tensorflow中的函数用法
  • 原文地址:https://www.cnblogs.com/mq0036/p/4171728.html
Copyright © 2011-2022 走看看