Oracle Data Pump(expdp/impdp)

지규·2023년 5월 28일
0

개발일기

목록 보기
4/6

시스템 운영업무를 할 땐 DBA가 있어 DB서버를 비롯하여 DUMP나 백업 등의 업무를 DBA가 처리하였기 때문에 관련 지식이 부족했다. 이번 프로젝트를 진행하면서 개발 총괄의 업무를 수행하게 되었고, 이번 사이트에서 작업하면서 새롭게 공부한 것을 정리하고자 한다.

그 첫번째는 Oracle Data Pump이다.

Oracle Data Pump 란?

  • Oracle Data Pump는 한 데이터베이스에서 다른 데이터베이스로 데이터 및 메타데이터를 매우 빠르게 복사할 수 있는 기술이다.
  • Oracle Data Pump의 Export (expdp), Import (impdp) 는 특히 초대형 데이터베이스용으로 설계되었고, 대량의 데이터와 메타데이터가 있는 경우 기존의 Export (exp), Import (imp).에 비해 향상된 데이터 성능을 가지고 있다.
  • Data Pump 명령어는 cmd 창에서 작업한다.

Oracle Data Pump Export (expdp)

  • Expdp는 Full Mode, Schema Mode, Table Mode, Tablespace Mode, Transportable Tablespace Mode를 지원한다.
  • data_pump_dir 경로는 아래 쿼리를 통해 확인 할 수 있다.
    > SELECT * FROM SYS.DBA_DIRECTORIES WHERE DIRECTORY_NAME = 'DATA_PUMP_DIR';
  • expdp 명령어 사용방법
    • Full Mode
      > expdp userid=ID/PW DBFULL=y DUMPFILE=expdat.dmp DIRECTORY=data_pump_dir LOGFILE=export.log
      • Full Mode 를 사용하기 위해선 해당 유저에게 DATAPUMP_EXP_FULL_DATABASE 권한이 필요하다.
    • Schema Mode (Default Mode)
      > expdp userid=ID/PW schemas=ID DUMPFILE=expdat.dmp DIRECTORY=data_pump_dir LOGFILE=export.log
    • Table Mode
      > expdp userid=ID/PW tables=ID.TABLE1,ID.TABLE2 DUMPFILE=expdat.dmp DIRECTORY=data_pump_dir LOGFILE=export.log
    • Tablespace Mode
      > expdp userid=ID/PW tablespaces=IDTBS DUMPFILE=expdat.dmp DIRECTORY=data_pump_dir LOGFILE=export.log

Oracle Data Pump Import(impdp)

  • impdp 명령어 사용법
    • Full Mode
      > impdp userid=ID/PW DBFULL=y DUMPFILE=expdat.dmp DIRECTORY=data_pump_dir LOGFILE=import.log
    • Schema Mode (Default Mode)
      > impdp userid=ID/PW schemas=ID DUMPFILE=expdat.dmp DIRECTORY=data_pump_dir LOGFILE=import.log
      • import 대상의 schema 이름이 export 대상 schema의 이름과 다른경우 remap_schema 명령어를 추가하여 처리한다.
        👉 remap_schema=export schema 이름:import schema 이름
        ex. remap_schema=ID:NEWID
    • Table Mode
      > impdp userid=ID/PW tables=ID.TABLE1,ID.TABLE2 DUMPFILE=expdat.dmp DIRECTORY=data_pump_dir LOGFILE=import.log
    • Tablespace Mode
      > impdp userid=ID/PW tablespaces=IDTBS DUMPFILE=expdat.dmp DIRECTORY=data_pump_dir LOGFILE=impdp .log
      • import 대상의 tablespace 이름이 export 대상 tablespace의 이름과 다른경우 remap_Tablespace 명령어를 추가하여 처리한다.
        👉 remap_tablespace=export tablespace 이름 :import tablespace 이름
        ex. remap_tablespace=IDTBS:NEWIDTBS

Oracle Data Pump 작업 오류시 처리 방법

  • 작업 수행시 오류가 발생하는 경우가 있는데, datapump job 삭제후 재시도 하면 정상적으로 작업이 수행된다.
    • datapump job 조회
      SELECT * FROM DBA_DATAPUMP_JOBS;
    • datapump job 삭제
      DROP TABLE ID.SYS_EXPORT_SCHEMA_01; -- [OWNER_NAME].[JOB_NAME];

0개의 댓글