울어라휘파람새야

오라클 빠른 exp, imp 본문

밥줄/Oracle

오라클 빠른 exp, imp

꼬꼬리코 2009. 7. 25. 13:56

 

exp, imp indexs 생성 없이 하고 나중에 Data를 import 하고 index를 생성하는 방식이다.

import하는데 시간 너무 잡아먹으면 이 방법을 추천하며 여기서 사용자에 편의에 맞춰서

옵션을 수정하면 될것이다.

 

 

다른 DB에 import 시 미리 해야할 작업

 

* DB에 있는 각 유저 정보, tablespace 정보 확인하고 만들어주기 

 

SELECT username, default_tablespace, temporary_tablespace FROM dba_users;

SELECT name, bytes/1024/1024 FROM v$datafile;

SELECT name, bytes/1024/1024 FROM v$tempfile;

 

* 각 유저별 권한 정보 확인하고 만들어주기

SELECT * FROM user_sys_privs;

 

 

 

 

export, import  빠르게 하기 (sga영역 사용안하고 하므로...)

* direct YES

 

 

import  빠르게 하기

* index NO, commit NO

* buffer size 크게 잡는다.

* import 전부 다 들어갈때까지 DB는 NoArchive로 한다.

 

 

(1) 유형

 

exp userid/userpass log=dump.log file=dump.dmp indexes=n compress=n direct=y
imp userid/userpass log=imp_dump.log file=dump.dmp indexes=n buffer=10247680 commit=n

 

 

(2) 유형 (난 index 분리하는거 귄찮으므로 그냥 하겠다.)

 

exp userid/userpass log=dump.log file=dump.dmp compress=n direct=y
imp userid/userpass log=imp_dump.log file=dump.dmp buffer=10247680 commit=n

 

 

 

1.4G 정도를  exp로 실행을 해보면 속도 차이가 약 3배 정도 난다. 결과적으로 옵션 주고

exp를 해야한다고 생각한다.

 

 

일반 exp 시간

 

real    4m24.487s
user    3m11.499s
sys     0m13.747s

 

 

옵션 주고 exp 시간

real    1m51.127s
user    0m48.110s
sys     0m19.683s

 

 

 

 

 

 

 

 

 

export한 곳에서 한방에 indexes 가져오기

 

Toad -> schema browser -> indexes -> 전부 선택후 마우스 오른쪽 버튼 ->
create index -> 누르면 복사를 한다. -> notepad 패드 열어서 붙이기 하면 나올것이다.

 

 

 

 

index 지우고 다시 만들기

 

drop index indexname 으로 삭제가 안되면 이런 방법을 사용하면 된다.

 

 

 

Primary Key 삭제하기

 

alter table tablename drop primary key



index 생성 ( Toad 에서 만든거 붙이기로 해서 실행해도 된다.)

create unique index indexname on tablename(....)


 

Primary Key 생성

 

alter table tablename add primary key(column1, column2)

 

 

 

 

 

export시 error발생 해결 방법 

 

EXP-00091

 

exp 옵션에 statistics=none 추가

Comments