본문 바로가기

DATABASE/Oracle

[오라클] exp & imp

-- DB덤프를 받기 위한 export와 import명령어.

(1) 실서버에서 덤프받기 
-- E:\exp ghost/rhtmxm file=edms.dump log=edms.log OBJECT_CONSISTENT=y rows=y indexes=y grants=y 
[참조 : http://blog.empas.com/adchoi2002/16572605]

(2) 받은 덤프를 내 컴(오라클)에 적용하기
-- D:\Ora_dump>imp ghost/rhtmxm file=edms.dump log=edmsimp.log CONSTRAINTS=y rows=y indexes=y grants=y
[참조 : http://blog.empas.com/adchoi2002/16572605]

-- 테이블 덤프
exp 계정/암호 file=덤프명.dmp compress=y tables=테이블명,테이블명
exp destinyram/wkfyrhks file=tablename.dmp compress=y tables=amdept,amtask, ...
imp system/manager1 fromuser=destinyram touser=jamjeju file=amdept.dmp log=log.log tables=amdept
imp destinyram/wkfyrhks file=NALA_ENFORCE_DOC.dmp log=enforce.log ignore=y grants=y rows=y indexes=y full=y

-- 기본풀덤프
exp destinyram/wkfyrhks@sid -file=2006.dmp -log=2006.log rows=y indexes=y grants=y //남에꺼 빼올때
exp destinyram/wkfyrhks -file=2006.dmp -log=2006.log rows=y indexes=y grants=y //내꺼 빼낼때
imp destinyram/wkfyrhks -file 20051017.DMP -log imp_log.log IGNORE=y grants=y rows=y indexes=y full=y //내꺼에임포트,@붙이면 남에꺼에 임포트
-- 계정풀덤프
exp system/manager file=20060620_oj.dmp owner=destinyram 
imp system/wkfyrhks fromuser=destinyram touser=destinyramSC log=test.log file=20060620_sc.dmp
imp system/manager1 file=20060403.dmp fromuser=navy touser=navy

오라클을 export utility를 사용해서 덤프를 받으면, 그 파일은 텍스트 파일이 아닙니다. binary file이죠.
유닉스라면..
UNIX>strings AAAA.dmp 하시면 텍스트만 볼 수 있습니다.
그렇지만 복구를 하기 위해선 import를 사용하게 되어있는데, 
단순히 export 받은 파일안에 든 text 커맨드만으로 사용할 수는 없겠죠.
export/import는 최소 단위가 테이블입니다.
view, prodecure, synonym 등은 따로 받을 수가 없죠.
최소단위가 테이블임으로 당연히 테이블단위의 복구(import)도 가능합니다.
예를 들어보죠.
prompt>exp system/manager owner=scott tables=emp, employee(컴마로 분리해서 계속 붙일 수 있습니다) file=testexp.dmp
하시면 scott유저의 emp, employee...등의 테이블만 export 받죠.
prompt>imp system/manager fromuser=scott touser=testuser file=testexp.dmp tables=emp
이렇게 하시면, scott유저의 emp 테이블을 testuser에게 import하게됩니다.
export/import에 대한 도움말은...
prompt>exp help=y or imp help=y 하시면 간단한 도움말을 볼 수 있습니다.
조금만 신경써서 읽어보신다면 무슨뜻인지 대강 짐작하시는데 별 문제 없을겁니다.
질문에 답하자면..
오라클에서는 그렇게 이쁘게, 더구나 export를 사용해서는 할 수 없습니다.
아~
다만 한가지..
import를 할 때는 일반적으로 export하는 시간의 두배 이상이 걸립니다.
대부분의 경우는 인덱스 때문입니다.
그래서 import할 때..
prompt>imp system/manager fromuser=scott touser=testuser file=testexp.dmp indexes=n indexfile=indexcreate.sql tables=emp 
뭐 이런식으로 해주면 인덱스는 import를 하지 않고, indexfile=indexcreate.sql에 명기한것처럼 indexcreate.sql이라는 파일로 만들어줍니다.
이 파일은 텍스트입니다.
import가 끝나고 난 다음에 이 스크립트를 돌려주면 인덱스가 생성됩니다.
시간적으로로 이 방법이 더 좋습니다. 

출처 : http://blog.naver.com/genesis0395?Redirect=Log&logNo=120042180932

'DATABASE > Oracle' 카테고리의 다른 글

[오라클] INSERT INTO ~ SELECT  (0) 2014.07.04
[오라클] 테이블 복사  (0) 2014.07.04
[오라클] 세션 확인 & 킬  (0) 2014.06.29
[오라클] 유저 생성 & 삭제  (0) 2014.06.29
[오라클] expdp & impdp  (1) 2014.05.11