기술 정보
home
채널 소개
home

DBLink 통한 데이터 이관 방법

문서 유형
기술 정보
분야
마이그레이션
키워드
dblink
SOURCE
target
archive
적용 제품 버전
6F

개요

DB Link를 통해 데이터를 이관하는 방법 및 방법에 따른 데이터 이관 속도에 대해 설명합니다.
참고
본 문서는 아래 조건에서 수행한 안내자료 입니다.
가상 머신 : Vitrual Box
OS : Centos7
Tibero : Tibero6
Source, Target : Tibero6 (동일서버내 존재)

방법

데이터 이관

1. DBlink 통한 데이터 이관 (Source→Target)

Soucre에서 Target으로 DB Link를 통해 데이터를 이관할 수 있습니다.
--Source SQL> alter session enable parallel dml; Session altered. SQL> insert /*+ append parallel(4) */ into tbl_link_test@ttot select /*+ parallel(4) */ * from tbl_link_test; SQL> select * from v$pe_session; --타 세션에서 조회 SID SERIAL# PEP_ID QCSID QCSERIAL# DEGREE REQ_DEGREE ---------- ---------- ---------- ---------- ---------- ---------- ---------- 97 1601 0 77 531 4 4 98 1600 0 77 531 4 4 99 1598 0 77 531 4 4 100 1599 0 77 531 4 4 4 rows selected. --Target SQL> alter table TBL_LINK_TEST parallel 4; Table 'TBL_LINK_TEST' altered. SQL> select * from v$pe_session; 0 row selected.
SQL
복사
Source의 DB Link를 이용할 경우 Target 테이블에 Insert시 parallel 옵션을 사용할 수 없습니다.
다만, 사전에 Target의 테이블에 대해 parallel 설정을 변경 후 이관하여도 병렬처리 되지 않으므로 해당 데이터 이관 방법은 권장하지 않습니다.

2. DBlink 통한 데이터 이관 (Target→Source)

Target에서 DB Link를 통해 Source의 데이터를 이관할 수 있습니다.
이 방법은 Target, Source 모두 병렬처리가 가능합니다.
--Target SQL> alter session enable parallel dml; Session altered. SQL> insert /*+ append parallel(4) */ into tbl_link_test select /*+ parallel(4) */ * from tbl_link_test@ttot; SQL> select * from v$pe_Session; --타 세션에서 조회 SID SERIAL# PEP_ID QCSID QCSERIAL# DEGREE REQ_DEGREE ---------- ---------- ---------- ---------- ---------- ---------- ---------- 97 3879 0 77 3852 4 4 98 3881 0 77 3852 4 4 99 3882 0 77 3852 4 4 100 3884 0 77 3852 4 4 101 3883 0 77 3852 4 4 102 3885 0 77 3852 4 4 103 3880 0 77 3852 4 4 104 3886 0 77 3852 4 4 8 rows selected. --Source SQL> select * from v$pe_session; SID SERIAL# PEP_ID QCSID QCSERIAL# DEGREE REQ_DEGREE ---------- ---------- ---------- ---------- ---------- ---------- ---------- 97 4054 0 79 3928 4 4 98 4053 0 79 3928 4 4 99 4052 0 79 3928 4 4 100 4051 0 79 3928 4 4 4 rows selected.
SQL
복사

설정에 따른 이관 속도 비교

테스트 데이터는 10,000,000건으로 약 376MB이며 생성 스크립트는 아래를 참고합니다.
create table tbl_link_test(a number, b varchar2(10), c date); insert into tbl_link_test select level, 'tbl_link_test', sysdate from dual connect by level <= 10000000; commit; create index idx_link_test1 on tbl_link_test(a); create index idx_link_test2 on tbl_link_test(b); create index idx_link_test3 on tbl_link_test(c); alter table tbl_link_test add constraint con_a unique (a);
SQL
복사

1. DBlink 통한 데이터 이관 (Source→Target)

모든 설정 기본 상태 : Total elapsed time 00:24:30.560933
모든 설정 변경 상태 : Total elapsed time 00:14:53.344741

2. DBlink 통한 데이터 이관 (Target→Source)

모든 설정 기본 상태 : Total elapsed time 00:02:35.416980
모든 설정 변경 상태 : Total elapsed time 00:00:45.513947
참고
nologging으로 이관된 데이터들은 복구가 불가능하므로 이관이 완료된 후에는 반드 시 풀백업을 받을것을 권장합니다.
DB Link를 통해 데이터 이관시에는 특정 파티션만 조회할 수는 없습니다. 따라서 작업자가 별도로 범위 조건절을 지정하여 조회해야 합니다.
TAC 환경일 경우 한쪽 노드를 종료한 후 데이터 이관을 진행합니다. 유저별로 데이터를 이관할 경우에는 각 노드에 다른 유저로 데이터 이관을 진행합니다.