dul无法加载bootstrap实现unload table/user恢复


Posted in Javascript onSeptember 29, 2016

联系:手机(+86 13429648788) QQ(107644445)QQ咨询惜分飞

标题:dul无法加载bootstrap实现unload table/user恢复

作者:惜分飞

最近有朋友误操作引起了非常大的事故,差点吃了官司.在做数据库迁移的时候,远程误操作删除了原库的system等几个数据库初始安装的文件,而且该磁盘空间使用率非常高,还有少量写入.

最后结果比较悲剧,通过文件系统层面无法直接恢复出来数据文件,而且该库无任何有效备份,又没有表名,列名等信息,无奈之下只能通过底层io block重组来恢复数据文件,可是悲剧又一次发生,这个磁盘上以前也有一份system等文件,最后经过多方重组恢复出来一份相对理想的数据文件.

但是第三方公司通过这样重组出来的数据文件和未被删除的业务文件恢复出来的数据大量有问题,依旧需要我们进一步分析恢复处理.

这篇文章主要描述了dul在无法加载bootstrap命令之后通过一些方法依旧可以正常使用unload table/user 等命令实现数据尽可能恢复.你要知道几百张表没有表名/列名要把他们区分出来那是什么样的工作量……

在dul中配置system文件

D:\xifenfei\system01.dbf
D:\TEMP\recover\dul\bak>dul
Data UnLoader: 11.2.0.0.4 - Internal Only - on Wed Sep 28 17:01:56 2016
with 64-bit io functions
Copyright (c) 1994 2016 Bernard van Duijnen All rights reserved.
Strictly Oracle Internal Use Only
DUL> show datafiles;
Sorry, no valid data files found in control.txt

使用默认的dul中数据文件配置方法,让dul自己发现数据文件方法不可行

随意表空间号和文件号dul识别

0 0 D:\xifenfei\system01.dbf
D:\TEMP\recover\dul\bak>dul
Data UnLoader: 11.2.0.0.4 - Internal Only - on Wed Sep 28 17:00:27 2016
with 64-bit io functions
Copyright (c) 1994 2016 Bernard van Duijnen All rights reserved.
Strictly Oracle Internal Use Only
DUL: Warning: File Type mismatch 1 != 8
DUL: Warning: D:\xifenfei\system01.dbf Header tablespace number 3
!= 0
DUL: Warning: D:\xifenfei\system01.dbf Header relative file number 1 != 0
Found db_id = 2948357999
Found db_name = XIFENFEI
DUL: Warning: Found mismatch while checking file D:\xifenfei\system01.dbf
DUL: Warning: DUL osd_parameter or control.dul configuration error
DUL: Warning: Given file number(0) in control file does not match file# in dba(1)

通过这个识别我们可以知道system的表空间号为3,文件号为1

再次配置system让dul识别

3 1 D:\xifenfei\system01.dbf
D:\TEMP\recover\dul\bak>dul
Data UnLoader: 11.2.0.0.4 - Internal Only - on Wed Sep 28 17:03:46 2016
with 64-bit io functions
Copyright (c) 1994 2016 Bernard van Duijnen All rights reserved.
Strictly Oracle Internal Use Only
DUL: Warning: File Type mismatch 1 != 8
Found db_id = 2948357999
Found db_name = XIFENFEI
DUL> show datafiles;
ts# rf# start blocks offs open err file name
3 1 0 320257 0 1 0 D:\xifenfei\system01.dbf

dul正常识别出来system文件但是根据经验我们知道tablespace 3肯定是有问题的,因此后续操作依旧问题非常多

尝试dul bootstrap恢复失败

DUL> bootstrap;
Scanning SYSTEM tablespace to locate compatibility segment ...
DUL: Warning: No files found for tablespace 0
Reading EXT.dat 0 entries loaded and sorted 0 entries
Reading SEG.dat 0 entries loaded
Reading COMPATSEG.dat 0 entries loaded
Reading SCANNEDLOBPAGE.dat 0 entries loaded and sorted 0 entries
DUL: Error: No compatibility segments found

由于表空间号错误,dul无法加载到bootstrap$表,另外根据bbed分析恢复出来的system文件中bootstrap$这部分丢失

尝试人工加载dul所需数据字典

