문서유형ㅣ기술정보
분야ㅣ마이그레이션
적용제품버전ㅣTibero5, Tibero6, Tibero7
문서번호ㅣTMITI039
개요
Tablespace와 User가 서로 다른 환경으로 데이터 이관이 필요한 경우,
Tibero에서 사용할 수 있는 2가지 이관 방법을 정리합니다.
방법 ① DDL 수정 후 Import
방법 ②
remap_tablespace옵션을 이용한 Import
방법
① DDL 스크립트 수정 후 Import
개념
기존 User의 DDL을 추출한 뒤,
Tablespace 정보를 수정하여 새 User / 새 Tablespace 환경에 재적용 후 Import 수행합니다.
절차 요약
(1) Source User(TEST) 생성 및 테스트 데이터 구성
create tablespace test_ts datafile 'test001.dtf' size 100m autoextend on next 100m maxsize unlimited;
create user test identified by test default tablespace test_ts;
grant connect, resource to test;테스트 데이터 생성:
CREATE TABLE BULKINS2 (A NUMBER, B NUMBER, C NUMBER);
BEGIN
FOR i IN 1..100000 LOOP
INSERT INTO BULKINS2 VALUES (i, 10, 99);
END LOOP;
COMMIT;
END;
/(2) Source User Export
alter system set AUTHENTICATION_TIMEOUT=60;
tbexport username=sys password=tibero sid=tibero port=8629 user=test file=/home/tibero/exp/test_exp.dat log=/home/tibero/exp/test_exp.log(3) DDL 추출
tbexport username=sys password=tibero sid=tibero port=8629 user=test file=/home/tibero/exp/test_exp_ddl.dat log=/home/tibero/exp/test_exp_ddl.log IGNORE=Y ROWS=N SCRIPT=Y(4) Tablespace 수정
cp test_exp_ddl.log ddl_change.txt
:%s/USR/TEST_TS2(5) Target User(TEST2) 생성
create tablespace test_ts2 datafile 'test2_001.dtf' size 100m autoextend on next 100m maxsize unlimited;
create user test2 identified by test2 default tablespace test_ts2;
grant connect, resource to test2;(6) DDL 적용 및 Import
tbsql test2/test2 @ddl_change.txt
tbimport username=sys password=tibero sid=tibero port=8629 fromuser=test touser=test2 file=/home/tibero/exp/test_exp.dat log=/home/tibero/imp/test_imp.log ignore=y(7) 검증
Object VALID 상태 확인
Table Row Count 비교
remap_tablespace 옵션 사용
개념
Export 시 remap_tablespace 옵션을 사용하여 DDL 수정 없이 자동으로 Tablespace 매핑 수행합니다.
절차 요약
(1) Target User(TEST3) 생성
create tablespace test_ts3 datafile 'test3_001.dtf' size 100m autoextend on next 100m maxsize unlimited;
create user test3 identified by test3 default tablespace test_ts3;
grant connect, resource to test3;(2) remap_tablespace 옵션으로 Export
alter system set AUTHENTICATION_TIMEOUT=60;
tbexport username=sys password=tibero sid=tibero port=8629 user=test file=/home/tibero/exp/test_remap_exp.dat log=/home/tibero/exp/test_remap_exp.log remap_tablespace=USR:TEST_TS3(3) Import 수행
tbimport username=sys password=tibero sid=tibero port=8629 fromuser=test touser=test3 file=/home/tibero/exp/test_remap_exp.dat log=/home/tibero/imp/test_reamp_imp.log(4) 검증
Table Row Count 동일 확인
Object VALID 상태 확인
검증 스크립트 (공통)
Row Count 확인 (Cursor 사용)
SET SERVEROUTPUT ON
EXEC DBMS_OUTPUT.ENABLE(1000000);
DECLARE
CURSOR CUR_MYTABLES IS
SELECT * FROM DBA_TABLES
WHERE OWNER IN ('TEST','TEST2','TEST3')
ORDER BY OWNER, TABLE_NAME;
V_CNT NUMBER;
BEGIN
FOR I IN CUR_MYTABLES LOOP
EXECUTE IMMEDIATE
('SELECT COUNT(*) FROM ' ||I.OWNER||'.'||I.TABLE_NAME)
INTO V_CNT;
DBMS_OUTPUT.PUT_LINE(I.OWNER||'.'||I.TABLE_NAME||' '||V_CNT);
END LOOP;
END;
/
권장사항
Tablespace 변경이 단순한 경우
→remap_tablespace옵션 사용 권장합니다.Tablespace/Storage 구조를 세밀하게 조정해야 하는 경우
→ DDL 수정 후 Import 방식 권장합니다.