AUL使用初记

案例:部门有一个数据库因为机器无故重启,无法启动,初步判断是系统表空间出问题了。尝试过各种不同手段,均无法修复。后来发现上面只有一个用户的数据,遂想到直接通过AUL工具从数据文件中抽取出整个库。

开始:

aul是收费的,不过单个文件在512M之内的是免费的。我看了一下我的文件,虽然表空间有2G多,但实际数据只有30M左右,所以完全在免费的范围之内。

首先把下载的aul包直接解压,新建一个文本文件,我们配置成recovery.cfg,命名无所谓,主要是里面的内容:

1          0 D:\oracle\oradata\bak\SYSTEM01.DBF

1          0 D:\oracle\oradata\bak\USSD.ORA

每行一个数据文件 FILE# RFILE# FILENAME.

FILE#, RFILE#不要求很准确,AUL能帮助我们搞定的;FILENAME一定要准确

SYSTEM01.DBF就是损坏的文件,里面存放着数据库的用户等信息

USSD.ORA就是我们要提取的用户数据信息

运行aul,先贴个设置参数的注释

//oracle 数据块的大小, 可以从参数文件及 show parameter block_size 查看

SET BLOCK_SIZE    {2048 | 4096 | 8192 | 16384 | 32768}

//oracle 数据文件所处平台字节设置, windows 下设置 LITTLE

SET BYTE_ORDER    {BIG | LITTLE}

//设置恢复的数据文件中列间隔付,采用默认即可

SET FIELD_TAG     field_tag

//设置恢复的数据文件中行结束符,采用默认即可

SET RECORD_TAG    record_tag

//恢复的数据文件是文本方式的还是DMP格式的

SET OUTPUT_STYLE  {TXT | DMP}

//设置字符集,需要和oracle数据库保持一致,中文下为852

SET CHARSET       charsetid

//设置字符集,需要和oracle数据库保持一致,中文下为852

SET NLSCHARSET    charsetid

//是否进行块检验,建议0 最大限度的恢复数据

SET BLOCK_CHECK   {0 | 1}

//CLOB的字节顺序10g以前需要和机器一致windows(LITTLE),10g以后BIG

SET CLOB_EDIAN    {BIG | LITTLE}

//LOB中的编码 如果存储中文则需要设置 1 GBK

SET LOB_CONVERT   {0:NONE | 1:GBK | 2:UTF8}

//LOB中数据存储位置采用默认0 即可

SET LOB_STORAGE   {0:INLINE | 1:FILE | 2:NONE}

首先设置几个参数:

AUL> set charset 852

Current CHARSET is : 0x0354

AUL> set nlscharset 852

Current NLSCHARSET is : 0x0354

AUL> set lob_convert 1

Current LOB_CONVERT is : 1-GBK

AUL> set lob_storage 1

Current LOB_STORAGE is : 1-FILE

前面两项852表示是GBK编码

特别是最后两项,lob_convert 1 表示clob或者blob里面的中文用gbk表示,这个要看数据库自身的编码来选择,不然lob字段会出现乱码

lob_storage 1 表示用文件来存储lob信息,否则它会写到后续步骤的txt文件里面去,本人这个案例中就没法把clob字段正常导入到库中去了

然后在命令窗口使用命令 open recovery.cfg

AUL> open recovery.cfg

*  ts#  fno  rfn ver bsize     blocks filename

– —- —- —- — —– ———- ———————————–

Y    0    1    1 02   8192      51200 D:\oracle\oradata\bak\SYSTEM01.DBF

Y   13   12   12 02   8192      65536 D:\oracle\oradata\bak\USSD.ORA

出现上述显示,特别是第一行的Y,表示能够正常读取,N就是有问题了

接下来就是生成所需要的恢复脚本了

AUL> UNLOAD TABLE USER$;

2013-10-09 16:29:57

2013-10-09 16:29:57

AUL> UNLOAD TABLE OBJ$;

2013-10-09 16:30:11

2013-10-09 16:30:11

AUL> UNLOAD TABLE TAB$;

2013-10-09 16:30:21

2013-10-09 16:30:21

AUL> UNLOAD TABLE COL$;

2013-10-09 16:30:33

2013-10-09 16:30:33

以上命令会生成基本的用户结构信息

接下来 ussd是数据库用户名

AUL> list table ussd

UNLOAD TABLE ussd.AA TO AA.txt;

UNLOAD TABLE ussd.BB TO BB.txt;

UNLOAD TABLE ussd.CC TO CC.txt;

UNLOAD TABLE ussd.DD TO DD.txt;

UNLOAD TABLE ussd.EE TO EE.txt;

新建一个文本,命名为recovery.txt 把上述显示出来的复制到里面去

然后在命令窗口执行:

AUL> @recovery.txt

等候执行完,看aul里面的文件,是不是多了很多呢。接下来我们就要离开aul了,使用sqlload导入到新建的数据库中去

其中 _sqlldr.ctl结尾的是sqlload的控制文件,_syntax.sql结尾的是建表语句,其他的就是数据文件了,注意出现很多文件夹的那些是clob或者blob的数据文件。

先把表创建好,然后打开cmd窗口,进入到aul目录下,然后敲入命令:

