起因:

在oracle测试过程中,不小心执行了delete user$ 命令,导致oracle当前实例所有的用户信息丢失,包括sys用户。

第一次使用DUL工具数据恢复:失败

下载ParnassusData_PRMForOracle 工具,使用方法参考http://jingyan.baidu.com/article/624e7459ad30ed34e8ba5a2a.html,有交互界面,需要安装java环境,选择oralce系统目录下的system01.dbf等文件和业务dbf文件,加载分析,该工具就能把该实例下所有用户的表读取出来。如果用户信息不是误删的情况下,这种恢复方式是比较方便的,但我的情况是所有用户都没了,所有表信息也无法读取。

第二次使用AUL工具数据恢复:失败

下载aul工具,使用方法参考http://blog.csdn.net/daxiang12092205/article/details/17994665,没有交互界面,根据用户使用说明要求加载文件分析后,会生成aulusr.txt, aulobj.txt,aultab.txt, aulcol.txt;

aulusr.txt:存的内容是所有的用户名信息

aulobj.txt:存的内容是所有表名信息 其中第2列意思是指 该表对应的用户id,跟aulusr.txt中的用户id对应。

aulcol.txt:  存的内容是所有表的表结构信息。

由于所有用户已经删除, aulusr.txt中的信息是空的,但是aulobj.txt中的表信息都是全的,我通过已知的某个表名名称,在aulobj.txt中进行查找,找到了对应的用户ID,然后根据这个用户ID在aulusr.txt中构建一条记录用户信息记录,然后执行还原表数据命令,数据还原出来了,但我需要的表的表字段存在NVARCHAR和CLOB字段,NVARCHAR字段会乱码,而CLOB字段压根就还原不出来。

第三次使用ODU工具数据恢复:成功

下载ODU工具,使用方法参考http://files.cnblogs.com/files/hewenhaotc/ODUUserGuide_cn.pdf,也可以查看http://www.oracleodu.com/cn/上的技术支持,没有交互界面,根据用户使用说明要求加载文件分析后,也会生成lob.odu、obj.odu、tab.odu、user.odu;文件代表的信息跟AUL工具类似,根据用户说明进行还原数据后,乱码问题解决了,CLOB的字段也导出来,但问题来了,COLB字段包含回车,导出的数据进行命令导入到数据库是,无法正常导入,使用sqlldr命令导入时,会把回车当做一条记录的结束。

查了资料后,发现该工具底下的config.txt文件中的“lob_storage”是可以控制CLOB字段作为单独的文本输出,字段说明参考:http://blog.163.com/scott_guo/blog/static/181026083201211105107102/。修改了配置,还原数据,再导入到数据库,成功,无乱码问题,无丢失字段问题!

以上三种工具的方法比较参考文章ORACLE恢复神器之ODU/AUL/DUL:http://www.cnblogs.com/oracle-dba/p/3873870.html

oracle 执行 delete user$ 误删所有用户信息后的数据恢复流程的更多相关文章

  1. .NET 实现自定义ContextUser的Identity和Principal实现自定义用户信息,权限验证。

    备用收藏,http://blog.csdn.net/msdnxgh/article/details/6894885 .NET 实现自定义ContextUser的Identity和Principal 在 ...

  2. SoringCloud(四) - 微信获取用户信息

    1.项目介绍 2.微信公众平台 和 微信开放文档 2.1 微信公众平台 2.1.1 网址链接 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?ac ...

  3. Oracle安装前用户信息设置

    如果是重复安装,首先需要清除已经存在的软件安装记录: rm -fr /usr/local/bin/*oraenv rm -fr /usr/local/bin/dbhome rm -fr /usr/tm ...

  4. 查询oracle中所有用户信息 禁用用户

    ----查询oracle中所有用户信息 ----1.查询数据库中的表空间名称 ----1)查询所有表空间 select tablespace_name from dba_tablespaces; se ...

  5. ORACLE查询当前连接的用户信息及操作的SQL语句

    ORACLE--查询当前连接的用户信息及操作的SQL语句    select sid,      status,      v$session.username 用户名,      last_call ...

  6. Oracle执行计划 explain plan

    Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的. 对每个表都有一个rowid的伪列,但是表中并不物理存储ROWID列的值.不过你可以像使用其它列那样 ...

  7. 转:Oracle 执行计划(Explain Plan) 说明

    Oracle 执行计划(Explain Plan) 说明 原贴地址:http://blog.csdn.net/tianlesoftware/article/details/5827245   如果要分 ...

  8. Oracle 执行报错表空间或临时表空间不足,降低水位线方法

    Oracle 执行语句插入临时表报表空间不足,在增加表空间到最大后依然报错,经分析应该为创建的临时表水位线未清除导致,查询降低水位线方法如下: 原文地址:http://blog.itpub.net/2 ...

  9. 使用Oracle执行计划分析SQL性能

    执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述.即就是对一个查询任务,做出一份怎样去完成任务的详细方案. 如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的 ...

随机推荐

  1. iOS 自定义选项卡-CYLTabBarController

    正常的选项卡流程 cocoapods就不说了 创建一个CYLTabBarControllerConfig类 #import <Foundation/Foundation.h> #impor ...

  2. MFC双缓冲绘图(2015.09.24)

    问题引入: 最近在尝试编写贪吃蛇游戏时遇到这么一个问题:当系统以较快频率向窗口发送WM_PAINT消息时,调用OnPaint()函数在窗口中绘制图形就会发生闪烁现象. 问题分析: 当我们把绘图过程放在 ...

  3. Mysql 声明变量

    Mysql 声明变量 Mysql中声明变量有两种方式 第一种: set @num=1; 或set @num:=1; //这里要使用变量来保存数据,直接使用@num变量 第二种: select @num ...

  4. java疑问-继承问题

    存在两个类,B 继承 A,C 继承 B,我们能将 B 转换为 C 么?如 C = (C) B:

  5. LeetCode-Search a 2D Matrix

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  6. Win10下SQLServer2000的安装

    Win10的技术预览版已经发布近两个星期了,我也迫不及待地装上尝鲜,发现SQLServer2000在Win10上无法安装,在翻遍网上资料和经过无数次尝试后得到了一种安装方法,希望能够帮助遇到类似问题的 ...

  7. 【转】android 属性动画之 ObjectAnimator

    原文网址:http://blog.csdn.net/feiduclear_up/article/details/39255083 前面一篇博客讲解了 android 简单动画之 animtion,这里 ...

  8. 水池进水与放水问题:有一个水池,水池的容量是固定 的500L,一边为进水口,一边为出水口.........(多线程应用)

    package demo2; class Pooll {    /**1:有一个水池,水池的容量是固定 的500L,一边为进水口,一边为出水口.     * 要求,进水与放水不能同时进行.     水 ...

  9. TObject、Pointer、Interface的转换

    unit Unit4; ));   ));   ));   //将Obj转为接口   //LInf1 := ITest(Pointer(LObj1));       //无法转换了,丢失了接口信息   ...

  10. Unable to create Azure Mobile Service: Error 500

    I had to go into my existing azure sql database server and under the configuration tab select " ...