oracle 执行 delete user$ 误删所有用户信息后的数据恢复流程
起因:
在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$ 误删所有用户信息后的数据恢复流程的更多相关文章
- .NET 实现自定义ContextUser的Identity和Principal实现自定义用户信息,权限验证。
备用收藏,http://blog.csdn.net/msdnxgh/article/details/6894885 .NET 实现自定义ContextUser的Identity和Principal 在 ...
- SoringCloud(四) - 微信获取用户信息
1.项目介绍 2.微信公众平台 和 微信开放文档 2.1 微信公众平台 2.1.1 网址链接 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?ac ...
- Oracle安装前用户信息设置
如果是重复安装,首先需要清除已经存在的软件安装记录: rm -fr /usr/local/bin/*oraenv rm -fr /usr/local/bin/dbhome rm -fr /usr/tm ...
- 查询oracle中所有用户信息 禁用用户
----查询oracle中所有用户信息 ----1.查询数据库中的表空间名称 ----1)查询所有表空间 select tablespace_name from dba_tablespaces; se ...
- ORACLE查询当前连接的用户信息及操作的SQL语句
ORACLE--查询当前连接的用户信息及操作的SQL语句 select sid, status, v$session.username 用户名, last_call ...
- Oracle执行计划 explain plan
Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的. 对每个表都有一个rowid的伪列,但是表中并不物理存储ROWID列的值.不过你可以像使用其它列那样 ...
- 转:Oracle 执行计划(Explain Plan) 说明
Oracle 执行计划(Explain Plan) 说明 原贴地址:http://blog.csdn.net/tianlesoftware/article/details/5827245 如果要分 ...
- Oracle 执行报错表空间或临时表空间不足,降低水位线方法
Oracle 执行语句插入临时表报表空间不足,在增加表空间到最大后依然报错,经分析应该为创建的临时表水位线未清除导致,查询降低水位线方法如下: 原文地址:http://blog.itpub.net/2 ...
- 使用Oracle执行计划分析SQL性能
执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述.即就是对一个查询任务,做出一份怎样去完成任务的详细方案. 如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的 ...
随机推荐
- csv 文件用Excel打开乱码
最近在做一个上传的功能,记录下自己的感受. 刚开始我用的是excel上传:但是发现客户服务器有用64位的,使用的时候程序会报错: 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” ...
- JMS与MQ详解(有项目)
<一>m2mGW项目 1.ActiveMQ概述 企业消息软件从80年代起就存在,它不只是一种应用间消息传递风格,也是一种集成风格.因此,消息传递可以满足应用间的通知和互相操作.但是 ...
- [BZOJ 3191][JLOI 2013]卡牌游戏
觉得这题很有必要讲一下! 现在发现在做概率题,基本是向 dp 和 马尔可夫链 靠齐 但是这一题真是把我坑了,因为状态太多,马式链什么的直接死了 我一开始的想法就是用 f[i][j] 表示剩余 i 个人 ...
- 跟我学Windows Azure 四 Cloud Service中的WebRole与WorkRole,及他们之间的通信
Cloud Service 中WebRole就相当与我们的WebSite,而WorkRole相当与我们在服务器上写了个Windows Service,站在高可用的角度上来讲,Cloud Service ...
- kbengine0.4.20源代码分析(一)
基于kbengine 0.4.2 MMOPG服务端是一种高品质的工程项目,品读开源的kbe是一种乐趣.本文档我带童鞋们一起领略一下.囿于我知识面和经验方面所限,文中所述之处难免有错误存在,还请读童鞋们 ...
- cps变换
网上看了很多内容,很少有给出一个准确的概念,它的英文全称是continuous passing style, 直译为连续传递样式,那么cps transform就是将一些原本不是continuous ...
- EnumRemarkAttribute,获取属性值
首先自定义一个RemarkAttribute [html] view plain copy using System; using System.Collections.Generic; usin ...
- 浅入浅出EmguCv(三)EmguCv打开指定视频
打开视频的思路跟打开图片的思路是一样的,只不过视频是由一帧帧图片组成,因此,打开视频的处理程序有一个连续的获取图片并逐帧显示的处理过程.GUI同<浅入浅出EmguCv(二)EmguCv打开指定图 ...
- 3、SSH高级服务
1.ssh服务生成新的公钥和私钥[root@rhel6_80 ~]# ssh-keygen Generating public/private rsa key pair. Enter file in ...
- BackgroundWorker学习
后台代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data ...