aix6.1+oracle10.2.0.5+raw
查询表所在的数据文件:
select file_name,file_id from dba_data_files where file_id in (select distinct file_id from dba_extents where segment_name='TEST');
注意有偏移量问题,4096.
另外也可以通过rman copy datafile 'xxx' to 'xxx'来恢复提取数据。
$ ./odu
Oracle Data Unloader:Release 3.0.8
Copyright (c) 2008,2009 XiongJun. All rights reserved.
Web: http://www.laoxiong.net
Email: magic007cn@gmail.com
loading default config.......
byte_order big
block_size 8192
data_path data
lob_path lob
charset_name ZHS16GBK
ncharset_name AL16UTF16
output_format text
lob_storage infile
clob_byte_order little
trace_level 1
delimiter |
file_header_offset 4096
load control file 'config.txt' successful
loading default control file ......
ts# fn rfn bsize blocks bf offset filename
---- ---- ---- ----- -------- -- ------ --------------------------------------------
0 1 1 8192 131072 N 4096 /dev/rora_system
1 2 2 8192 153600 N 4096 /dev/rora_undo01
2 3 3 8192 131072 N 4096 /dev/rora_sysaux
4 4 4 8192 153600 N 4096 /dev/rora_undo02
5 5 5 8192 131072 N 4096 /dev/rora_users01
5 6 6 8192 131072 N 4096 /dev/rora_users02
load control file 'control.txt' successful
loading dictionary data......
ODU> unload dict
CLUSTER C_USER# file_no: 1 block_no: 89
TABLE OBJ$ file_no: 1 block_no: 121
CLUSTER C_OBJ# file_no: 1 block_no: 25
CLUSTER C_OBJ# file_no: 1 block_no: 25
found IND$'s obj# 19
found IND$'s dataobj#:2,ts#:0,file#:1,block#:25,tab#:3
found TABPART$'s obj# 266
found TABPART$'s dataobj#:266,ts#:0,file#:1,block#:2121,tab#:0
found INDPART$'s obj# 271
found INDPART$'s dataobj#:271,ts#:0,file#:1,block#:2161,tab#:0
found TABSUBPART$'s obj# 278
found TABSUBPART$'s dataobj#:278,ts#:0,file#:1,block#:2217,tab#:0
found INDSUBPART$'s obj# 283
found INDSUBPART$'s dataobj#:283,ts#:0,file#:1,block#:2257,tab#:0
found IND$'s obj# 19
found IND$'s dataobj#:2,ts#:0,file#:1,block#:25,tab#:3
found LOB$'s obj# 151
found LOB$'s dataobj#:2,ts#:0,file#:1,block#:25,tab#:6
found LOBFRAG$'s obj# 299
found LOBFRAG$'s dataobj#:299,ts#:0,file#:1,block#:2393,tab#:0
ODU> desc jyc.test
Object ID:52190
Storage(Obj#=52190 DataObj#=52382 TS#=5 File#=6 Block#=75 Cluster=0)
NO. SEG INT Column Name Null? Type
--- --- --- ------------------------------ --------- ------------------------------
1 1 1 USERNAME NOT NULL VARCHAR2(30)
2 2 2 USER_ID NOT NULL NUMBER
3 3 3 PASSWORD VARCHAR2(30)
4 4 4 ACCOUNT_STATUS NOT NULL VARCHAR2(32)
5 5 5 LOCK_DATE DATE
6 6 6 EXPIRY_DATE DATE
7 7 7 DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)
8 8 8 TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)
9 9 9 CREATED NOT NULL DATE
10 10 10 PROFILE NOT NULL VARCHAR2(30)
11 11 11 INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)
12 12 12 EXTERNAL_NAME VARCHAR2(4000)
ODU> unload table jyc.test object auto
Auto mode truncated table.
Unloading table: TEST,object ID: 52190
Unloading segment,storage(Obj#=52190 DataObj#=52193 TS#=5 File#=6 Block#=75 Cluster=0)
0 rows unloaded
ODU> scan extent tablespace 5
scan extent start: 2012-11-14 09:21:06
scanning extent...
scanning extent finished.
scan extent completed: 2012-11-14 09:23:52
ODU> unload table jyc.test object auto
Auto mode truncated table.
Unloading table: TEST,object ID: 52190
Unloading segment,storage(Obj#=52190 DataObj#=52193 TS#=5 File#=6 Block#=75 Cluster=0)
22 rows unloaded
ODU> exit
$ ls
col.odu control.txt db.txt ind.odu lobfrag.odu odu t.txt user.odu
config.txt data ext.odu lob.odu obj.odu segment.txt tab.odu
$ cd data
$ ls
JYC_TEST.ctl JYC_TEST.log JYC_TEST.sql JYC_TEST.txt
$ sqlldr jyc/jyc control=JYC_TEST.ctl
SQL*Loader: Release 10.2.0.5.0 - Production on Wed Nov 14 17:25:22 2012
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Commit point reached - logical record count 22
$ sqlplus /nolog
SQL*Plus: Release 10.2.0.5.0 - Production on Wed Nov 14 17:25:27 2012
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
SQL> conn /as sysdba
Connected.
SQL> select count(*) from jyc.test;
COUNT(*)
----------
22
SQL>