Email: [email protected] 7 x 24 online support!
오라클 최후의 복원 툴 DUL
- 
- .DUL(Database Un-Loader)의 특징!
 1) 최후의 recovery utility이다. 2) 공식 지원 utility가 아니다. - datafile이 있어야 만 한다.
 Ex)tablespace drop후 backup이 없는 상태에서 아직 unix rm 명령어를 적용하여 removed되지 않은 상태에 유용함. - sql*loader의 *.ctl,*.dat형태의 file을 제공한다.
- 일부 column에 제한이 있다.(long raw datatype)
 - .TEST SCENARIO
 - 먼저 dul directory를 만든다.
 $ cd $ORACLE_HOME $ mkdir dul $ cd dul $ mkdir bin $ cd bin $ mkdir common 이곳에 가면 v2,v3 두개의 directory가 나오는데 dul version별로 utility가 있으며 각 directory에는 os별로 압축file들이 있다. V2로 가면 common과 각 os별 압축file이 존재하는데 common에는 dictv7.ddl(dul definition language)이 있다.이것을 download받아 $ORACLE_HOME/dul/bin/common에 저장한다. 각 os별 dul file을 download 받아 다음과 같이 압축을 푼다. $ tar xvf dul4hp.tar.bin으로 uncompress시킨다.(hp-ux의 경우) 이 file을 $ORACLE_HOME/bin/common에 놓는다.) - dul을 만든다.
 이 file은 db 가 기동시 처음 startup시 읽는 parameter file과 비슷한 역할을 하는 file로써 $ORACLE_HOME/dul/bin/common에 만들어 vi로 편집하며 각parameter의 지정value는 다음의 위치에 자세히 설명되어 있다.(또는 Oracle Technical Notes를 참조함.) 기존에 사용 했던 init.dul file을 copy해서 사용 하는 게 안젂하다. (Test machine ukhp55.uk.oracle.com을 usupport/Dontw8로 접속하여 $ORACLE_HOME/dul/bin/common/init.dul을 참조한다.) - test data생성.
 test machine에 접속하여 tablespace를 create하고 test table을 create한후 test row를 insert한후 export를 받는다. $ cd $ORACLE_HOME/dul/bin/common $ exp userid/password file=expdat.dmp tables=(user.test) $ imp userid/password file=expdat.dmp indexfile=test.sql …. (Export file로 부터 table script를 만든다.) - datafile offline drop and dul생성.
 sqldba)alter database datafile ‘/oracle/dbs/test.dbf’ offline drop; sqldba)spool control.dul sqldba)select * from v$dbfile; sqldba)spool off; sqldba)drop tablespace test including contents; sqldba)exit - dul editting
 vi로 control.dul을 열어 datafile name만 남기고 나머지는 삭제함. - /oracle1/V723/dbs/systV723.dbf
- /oracle1/V723/dbs/rbsV723.dbf
- /oracle1/V723/dbs/tempV723.dbf
- /oracle1/V723/dbs/toolV723.dbf
- /oracle1/V723/dbs/usrV723.dbf
- /oracle1/V723/dbs/ebu_testV723.dbf
- /oracle1/V723/dbs/pms770125.dbf
- /oracle1/V723/dbs/fifiV723.dbf
- /oracle1/V723/dbs/tar844526.dbf
 - dictionary 정보를 받는다.
 $cd $ORACLE_HOME/bin/common $dul dictv7.ddl UnLoader: Release 2.2.0.2 – Very Restricted on Mon Mar 10 1997 Copyright (c) 1994/95 Oracle Corporation, The Netherlands. All rights reserved. . unloading table OBJ$ 1960 rows unloaded . unloading table TAB$ 299 rows unloaded . unloading table COL$ 9371 rows unloaded . unloading table USER$ 52 rows unloaded - table unload
 droped tablespace의 object를 user또는 table단위로 unloading함. $dul DUL> unload user test1; About to unload TEST1’s tables … . unloading table TEST 100 rows unloaded DUL>quit; $ ls COL.ctl TAB.ctl USER.ctl dictv7.ddl COL.dat TAB.dat USER.dat dul* OBJ.ctl TEST1_TEST.ctl control.dul init.dul OBJ.dat TEST1_TEST.dat dictv6.ddl - SQL*LOADER로 data loading
 import로 만든 test.sql로 table을 생성후 sql*loader로 data load! $ sqlplus user/passwd @test $ sqlldr user/passwd control=TEST1_TEST.ctl data=TEST1_TEST.dat 
