|
我这里的小型机有control.dul和init.dul这两个控制文件的。但管这台机器的人出差了。我没有口令。希望几天后能贡献给大家。使用很简单的:(写的可能不准确)
>
>$ dul
>dul> scan database;
>data file 1 20480 blocks scanned
...
>
>dul>quit
>echo scan tables \; | dul > scan.out&
这要比较长的时间,取决于数据文件的大小。
这样scan以后产生一个结果文件,打开这个文件是类似于这样的东西:
>
>Object id 1601 table number 0
>
>UNLOAD TABLE T1601_0 ( C1 NUMBER, C2 UNKNOWN, C3 UNKNOWN, C4 NUMBER, C5 DATE
>
> , C6 NUMBER, C7 NUMBER, C8 NUMBER )
>
> STORAGE ( TABNO 0 EXTENTS( FILE 1 BLOCK 10530));
>
>
>
>Colno Seen MaxIntSz Null C75 C100 Num NiNu Dat Rid
>
> 1 14 3 0 0 0 100 100 0 0
>
> 2 14 6 0 100 100 100 14 0 21
>
> 3 14 9 0 100 100 100 14 0 0
>
> 4 14 3 7 0 0 100 100 0 0
>
> 5 14 7 0 0 0 0 0 100 0
>
> 6 14 3 0 0 0 100 100 0 0
>
> 7 14 2 71 0 0 100 100 0 0
>
> 8 14 2 0 0 0 100 100 0 0
>
>
>
>"7369" "SMITH" "CLERK" "7902" "17-DEC-1980 AD 00:00:00" "800" "" "20"
>
>
>
>"7499" "-0.000025253223" "SALESMAN" "7698" "20-FEB-1981 AD 00:00:00" "1600" "30+
>
>
根据对表结构和数据的熟悉程度,判断这是对应的哪个表,去把对应的表恢复出来。
进入DUL
>DUL> UNLOAD TABLE emp ( empno number, ename char, job char, mgr number,
>
>DUL 2> hiredate date, sal number, comm number deptno number)
>
>DUL 3> STORAGE ( TABNO 0 EXTENTS( FILE 1 BLOCK 10530));
>
>.. unloading table EMP 14 rows unloaded
>
>DUL>quit
>
这样就产生了emp的dmp或txt文件(生成dmp或是txt可以在控制文件里设置)。就可以用imp或sqlldr了。
做之前作好数据文件的备份。 |
|