개요
DB Link를 통해 데이터를 이관하는 경우 사전에 설정해야 하는 사항들에 대해 안내합니다.
참고
본 문서는 아래 조건에서 수행한 안내자료 입니다.
•
가상 머신 : Vitrual Box
•
OS : Centos7
•
Tibero : Tibero6
•
Source, Target : Tibero6 (동일서버내 존재)
방법
1. 테이블 로깅 설정 (nologging)
이관 대상 테이블을 nologging 모드로 설정하여 이관 속도를 향상할 수 있습니다.
alter table 유저명.테이블명 nologging;
SQL
복사
2. 인덱스 드랍
이관 대상 테이블에 생성되어 있는 인덱스를 드랍하여 이관 속도를 향상 시킬 수 있습니다.
드랍하는 인덱스에 대한 생성문은 미리 확보합니다.
drop index 유저명.인덱스명;
SQL
복사
3. 테이블 병렬 및 append 처리
힌트를 통해 append 처리 및 이관 대상 테이블의 DOP를 지정할 수 있습니다.
단, 사전에 session 레벨에서 parallel dml을 활성화 시켜야하고, 이관 종료 후에는 commit을 수행합니다.
alter session enable parallel dml;
insert /*+ append parallel(4) / into 유저명.테이블명 select /+ parallel(4) */ *
from 유저명.테이블명@디비링크명;
commit;
SQL
복사
4. 노아카이브 설정
Target DB의 아카이브 모드를 노아카이브 모드로 설정하여 이관 속도를 향상시킬 수 있습니다.
해당 작업은 DB 재기동이 필요합니다.
alter database noarchivelog;
SQL
복사
5. Undo Retention 설정
데이터 이관시 가장 많이 사용되는 Undo Tablespace 재사용 시간을 단축하여 이관 속도를 향상시킬 수 있습니다. 해당 설정값은 변경 후 새로 접속된 세션에 대해서만 적용되며 100이하의 값으로 설정할 것을 권장합니다. 기본값은 900초(15분) 입니다.
alter system set undo_retention=30;
SQL
복사
6. 제약조건 비활성 및 드랍
Target에 데이터를 입력 건 별 제약조건을 체크합니다. 이에 따라 Target의 제약조건을 비활성하거나 드랍하면 데이터 이관 속도를 향상시킬 수 있습니다.
인덱스와 마찬가지로 드랍을 하는 경우에도 사전에 생성구문을 확보해야 합니다.
alter table 유저명.테이블명 drop constraint 제약조건명;
alter table 유저명.테이블명 disable constraint 제약조건명;
SQL
복사