DUL> unload table OBJ$ 
2 storage ( tablespace 3 segobjno 18 file 1 block 240);
. unloading table OBJ$ 79074 rows unloaded
DUL> unload table TAB$( OBJ# number, DATAOBJ# number,
2 cluster C_OBJ#(OBJ#)
3 storage ( tablespace 3 segobjno 2 tabno 1 file 1 block 144);
. unloading table TAB$ 4482 rows unloaded
DUL> unload table COL$ ( OBJ# number, COL# number , SEGCOL# number,
2 cluster C_OBJ#(OBJ#)
3 storage ( tablespace 3 segobjno 2 tabno 5 file 1 block 144);
. unloading table COL$ 114491 rows unloaded
DUL> unload table USER$
2 cluster C_USER#(USER#)
3 storage ( tablespace 3 segobjno 10 tabno 1 file 1 block 208);
. unloading table USER$ 96 rows unloaded
----其他表省略,根据需要的依次处理
尝试使用dul恢复数据
DUL> desc portal_emr.BASEELEMENT;
Table PORTAL_EMR.BASEELEMENT
obj#= 87200, dataobj#= 87200, ts#= 9, file#= 7, block#=458
tab#= 0, segcols= 8, clucols= 0
Column information:
icol# 01 segcol# 01 BENAME len 30 type 1 VARCHAR2 cs 852(ZHS16GBK)
icol# 02 segcol# 02 TYPENAME len 30 type 1 VARCHAR2 cs 852(ZHS16GBK)
icol# 03 segcol# 03 TYPETYPE len 22 type 2 NUMBER(0,0)
icol# 04 segcol# 04 BEXMLTEXT len 4000 type 1 VARCHAR2 cs 852(ZHS16GBK)
icol# 05 segcol# 05 DEPTGROUPCODE len 30 type 1 VARCHAR2 cs 852(ZHS16GBK)
icol# 06 segcol# 06 ISCOMMON len 22 type 2 NUMBER(0,0)
icol# 07 segcol# 07 BESPELL len 15 type 1 VARCHAR2 cs 852(ZHS16GBK)
icol# 08 segcol# 08 ELEMTYPE len 22 type 2 NUMBER(0)
DUL> show datafiles;
ts# rf# start blocks offs open err file name
3 1 0 320257 0 1 0 D:\xifenfei\system01.dbf
9 7 0 4170425 0 1 0 D:\BaiduYunDownload\PORTAL_EMR
DUL> unload table portal_emr.BASEELEMENT;
. unloading table BASEELEMENT 1913 rows unloaded

这里描述了在dul无法加载bootstrap命令之后,通过人工加载数据字典实现正常的unload table/user功能,丢弃了一般处理思路中的只能通过scan 然后unload没有表名,列名的处理方法,从而实现了恢复的最大化.

我们对原厂官方oracle dual工具有深入研究,如果在oracle dul恢复方面有搞不定的问题.

请联系我们,提供专业ORACLE数据库恢复技术支持

Phone:13429648788 Q Q:107644445 E-Mail:dba@xifenfei.com

以上所述是小编给大家介绍的dul无法加载bootstrap实现unload table/user恢复,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
代码精简的可以实现元素圆角的js函数
Jul 21 Javascript
javascript中的prototype属性实例分析说明
Aug 09 Javascript
理解Javascript_03_javascript全局观
Oct 11 Javascript
写给想学习Javascript的朋友一点学习经验小结
Nov 23 Javascript
30个最好的jQuery 灯箱插件分享
Apr 25 Javascript
jQuery+HTML5加入购物车代码分享
Oct 29 Javascript
JavaScript动态数量的文件上传控件
Nov 18 Javascript
js事件源window.event.srcElement兼容性写法(详解)
Nov 25 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
Dec 07 Javascript
使用axios实现上传图片进度条功能
Dec 21 Javascript
AngularJS日期格式化常见操作实例分析
May 17 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
Jun 14 Javascript
微信小程序  简单实例(阅读器)的实例开发
Sep 29 #Javascript
jQuery 特性操作详解及实例代码
Sep 29 #Javascript
JS中常用的正则表达式
Sep 29 #Javascript
JS 事件绑定、事件监听、事件委托详细介绍
Sep 28 #Javascript
js创建对象几种方式的优缺点对比
Sep 28 #Javascript
AngularJS表单验证中级篇(3)
Sep 28 #Javascript
微信公众号 客服接口的开发实例详解
Sep 28 #Javascript
You might like
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
2019/10/12 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
浅谈node.js中async异步编程
2015/10/22 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
2016/08/31 Javascript
JavaScript实现图片懒加载(Lazyload)
2016/11/28 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
python实现将excel文件转化成CSV格式
2018/03/22 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
python3爬虫之设计签名小程序
2018/06/19 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
python读取指定字节长度的文本方法
2019/08/27 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
大学生学习生活的自我评价
2013/11/01 职场文书
幼儿园亲子活动总结
2014/04/26 职场文书
爱与责任演讲稿
2014/05/20 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
预防煤气中毒方案
2014/06/16 职场文书
会计系毕业求职信
2014/08/07 职场文书
化工实习心得体会
2014/09/09 职场文书
金秋助学感谢信
2015/01/21 职场文书