PostgreSQL

오라클 Datapump 로 오라클에서 포스트그레sql로 마이그레이션 하는 과정

_Blue_Sky_ 2024. 12. 3. 22:07
728x90
728x90

 

Oracle Datapump를 사용하여 Oracle에서 PostgreSQL로 데이터를 마이그레이션하는 과정은 데이터의 구조 및 데이터를 적절히 추출, 변환, 로드(ETL)하는 작업을 포함합니다. 전체적인 과정을 단계별로 아래에 설명드리겠습니다.


1. 사전 준비

  1. 환경 점검
    • Oracle 데이터베이스와 PostgreSQL 데이터베이스 모두 사용 가능한 상태인지 확인합니다.
    • 필요한 네트워크 연결 및 권한이 설정되어 있는지 확인합니다.
  2. 호환성 확인
    • Oracle과 PostgreSQL 간 데이터 타입의 차이를 분석합니다.
    • 테이블 구조, 인덱스, 제약 조건, 트리거, 뷰 등 이식 가능한 요소와 그렇지 않은 요소를 식별합니다.
  3. PostgreSQL 환경 구성
    • PostgreSQL에서 Oracle 데이터를 수용할 수 있도록 필요한 스키마와 데이터베이스를 생성합니다.
    • 마이그레이션 도구를 설치합니다(예: ora2pg 또는 pgloader).

2. Oracle Datapump로 데이터 내보내기

  1. Datapump Export 작업
    • EXPDP 명령어를 사용하여 Oracle 데이터를 .dmp 파일로 추출합니다. 예를 들어:
      expdp username/password schemas=your_schema dumpfile=export.dmp logfile=export.log directory=data_pump_dir
      
    • schemas나 tables 옵션을 사용하여 특정 데이터만 내보낼 수 있습니다.
  2. 내보낸 파일 확인
    • 생성된 .dmp 파일과 로그 파일을 확인하여 데이터가 제대로 내보내졌는지 점검합니다.

3. 데이터 변환

  1. DDL 추출 및 변환
    • Oracle의 스키마 정의를 추출합니다:
      expdp username/password schemas=your_schema content=metadata_only dumpfile=metadata.dmp logfile=metadata.log directory=data_pump_dir
      
    • 추출한 DDL 파일을 PostgreSQL 문법에 맞게 수정합니다.
      • 데이터 타입 변환 예시:
        • NUMBER → NUMERIC
        • VARCHAR2 → VARCHAR
        • DATE → TIMESTAMP
  2. 데이터 변환
    • 도구 사용:
      • ora2pg: Oracle 데이터를 PostgreSQL 형식으로 자동 변환합니다.
        ora2pg -c config_file.conf
        
      • 또는 데이터 타입 변환을 수동으로 처리한 뒤 CSV 형식으로 데이터를 정리합니다.

4. PostgreSQL로 데이터 로드

  1. DDL 적용
    • 변환된 DDL 파일을 PostgreSQL 데이터베이스에 적용합니다:
      psql -U postgres -d your_database -f schema.sql
      
  2. 데이터 로드
    • 데이터가 CSV 형식인 경우:
      \COPY table_name FROM 'data.csv' DELIMITER ',' CSV HEADER;
      
    • 또는 pgloader를 사용하여 직접 로드:
      pgloader config_file.load
      

5. 마이그레이션 검증

  1. 데이터 검증
    • 데이터의 무결성과 일관성을 확인합니다.
    • SQL 쿼리를 실행하여 레코드 수, 데이터 정확도 등을 검증합니다.
  2. 성능 테스트
    • PostgreSQL에서 데이터 조회 및 쓰기 성능을 테스트하여 문제가 없는지 확인합니다.

6. 후속 작업

  1. 애플리케이션 변경
    • 애플리케이션에서 PostgreSQL로의 연결 설정을 변경합니다.
    • SQL 쿼리를 PostgreSQL에 맞게 조정합니다.
  2. 백업
    • 모든 작업이 완료되면 PostgreSQL 데이터베이스의 백업을 생성합니다.

이 과정을 진행하는 동안 예상치 못한 문제가 발생할 수 있으니 단계별로 진행하며 테스트를 병행하시는 것이 중요합니다. 추가적인 질문이 있으시면 편히 말씀해 주세요!

728x90
728x90