본문 바로가기
oracle

[ORACLE] TTS (TRANSPORTABLE TABLESPACE)

by 둥구리둥둥 2023. 1. 20.
728x90
반응형

TRANSPORTABLE TABLESPACE(TTS)는 Datapump를 사용하여 메타데이터 즉 구조만 추출하고 데이터파일 자체를 이동시켜 migration 작업이 가능

특징 및 주의 사항
• 서로 다른 DB 사이의 데이터를 주고받는 가장 빠르고 효율적인 방법이다.
• 데이터파일을 먼저 옮기고 메타데이터(구조)만 import하는 방식이다.
• SYSTEM, SYSAUX, UNDO, TEMPORARY TABLESPACE는 지원이 안됨
• 이동할 TABLESPACE를 EXPORT 하기 전에 READ ONLY 상태로 변경 필수
• DB 내부의 데이터 저장방식(character set)이 동일하거나 source DB의 캐릭터셋 보다 target DB가 슈퍼셋이면 가능)
• source system과 target system의 Endian format을 일치 시켜야함(big=big, little=little)
• TTS IMPORT 전 TARGET DB에 해당 SCHEMA는 수동으로 생성 필요
• ORACLE STANDARD EDITION은 지원 불가


사용 방법

1. SQL> CREATE DIRECTORY EXPPUMP AS '/WORK/DMP'; -- DATAPUMP 사용할 디렉토리 SOURCE DB에 생성
2. SQL> GRANT READ, WRITE ON DIRECTORY TABLESPACE_TTS TO PUBLIC; -- 생성한 디렉토리 사용권한 부여 
3. SQL> EXEC DBMS_TTS.TRANSPORT_SET_CHECK(TS_LIST=>'TABLESPACE_TTS',INCL_CONSTRAINTS=>TRUE); --TTS 가능한 테이블스페이스인지 체크
4. SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS; -- 조회를 통해 TTS가 가능한지 확인가능 문제시 메세지 출력(가능하면 no rows selected)
5. SQL> ALTER TABLESPACE TABLESPACE_TTS READ ONLY; -- TTS 진행할 테이블 스페이스를 READ ONLY 상태로 변경
6. $ expdp system directory=exppump transport_tablespaces=TABLESPACE_TTS dumpfile=TTS.dmp logfile=TTS.log -- TTS EXPORT 수행
7. TABLESPACE_TTS 관련 데이터파일과 export 받은  TTS.dmp 파일을 target 서버로 전송
8. SQL> create user "유저명" identified by '패스워드'; -- TTS 하는 테이블스페이스의 관련 계정 TARGET DB에 생성
9. SQL> CREATE DIRECTORY EXPPUMP AS '/WORK/DMP'; -- DATAPUMP 사용할 디렉토리 TARGET DB에 생성
10. SQL> GRANT READ, WRITE ON DIRECTORY TABLESPACE_TTS TO PUBLIC; -- 생성한 디렉토리 사용권한 부여  
11. $ impdp system directory=EXPPUMP dumpfile=tts.dmp logfile=tts.dmp transport_datafiles='데이터파일저장할경로/파일명'; -- TTS IMPORT
12. SQL> ALTER TABLESPACE TABLESPACE_TTS READ WRITE; --  정상 TTS 완료 확인 후 READ WRITE 변경
13. SQL> SELECT * FROM DBA_TABLESPACES; -- 정상적으로 TABLESPACE 붙었는지 확인 

728x90
반응형