首先恢复ORACLE的工具很多,当然有图形化的,也有命令行的。图形化的修复数据库有些图片空间不支持,压缩表不支持和丢失system01.dbf空间跟坏块的处理不好等。相对于命令行工具就是不错的选择。
下面演示一下命令行工具的使用、
首先打开 要学会编写命令行工具的CFG配置文件。
内容如下
C:\MYDUL>type db9g.cfg
0 0 f:\oradata\orcl\SYSTEM01.DBF
0 0 f:\oradata\orcl\TOOLS01.DBF
0 0 f:\oradata\orcl\USERS01.DBF
然后用命令行工具打开 这个CFG文件
执行命令 unload table user$;unload table tab$;unload table obj$;unload table col$;获取四个数据字典
数据字典的用途
数据字典有三个主要用途:
Oracle 利用数据字典来获取关于用户,方案对象,及存储结构(storage structure)的信息
命令行工具> open 1.cfg
* ts# fno rfn ver bsize blocks filename
- ---- ---- ---- --- ----- ---------- -----------------------------------
Y 0 1 1 02 8192 64000 f:\oradata\orcl\SYSTEM01.DBF
Y 8 8 8 02 8192 1280 f:\oradata\orcl\TOOLS01.DBF
Y 9 9 9 02 8192 262144 f:\oradata\orcl\USERS01.DBF
Y 10 10 10 02 8192 4880 f:\oradata\orcl\XDB01.DBF
命令行工具> unload table user$;
2011-04-11 11:56:13
2011-04-11 11:56:13
命令行工具> unload table tab$;
2011-04-11 11:56:20
2011-04-11 11:56:20
命令行工具> unload table col$;
2011-04-11 11:56:33
2011-04-11 11:56:33
命令行工具> unload table obj$;
2011-04-11 11:56:42
2011-04-11 11:56:42
命令行工具>
得到 以前文件 USR.TXT TAB.TXT COL.TXT OBJ.TXT
然后 查看 用户下的表 list table xxxxx
> list table his_trans
UNLOAD TABLE his_trans.AA01 TO AA01.txt;
UNLOAD TABLE his_trans.AA10 TO AA10.txt;
UNLOAD TABLE his_trans.AB01 TO AB01.txt;
UNLOAD TABLE his_trans.B_CS TO B_CS.txt;
UNLOAD TABLE his_trans.DEXEXPORT TO DEXEXPORT.txt;
UNLOAD TABLE his_trans.DOWN_TIME_LOG TO DOWN_TIME_LOG.txt;
UNLOAD TABLE his_trans.HIS_COMPARE TO HIS_COMPARE.txt;
UNLOAD TABLE his_trans.HOSNUMGRADE TO HOSNUMGRADE.txt;
UNLOAD TABLE his_trans.KA02 TO KA02.txt;
UNLOAD TABLE his_trans.KA03 TO KA03.txt;
UNLOAD TABLE his_trans.KA04 TO KA04.txt;
UNLOAD TABLE his_trans.KA05 TO KA05.txt;
UNLOAD TABLE his_trans.KA06 TO KA06.txt;
UNLOAD TABLE his_trans.KA11 TO KA11.txt;
UNLOAD TABLE his_trans.KA12 TO KA12.txt;
UNLOAD TABLE his_trans.KB01 TO KB01.txt;
UNLOAD TABLE his_trans.KB10 TO KB10.txt;
UNLOAD TABLE his_trans.KC04_T TO KC04_T.txt;
UNLOAD TABLE his_trans.KC08 TO KC08.txt;
UNLOAD TABLE his_trans.KC20 TO KC20.txt;
UNLOAD TABLE his_trans.KC21 TO KC21.txt;
UNLOAD TABLE his_trans.KC22 TO KC22.txt;
UNLOAD TABLE his_trans.KC23 TO KC23.txt;
UNLOAD TABLE his_trans.KC24 TO KC24.txt;
UNLOAD TABLE his_trans.KC25 TO KC25.txt;
UNLOAD TABLE his_trans.KC41 TO KC41.txt;
UNLOAD TABLE his_trans.PARAMETER TO PARAMETER.txt;
UNLOAD TABLE his_trans.PBCATCOL TO PBCATCOL.txt;
UNLOAD TABLE his_trans.PBCATEDT TO PBCATEDT.txt;
UNLOAD TABLE his_trans.PBCATFMT TO PBCATFMT.txt;
UNLOAD TABLE his_trans.PBCATTBL TO PBCATTBL.txt;
UNLOAD TABLE his_trans.PBCATVLD TO PBCATVLD.txt;
UNLOAD TABLE his_trans.PERSONACCOUNT TO PERSONACCOUNT.txt;
UNLOAD TABLE his_trans.TRADE_LOG TO TRADE_LOG.txt;
UNLOAD TABLE his_trans.TRANSERROR TO TRANSERROR.txt;
UNLOAD TABLE his_trans.TRANSLOG TO TRANSLOG.txt;
UNLOAD TABLE his_trans.TRANS_ERROR_LOG TO TRANS_ERROR_LOG.txt;
UNLOAD TABLE his_trans.T_PERSONACCOUNT TO T_PERSONACCOUNT.txt;
UNLOAD TABLE his_trans.KC21_1 TO KC21_1.txt;
UNLOAD TABLE his_trans.TEST TO TEST.txt;
>然后打出命令 list table his_trans 输出脚本
然后运行脚本 即可恢复出全部表的数据。SQLldr 载入相应的表控制文件 即可把数据导入oracle