imp/exp를 통해 데이터를 이전하는 방법은 매우 쉽고, 속도도 백만단위의 데이터가 아니라면 그럭저럭 만족할만한 수준이 된다. 하지만 이 데이터가 수백만건이 넘어서기 시작하고 테이블의 갯수가 늘어나면, exp/imp로는 해결할 수 없을 정도로 속도상에서 문제가 생긴다. imp 의 경우 insert 문을 이용한 데이터 입력과 별다른 바가 없기 때문이다. 물론 exp/imp의 속도를 늘이는 방법은 존재하지만, 한계가 있는 것은 사실이다. 오라클 10g에서는 이 exp/imp의 속도를 향상한 expdp/impdp(DataPump)를 제공한다. 이 얘기는 다음에 기회가 되면 다루어보자.
여기서 얘기하려고 하는 것은 제목에서 쓰여있다시피, Transportable Tablespace에 관한 내용이다. 사용방법은 간단하다. export를 할때, trasportable_tablespace=y 라는 옵션을 주기만 하면 된다. 물론 그 이전에 고려할 사항들은 있다.
| 확인사항 1. Transportable Tablespace는 8i 이상에서 지원한다. 2. Transportable Tablespace는 동일한 OS에서 동일버전 이상의 Target로만 이동이 가능하다 단, 10g는 OS가 달라도 가능하다 3.두 DB의 block size와 charset은 동일해야 한다. 4. Target에는 동일한 이름의 Tablespace가 없어야 한다. |
위의 조건이 충족한다면, 아래와 같은 몇줄의 명령으로 가능하다. 단, 파일을 카피하는 시간은 감수해야할 것이다.
| 내용 source에서 alter tablespace TB_NAME read only; --테이블 스페이스를 read only 상태로 만든다. exp '/as sysdba' file=TB_NAME.dmp tablespace=TB_NAME transportable_tablespace=y -- export target에서 source에서 transport 한 dump 파일과 테이블스페이스의 datafile을 복사해온다. imp '/as sysdba' file=TB_NAME.dmp transport_tablespace=y datafile=$DIR/DATAFILE.dbf |
같은 이름의 tablespace가 있다면 에러가 나므로 백업을 받은 후 없에고 수행한다.
'IT > ORACLE' 카테고리의 다른 글
| Hard Parse 와 Soft Parse (1) | 2008/10/27 |
|---|---|
| 잘못된 DB 설계의 폐해? (1) | 2008/10/16 |
| Transportable Tablespace (1) | 2008/10/14 |
| NAT하에서의 Oracle 접속 (1) | 2008/10/11 |
| 뜬금없이 export 가 안될때.. (0) | 2007/09/16 |
| Oracle SQLPLUS 에서 자신의 로그인 아이디와 ORACLE_SID 표시하기 (2) | 2007/09/11 |