dul 10g版本的使用

blueocean926發表於2009-04-16
dul 10g版本的使用

在自己的測試環境下(linux平臺)測試下10g dul工具的使用
資料庫表空間使用的有ASM管理的磁碟組,也有一般的資料檔案

1)建立表空間
create tablespace TBSDATA3 datafile '+DSKGRP1' size 100M;
create table testdul (name varchar2(20)) tablespace TBSDATA3;

select name,path,total_mb,free_mb,failgroup from v$asm_disk
NAME PATH TOTAL_MB FREE_MB FAILGROUP
-------------------- ---------------------------------------- ---------- ---------- ------------------------------------------------------------
/dev/sdc 1024 0
/dev/sdd 1024 0
/dev/sdd3 196 0
/dev/sdd4 196 0
DSKGRP1_0000 /dev/sdc1 196 52 DSKGRP1_0000
DSKGRP1_0001 /dev/sdc2 196 27 DSKGRP1_0001
DSKGRP1_0002 /dev/sdc3 196 34 DSKGRP1_0002
DSKGRP1_0003 /dev/sdc4 196 57 DSKGRP1_0003
DSKGRP1_0004 /dev/sdd1 196 47 DSKGRP1_0004
DSKGRP1_0005 /dev/sdd2 196 58 DSKGRP1_0005

可以看到使用了具體下列盤
/dev/sdc1
/dev/sdc2
/dev/sdc3
/dev/sdc4
/dev/sdd1
/dev/sdd2

2)編寫init.dul檔案
OSD_BIG_ENDIAN_FLAG=FALSE
osd_dba_file_bits = 10
osd_c_struct_alignment = 32
osd_file_leader_size = 1
dc_columns=200000
dc_tables=100000
dc_objects=100000
dc_users = 40
dc_segments=100000
db_block_size=8192
control_file=/oracle/orainstall/dul10/control.dul
export_mode=true
compatible=10

3)編寫control.dul檔案
使用select ts#, rfile#, name from v$datafile查詢資料檔案及表空間資訊
注意在該檔案中新增ASM磁碟資訊

disk /dev/sdc1
disk /dev/sdc2
disk /dev/sdc3
disk /dev/sdc4
disk /dev/sdd1
disk /dev/sdd2
0 1 /oradata/orcl/system01.dbf
1 2 /oradata/orcl/undotbs01.dbf
2 3 /oradata/orcl/sysaux01.dbf
4 4 /oradata/orcl/undotbs02.dbf
5 5 /oradata/orcl/users01.dbf
6 6 /oradata/orcl/testdata01.dbf
7 7 /oradata/orcl/TEST02.DBF
7 5 /oradata/orcl/TEST01.DBF
8 1024 /oradata/orcl/BIGFILE01.DBF
13 10 +DSKGRP1/orcl/datafile/tbsdata1.256.664401755
14 11 +DSKGRP1/orcl/datafile/tbsdata2.257.664401765
15 7 /oradata/trans/TEST02.DBF
15 6 /oradata/trans/TEST01.DBF
16 14 /oradata/orcl/RMAN01.DBF
17 15 +DSKGRP1/orcl/datafile/tbsdata3.267.684263423
4)關閉資料庫及ASM例項
export ORACLE_SID=+ASM1
sqlplus "/ as sysdba"
SQL> shutdown abort
ASM instance shutdown
5)dul使用者及表,可以看到資料庫在沒有開啟及ASM例項沒有啟動的情況下,仍然能匯出資料
./dul
DUL>bootstrap;
DUL>DUL> unload user scott;
About to unload SCOTT's tables ...
. unloading table DEPT 4 rows unloaded
. unloading table EMP 14 rows unloaded
. unloading table BONUS 0 rows unloaded
. unloading table SALGRADE 5 rows unloaded
. unloading table READTAB 4 rows unloaded
. unloading table TT_03_SYNC_OBJS 3 rows unloaded
. unloading table TT_03_USER_COUNT 1 row unloaded
. unloading table TT_03_AGENT_STATUS 2 rows unloaded
. unloading table TT_03_49127_L 1 row unloaded
. unloading table TESTDUL 1000 rows unloaded
DUL> unload table testdul;
. unloading table TESTDUL 1000 rows unloaded
6)先刪除一個table
$ sqlplus scott/tiger
SQL> drop table testdul purge;
Table dropped.
DUL> unload table scott.testdul;
. unloading table TESTDUL 1000 rows unloaded
可以看到在dul工具在這個表的空間沒有被覆蓋的時候仍然能取到這個表



[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/48010/viewspace-1020666/,如需轉載,請註明出處,否則將追究法律責任。

相關文章