Oracle

게시글 보기
작성자 유건데이타 등록일 2015-05-20
제목 TRANSPORTABLE TABLESPACE IN 8.1
Oracle8i에서는 tablespace단위로 그 구성 datafile들을 옮겨서 다른
database에 연결시켜 사용할 수 있는 기능이 제공된다.



SCOPE
-----
8i~10g Standard Edition 에서는 Import transportable tablespaces 기능만이 지원이 됩니다.


유용성
------
1. 전사적 정보시스템내에서 대량의 data의 흐름이 필요할 경우, - 예를 들어,
OLTP database에서 data warehouse database로의 data이전 또는 data
warehouse에서 data mart로의 data이전 등 - 8.1이전까지는 SQL*Loader의
direct path나 parallel DML등의 방법을 이용하여 그 작업속도를
향상시키려고 시도 하였다. 8.1의 Transportable Tablespace기능을
이용한다면 datafile들을 새로운 system으로 copy하는 정도의 시간으로
작업을 완료할 수 있다.

2. 중앙에서 변경, 관리되고 지방(지사)에서 사용되는 data들을 CD-ROM에 담아서
배포하는 등에 이용가능하다.
예를 들어, 제품의 사양, 가격등에 대한 정보를 담는 tablespace를 중앙에서
변경, 저장하여 배포하고, 이 data를 지방의 database에 연결하여 주문
system등에 이용할 수 있다.

3. Contents 사업자들은 자신이 제공하는 contents들을 Transportable
Tablespace형태로 제공 하여 고객들의 database에 바로 연결하여 사용할 수
있도록 할 수 있다.


특성, 제한사항
-------------
1. 특정 tablespace내의 전체 data를 이동시킨다.
2. Media recovery를 지원한다.
3. Source database와 target database는
- 동일한 OS에서 구동되고 있어야 한다.
- Oracle8i(8.1)이상의 version이어야 한다.
- 동일한 block size를 이용해야 한다.
- 동일한 characterset을 이용해야 한다.


작업절차
-------
1. 대상 tablespace를 read only 상태로 변경한다.
file을 copy하는 동안 해당 tablespace에 변경작업이 일어나지 않도록
보장한다.

2. Source database에서 metadata를 export한다.
해당 tablespace와 그 안의 object들에 대한 dictionary정보를 dump file에
받는 과정이다.

3. 대상 tablespace의 datafile들을 target system으로 이동시킨다.

4. Export dump file을 이동시킨다.

5. Metadata를 target database에 import한다.

6. 필요하다면 이후에 해당 tablespace를 read-write mode로 변경한다.


SAMPLE
------
Source database : dbA
Target database : dbB
이동 대상 tablespace : TRANS_TS(/u01/data/trans_ts01.dbf, /u01/data/trans_ts02.dbf 로 구성)

1. dbA에서 TRANS_TS를 read only로 변경
alter tablespace TRANS_TS read only ;

2. dbA에서 metadata를 export한다.
exp sys/manager file=trans.dmp transport_tablespace=y
tablespaces=trans_ts triggers=n constraints=n

version이 8.1.6이상이라면,
exp system/manager 대신에 exp \'sys/manager as sysdba\'와 같이
주여야 한다.

transport_tablespace(Y or N)는 Y로 설정한다.
tablespaces에는 transport의 대상이 되는 tablespace를 지정한다.
대상 tablespace의 table들에 걸려있는 trigger, constraint들도 대상으로
할 것인지를 지정한다.

3. TRANS_TS의 두개의 datafile들을 dbB가 존재하는 system으로 binary
copy한다.

4. 위의 2번 과정에서 export한 dump file을 dbB가 존재하는 system으로
binary copy한다.

5. dbB에 metadata를 import한다.
imp sys/manager file=trans.dmp transport_tablespace=y
datafiles=/disk1/trans_ts01.dbf,/disk2/trans_ts02.dbf

8.1.6이상이라면 이 부분도 sys/manager대신에 \'sys/manager as dba\'
와 같이 적는다.

transport_tablespace(Y or N)는 Y로 설정한다.
datafile의 name은 dbB system에 copy된 filename을 지칭한다.

6. 필요할 경우 tablespace를 read write mode로 변경한다.
alter tablespace TRANS_TS read write ;


TRANSPORT SET
-------------
Transport하고자 하는 tablespace set은 self-contained이어야만 한다.
대상이 되는 tablespace set 내에 partitioned table이 존재한다면 해당
table의 모든 partition들이 이들 tablespace 내에 존재해야 하며, 비슷하게
LOB column의 data들도 table의 data들과 함께 이들 tablespace 내에 존재해야
하는데, 이렇게 서로 관련된 object들이 tablespace set내에 모두 존재하는
것을 self-contained라고 지칭한다.
tablespace set이 self-contained하지 않다면 transport할 수 없다.

Transport tablespace set이 self-contained인지의 여부를 확인하기 위해서
DBMS_TTS.TRANSPORT_SET_CHECK procedure를 이용한다.

예를 들어,
DBMS_TTS.TRANSPORT_SET_CHECK(ts_list=>'A,B,C',incl_constraints=>TRUE)
을 수행하면 A, B, C 세개의 tablespace로 구성된 transport tablespace set이
self-contained인지에 대한 정보를 TRANSPORT_SET_VIOLATIONS view에 기록해
준다.

incl_constraints를 설정하면 referencial(foreign key) constraint에
대해서도 self-contained 여부를 check해준다.
Comment
등록된 코멘트가 없습니다.