DUL恢复数据库过程

本文是本人使用DUL工具恢复Oracle数据库的一次过程...... [@more@]

单位数据库出现故障,只能mount,不能open,想尽一切办法也没能启动。我判断数据文件并没有损坏,出错的可能是系统文件,非归档模式没有任何备份!因此想起最后一招:Dul。在网上寻找很长时间才找到这个Oracle内部密不外传的工具,全部希望都寄托在她身上了。dul工具仅仅就是一个不到200k的可执行文件,我的数据库是8.1.7,Dul也需要是对应8版本的dul8.exe 。下面简要的记录一下恢复过程:

1. 首先建配置文件init.dul

osd_big_endian_flag=false
osd_dba_file_bits=10
osd_c_struct_alignment=32
osd_file_leader_size=1
osd_word_size = 32
dc_columns=2000000
dc_tables=10000
dc_objects=1000000
dc_users=400
dc_segments=100000
control_file = control.txt
db_block_size=8192
export_mode=true
compatible=8
file = dump

2. 建立控制文件Control.txt,方法如下:

> connect internal
> spool control.txt
> select ts#, rfile#, name from v$datafile ;
> spool off

删除RBS、TEMP所属的Datafile。
如果SYSTEM 所属的Datafile坏了,也将它删除。
如果档案超过2G,必须要分割,使其小于2G。
将control_orcl.dul內容要改成:

5 6 bigdatafile.dbf startblock 1 endblock=1000000
5 6 bigdatafile.dbf startblock=1000001 endblock=2000000
5 6 bigdatafile.dbf startlock=2000001 endblock=2550000

3. 生成数据字典dict.ddl

运行dul
>scan database; # build segment map and locate compatibility segment
restart dul # load the just generated files
bootstrap; # find location of bootstrap$ in comp segment and unload
restart dul # load the just generated files
bootstrap generate; # generate dict.ddl for first four tables
@dict.ddl # unload the first four tables
restart dul # load the just generated files
bootstrap generate; #generate dict.ddl for all tables
@dict.ddl # unload all dictionary tables
restart dul # now your ready to go

4. 读取数据

dul dict.ddl
>unload database

完成。
幸好有DUL这样的工具,感谢帮助过我的人们,最后提醒大家备份是最重要的!!!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/18966/viewspace-1004617/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/18966/viewspace-1004617/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值