본문 바로가기
Database

데이터 마이그레이션: IMPDP와 EXPDP

by 굿센스굿 2024. 12. 4.
반응형

 

데이터 마이그레이션(Data Migration)은 데이터베이스 관리자(DBA)들이 자주 수행해야 하는 중요한 작업 중 하나입니다. 특히 Oracle Database 환경에서는 데이터 내보내기(EXPDP)와 가져오기(IMPDP) 기능을 활용하여 데이터를 효과적으로 마이그레이션할 수 있습니다. 이번 글에서는 IMPDPEXPDP의 개념, 장점, 사용 방법, 그리고 실무 예제를 중심으로 데이터 마이그레이션 과정에서 발생할 수 있는 주요 고려사항을 살펴보겠습니다.

1. IMPDP와 EXPDP란 무엇인가?

Oracle의 Data Pump Export(EXPDP)와 Import(IMPDP)는 대용량 데이터를 빠르고 효율적으로 이동할 수 있도록 설계된 유틸리티입니다.

  • EXPDP (Data Pump Export)
    데이터베이스의 특정 객체(테이블, 스키마, 전체 데이터베이스 등)를 데이터 파일 형태로 내보내는 도구입니다.
    데이터베이스 마이그레이션, 백업, 복구, 개발 환경 생성에 자주 사용됩니다.
  • IMPDP (Data Pump Import)
    EXPDP로 생성된 데이터 파일을 다른 데이터베이스로 가져오는 데 사용됩니다.
    새로운 환경으로 데이터를 마이그레이션하거나 손상된 데이터를 복구하는 데 필수적입니다.

특징

  • 고성능: 기존의 EXPORT와 IMPORT 유틸리티에 비해 속도가 빠릅니다.
  • 병렬 처리 지원: 데이터 작업을 병렬로 처리하여 작업 시간을 단축합니다.
  • 유연한 옵션: 데이터 필터링, 네트워크 데이터 전송 등 다양한 기능을 제공합니다.

2. IMPDP와 EXPDP의 주요 옵션

2.1 EXPDP 주요 옵션

  • DIRECTORY: 데이터 덤프 파일이 저장될 경로를 지정합니다.
  • DUMPFILE: 생성될 덤프 파일의 이름을 설정합니다.
  • SCHEMAS: 내보낼 스키마를 지정합니다.
  • TABLES: 특정 테이블만 내보낼 수 있습니다.
  • CONTENT: 데이터, 메타데이터, 또는 둘 다 내보낼지를 선택합니다.

예제 명령어

expdp system/password DIRECTORY=dp_dir DUMPFILE=export.dmp SCHEMAS=hr LOGFILE=export.log

2.2 IMPDP 주요 옵션

  • DIRECTORY: 덤프 파일이 저장된 경로를 지정합니다.
  • DUMPFILE: 가져올 덤프 파일의 이름을 설정합니다.
  • REMAP_SCHEMA: 데이터를 새로운 스키마로 매핑합니다.
  • TABLE_EXISTS_ACTION: 테이블이 이미 존재할 경우 수행할 작업을 정의합니다. (e.g., TRUNCATE, APPEND)
  • EXCLUDE/INCLUDE: 특정 객체를 제외하거나 포함할 수 있습니다.

예제 명령어

impdp system/password DIRECTORY=dp_dir DUMPFILE=export.dmp SCHEMAS=hr LOGFILE=import.log

3. 실무 예제

예제 1: 스키마 단위 마이그레이션

목표: 개발 환경에서 운영 환경으로 HR 스키마를 마이그레이션.

  1. EXPDP로 HR 스키마를 내보냅니다.
    expdp system/password DIRECTORY=dp_dir DUMPFILE=hr_export.dmp SCHEMAS=hr LOGFILE=hr_export.log
    
  2. 운영 환경에서 덤프 파일을 가져옵니다.
    impdp system/password DIRECTORY=dp_dir DUMPFILE=hr_export.dmp SCHEMAS=hr LOGFILE=hr_import.log
    

예제 2: 테이블 데이터만 마이그레이션

목표: 특정 테이블(employees)의 데이터만 이동.

  1. EXPDP로 employees 테이블을 내보냅니다.
    expdp system/password DIRECTORY=dp_dir DUMPFILE=emp_table.dmp TABLES=employees LOGFILE=emp_export.log
    
  2. 대상 환경에서 데이터를 가져옵니다.
    impdp system/password DIRECTORY=dp_dir DUMPFILE=emp_table.dmp TABLES=employees LOGFILE=emp_import.log
    

예제 3: 데이터 리매핑

목표: 데이터를 HR 스키마에서 TEST 스키마로 옮기기.

  1. 데이터를 내보냅니다.
    expdp system/password DIRECTORY=dp_dir DUMPFILE=hr_to_test.dmp SCHEMAS=hr LOGFILE=hr_to_test_export.log
    
  2. 리매핑하여 데이터를 가져옵니다.
    impdp system/password DIRECTORY=dp_dir DUMPFILE=hr_to_test.dmp REMAP_SCHEMA=hr:test LOGFILE=hr_to_test_import.log
    

4. 마이그레이션 시 주요 고려사항

  1. 네트워크 대역폭
    네트워크를 통해 데이터를 전송할 경우 대역폭이 충분하지 않으면 작업 속도가 저하될 수 있습니다.
  2. 데이터 호환성
    소스와 대상 데이터베이스의 버전 차이가 클 경우 호환성 문제가 발생할 수 있으므로, 사전 테스트가 필요합니다.
  3. 로그 및 에러 파일 확인
    작업 중 발생한 오류를 확인하기 위해 로그 파일을 반드시 점검해야 합니다.
  4. 백업의 중요성
    데이터 손실 방지를 위해 작업 전 반드시 백업을 수행해야 합니다.

결론

Oracle의 IMPDP와 EXPDP는 데이터베이스 마이그레이션 작업에서 매우 강력하고 유연한 도구입니다. 위에서 다룬 주요 옵션과 실무 예제는 다양한 환경에서 효율적인 데이터 이동을 가능하게 합니다. 적절한 사전 계획과 옵션 활용을 통해 데이터 마이그레이션을 성공적으로 수행할 수 있습니다.
궁금한 점이나 추가적인 활용 사례가 있다면 댓글로 공유해주세요! 😊

반응형