Oracle DB 데이터 마이그레이션이 필요할때, 크게 두가지 방법으로 나뉜다.

 

1) expdp/impdp 명령어를 통해, 파일 기반으로 마이그레이션 수행
2) dblink로 다른 데이터베이스에 직접 붙어, 데이터를 가져오는 방식

 

그중에 먼저, exp/imp 방식을 알아보자


먼저, 오라클 10g 이전에 exp/imp 방식과 expdp/impdp ( data pump ) 방식으로 나뉜다.

 

두 방식은 서로 호환되지 않으며,

 

차이점으로는 1. 속도 및 작업방식  2. 병렬수행  3. Job Control  4. 소요시간 예측 등이 있다.

 

 

- 속도

 

가장 큰 차이는 속도로, 기존 exp/imp의 single stream data unload 방식보다

direct path method 방식을 사용하여, 15~45배 정도 빠르다.

 

direct path method 
- direct I/O를 통하여 OS 메모리를 쓰지않고, 데이터파일에 직접 작성하는 방식

※ [ Direct-path 가 되지 않는 경우 ]
- 클러스터 테이블인 경우
- 테이블에 활성화된 트리거가 존재할 경우
- 글로벌 인덱스를 가진 테이블이 하나의 파티션에 존재 할 경우
- LOB컬럼에 있는 도메인 인덱스
- insert 모드에서 fine_grained access control 이 enable인 경우
- BFILE을 가진 테이블인 경우

 

- 작업방식 ( 병렬수행 가능 )

 

또한, data pump는 Oracle Directory를 통해 OS 물리경로로 접근하기 때문에

Oracle Directory를 매핑해주어야한다.

 

exprot ( 기존 ) : exp 계정/패스워드 file=덤프파일위치

export ( datapump ) 
 - OS 물리경로 확인 : mkdir /data/pump
 - Oracle 디렉토리 지정 : reate directory pump_dir  AS '/data/pump';
 - DBMS 계정에 디렉토리 권한 부여 : grant read,write on directory pump_dir to scott;
 - export 명령 수행 : expdp 계정/PWD direcotry=pump_dir dumpfile={데이터파일명} logfile={로그파일명}
                           full/schema/table/tablespace 중에 모드 선택하여 대상 데이터 선택
   추가옵션 : filesize : 한 파일당 최대크기 / exclude: 특정 오브젝트 제외 /  query : 조건에 맞는 오브젝트만 포함
                 job_name : job name 설정 / parallel : 병렬수행 프로세스 개수 ( 동일한 데이터파일 개수 필요 )

 

- Job Control

 

하기 명령어들을 통해 수행중인 Job의 중단, 재수행, 모니터링등의 Control 가능

 add_file: 덤프파일 추가
 exit: job 작업에서 빠져나감
 parallel: 현재 작업중인 프로세스 개수 조정
 status: 현재 작업 상태를 모니터링 하는 갱신 시간 지정
 kill_job: 해당 작업 완전히 삭제, 이게 작동 안하면 job_name의 테이블을 drop 해야함
 start_job: 중단된 작업 다시 시작
 stop_job: 현재 작업 일시 중단

 

 

- 데이터 예상시간 조회

 

SELECT sid, serial#, sofar, totalwork 
FROM v$session_longops
WHERE opname='job_name대문자'
AND sofar != totalwork ;

 

 

※ Import 시 주의점

 

1) 버전이 다를경우 import 하는 DB의 버전으로 expdp 시에 version 옵션 넣어줄 것2) 스키마, Table space, table에 대하여 exp/imp 환경이 다르다면 remap_스키마/TBS/table 옵션을 사용하여 명시

 

 

 

 

출처 :

 

https://artdap.tistory.com/entry/datapump란 [이제 나의 인생에는 Ctrl+Z 란 없다.]

https://hayleyfish.tistory.com/99 [DB네 생선가게]

'DB > Oracle' 카테고리의 다른 글

데이터 Reorg  (2) 2021.08.03
마이그레이션 (2) DB Link  (1) 2021.07.06

+ Recent posts