D:\aul>sqlldr ussd/ussd@test control=d:\aul\AA_sqlldr.ctl

这样数据就会导入了,比较不方便的是要一个表一个表建,要是很多表的话就很麻烦了

这样整个数据恢复过程就完成了,aul工具还是很好的,d.c.b.a 确实厉害。

oracle数据库恢复aul_AUL使用初记-Oracle相关推荐

  1. oracle数据库恢复aul_AUL/MyDUL 非常规灾难恢复ORACLE数据

    AUL(MyDUL)工具简介 从2005年开始,AUL (MyDUL)已经为全球不同国家及地区的众多客户恢复了数十TB计的Oracle数据,从损坏的Oracle 8, Oracle 8i, Oracl ...

  2. oracle数据库恢复参数文件位置,Oracle数据库的参数文件备份与恢复

    Oracle数据库的参数文件包含两个文件: 一个是spfile二进制文件名字为spfilesid.ora(其中sid=你数据库的实例名称). 另一个是pfile文本文件的参数文件,名字为initsid ...

  3. oracle数据库恢复aul_AUL恢复数据案例

    导入数据: 如下图一示: 上面我们已经利用AUL导出了数据,现在我们把用户sun删除,并且把对应数据文件删除,然后在重建用户和表空间.先前我有利用以前库把所有表名导出来. 先建表,用excel把所有表 ...

  4. oracle数据库硬恢复,ORACLE数据库恢复技术

    一.恢复的意义 当我们使用一个数据库时,总希望数据库的内容是可靠的.正确的,但由于计算机系统的故障(硬件故障.网络故障.进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据 ...

  5. 重装系统后ORACLE数据库恢复

    2019独角兽企业重金招聘Python工程师标准>>> ORACLE数据库恢复的方法我们经常会用到,下面就为您介绍重装系统后ORACLE数据库恢复的方法,希望对您学习ORACLE数据 ...

  6. oracle 强制恢复,oracle数据库恢复

    oracle数据库恢复 恢复背景 使用RMAN做了数据库的完全备份.参数文件.控制文件的备份,所有数据文件\ 在线重做日志文件.控制文件和spfile参数文件全部丢失 恢复步骤 1.关闭数据库 RMA ...

  7. oracle ko16mswin949,PRM DUL Oracle数据库恢复的最后一步

    PRM-DUL是一种Oracle数据抽取工具(data unloader for Oracle),其具备跳过Oracle数据库引擎,直接从块级别抽取数据行的能力. 基于此工具,无需数据库实例能够打开数 ...

  8. oracle数据库恢复aul_ORACLE恢复神器之ODU/AUL/DUL

    分享ORACLE数据库恢复神器之ODU.DUL和AUL工具. ODU:ORACLE DATABASE UNLOADER DUL:DATA UNLOADER AUL:也称MyDUL 关于三种工具说明: ...

  9. oracle数据库恢复aul_Oracle数据库恢复dmp

    B/S架构测试环境搭建_Oracle篇(Win32系统) 一.新建数据库: (1).Oracle数据库安装完成之后,在程序的目录下会出现对应的可选项.选择"开始"-->&qu ...

最新文章

  1. 使用Leangoo做销售管理体系
  2. 深度学习在目标视觉检测中的应用进展与展望
  3. 从源码分析DEARGUI之键盘鼠标事件监控
  4. WebApi与Mvc的区别
  5. 1.怎么判断 float a 是 0?
  6. python—多线程之线程之间共享数据(Queue)
  7. 管理活动目录域服务实训_管理学院学生党支部开展实践教育基地服务活动
  8. B站、豆瓣都崩了,还有啥技术能靠得住?
  9. using关键字的用法以及作用
  10. html使用iframe包含pdf文件,HTMLiframe用法总结收藏.pdf
  11. 怎么在图片上编辑文字?图片加字这样做
  12. 费马小定理的两个证明
  13. 什么是monitor
  14. cmd 一键清除系统垃圾
  15. 视频教程-【直通华为HCNA/HCNP系列R篇7】可靠性功能原理及配置与管理-华为认证
  16. 网络语言2019流行语C位解,最新骂人网络语言 2019网络骂人流行语大全
  17. 在Oracle中,如何定时清理INACTIVE状态的会话?
  18. 打破985校史!她以独作身份投中顶刊,曾因换方向重读博士7年,科研之路也“坎坎坷坷”……...
  19. CAD多标签工具Docbar
  20. linux系统 安装hp驱动怎么安装,Linux下安装HP打印机的驱动程序

热门文章

  1. MATLAB微分和导数
  2. 希捷硬盘升级固件方法
  3. 第一次拼命的跟别人挤,找明星签名!!!
  4. 苹果库乐队怎么玩_苹果安卓手机最简单换铃声方法,无需电脑,简单一步就能换成流行歌曲...
  5. 【UE4】unlua往c++传动态委托参数的方式
  6. 为了让自己变得更优秀,我喜欢上了这2位B站up主
  7. oracle10.2精简,请问版主和高手们,Oracle 10.2 完美精简版客户端下载-30M如何使用?...
  8. Python 两个字典如何实现相加?(相同的键,值相加)
  9. 基于opencv的人脸识别和检测
  10. Flex开发环境,开发工具,开发框架总结