반응형

ora2pg : OraclePostgreSQL로 이관


1. ora2pg

  • Oracle DB를 PostgreSQL로 이관하기 위한 전문 오픈소스 도구입니다.
  • 스키마 분석, SQL 변환, 데이터 덤프, 자동 변환을 지원합니다.
  • 특히 테이블(Table), 인덱스(Index), 시퀀스(Sequence), 뷰(View), 프로시저(PL/SQL) 까지 변환할 수 있습니다.


2. 설치 방법

  • Ubuntu / Debian 리눅스 계열:

    •  sudo apt update
       sudo apt install ora2pg
      
  • Red Hat / CentOS 계열:

    •   sudo yum install ora2pg
      
  • macOS (brew 사용):

    •   brew install ora2pg
      
  • 주의:

    • Oracle Instant Client가 필요합니다.
    • Perl DBI 모듈(DBD::Oracle)도 필요할 수 있습니다.


3. 기본 설정 파일 (ora2pg.conf)

  • ora2pg는 설정 파일을 통해 동작합니다.
  • 기본적으로 ora2pg.conf 파일을 작성하거나, 명령어로 옵션을 직접 지정할 수 있습니다.

3.1 간단한 기본 ora2pg.conf 예시

  • conf

      # Oracle 접속 정보
      ORACLE_DSN    dbi:Oracle:host=127.0.0.1;sid=ORCL
      ORACLE_USER   system
      ORACLE_PWD    oracle_password
      
      # PostgreSQL 출력 파일 경로
      OUTPUT        /tmp/output.sql
      
      # 이관할 항목 지정
      EXPORT_SCHEMA 1
      EXPORT_TABLE  1
      EXPORT_VIEW   1
      EXPORT_SEQUENCE 1
    


4. 가장 기본적인 실행 방법

  • 설정 파일을 만들어 두었다면:

  • bash

      ora2pg -c ora2pg.conf
    
  • 👉 그러면 /tmp/output.sql 파일이 생성됩니다.

  • 👉 이 파일을 psqlPostgreSQL에 입력하면 됩니다.

  • bash

      psql -U postgres -d mydb -f /tmp/output.sql
    


5. 명령줄로 바로 사용하는 방법

  • 설정 파일 없이 단발성 이관도 가능합니다.

  • bash

      ora2pg -t TABLE \
             -o tables.sql \
             -b /tmp \
             -c config/ora2pg.conf
    
  • 설명:

    • -t : 추출할 항목 타입 (TABLE, VIEW, SEQUENCE 등)
    • -o : 출력 파일 이름
    • -b : 출력 디렉토리
    • -c : 사용할 설정 파일
  • 또는 설정 파일 없이 직접 다 입력하는 경우:

  • bash

    ora2pg -t TABLE \
           -o tables.sql \
           -b /tmp \
           -d dbi:Oracle:host=127.0.0.1;sid=ORCL \
           -u system \
           -w oracle_password
    


6. 주요 옵션 설명

  • 옵션 설명
    -t 추출 대상 (TABLE, VIEW, SEQUENCE, TRIGGER, FUNCTION 등)
    -o 출력 SQL 파일 이름
    -b 출력 디렉토리
    -c 설정 파일 경로
    -d Oracle DSN 지정
    -u Oracle 사용자명
    -w Oracle 비밀번호
    -p PostgreSQL로 직접 데이터 삽입 (DUMP_DATA 시)
    -a 특정 테이블, 뷰 이름만 지정하여 추출 가능 (콤마로 구분)


7. ora2pg 사용 흐름 요약

  • (1) Oracle 접속 정보 설정
  • (2) 추출할 대상 선택 (테이블, 뷰, 시퀀스 등)
  • (3) SQL 변환 파일 생성
  • (4) PostgreSQL에 변환된 SQL 적용

  • 필요시 데이터까지 덤프하여 PostgreSQL에 직접 삽입도 가능합니다.


7.1 ✨ 간단한 전체 예시

  • 1단계: OraclePostgreSQL SQL 생성

    • bash

      ora2pg -t TABLE \
             -o all_tables.sql \
             -b /tmp \
             -d dbi:Oracle:host=127.0.0.1;sid=ORCL \
             -u system \
             -w oracle_password
    
  • 2단계: 생성된 SQLPostgreSQL에 적용

    • bash

      psql -U postgres \
           -d my_pg_db \
           -f /tmp/all_tables.sql
    
  • 3단계: (옵션) 데이터까지 이관하는 경우

    • bash

      ora2pg -t COPY \
             -o data.sql \
             -b /tmp \
             -c ora2pg.conf
      psql -U postgres \
           -d my_pg_db \
           -f /tmp/data.sql
    


8. 정리

  • ora2pgOraclePostgreSQL 변환에 가장 널리 쓰이는 툴입니다.
  • 스키마와 데이터 모두 변환 가능하며, 대규모 데이터베이스도 대응 가능합니다.
  • 설정 파일을 통해 복잡한 이관 제어도 가능합니다.



  • 도움이 되셨으면 하단의 ❤️ 공감 버튼 부탁 드립니다. 감사합니다! 😄
  • 일부 모바일 환경에서는 ❤️ 버튼이 보이지 않습니다.

728x90
반응형

+ Recent posts