반응형
PostgreSQL 12와 ora2pg를 Linux 7 환경에서 사용할 때 발생할 수 있는 주요 문제점
PostgreSQL 12 + ora2pg 주요 이슈
1. 호환성 문제
- PostgreSQL 12는 2019년 릴리즈로 비교적 오래된 버전입니다
- ora2pg 최신 버전은 잘 지원하지만, 일부 기능 제약이 있을 수 있습니다
- PostgreSQL 12의 일부 deprecated 기능이나 변경된 문법 처리 필요
2. Linux 7 (CentOS/RHEL 7) 관련 이슈
Perl 모듈 의존성:
- ora2pg는 Perl로 작성되어 있어 여러 Perl 모듈 필요
- Linux 7의 기본 저장소에 없는 모듈이 있을 수 있음
- DBD::Oracle, DBD::Pg 등의 설치가 까다로울 수 있음
Oracle Instant Client:
Oracle과 연결하려면 Oracle Instant Client 필요
Linux 7에서 호환되는 버전 선택 필요
라이브러리 경로 설정(LD_LIBRARY_PATH) 필수
3. 주요 기술적 문제점
데이터 타입 변환:
- NUMBER → NUMERIC/INTEGER 변환 시 정밀도 이슈
- DATE → TIMESTAMP 변환 시 타임존 문제
- CLOB/BLOB → TEXT/BYTEA 변환 시 크기 제한
- VARCHAR2(4000) → VARCHAR 길이 제한 차이
시퀀스 (Sequence):
- Oracle의 시퀀스 문법과 PostgreSQL 12의 차이
- PostgreSQL 10+에서는 IDENTITY 컬럼 지원되지만 ora2pg가 이를 제대로 변환 못할 수 있음
함수/프로시저:
- PL/SQL → PL/pgSQL 자동 변환의 한계
- 패키지(Package) 개념이 PostgreSQL에 없음
- 내장 함수 차이 (예: NVL vs COALESCE, SYSDATE vs NOW())
트리거:
- :NEW, :OLD 문법 차이
- FOR EACH ROW 트리거 변환 시 로직 검증 필요
4. 성능 관련
대용량 데이터 마이그레이션:
- COPY 명령 사용 시 메모리 이슈
- 배치 크기 조정 필요 (DATA_LIMIT, BLOB_LIMIT)
- 인덱스 생성 전략 (마이그레이션 후 생성 권장)
병렬 처리:
- PARALLEL_TABLES 옵션 사용 시 서버 리소스 고려
- Linux 7의 커널 파라미터 튜닝 필요
5. PostgreSQL 12 특정 이슈
- 파티셔닝: PostgreSQL 12의 파티셔닝은 개선되었지만 Oracle의 파티셔닝과 완전히 다름
- JSON 지원: PostgreSQL 12에서 JSON 처리 개선되었으나 Oracle JSON 함수와 매핑 필요
- CTE (WITH 구문): PostgreSQL 12부터 CTE 최적화 변경 - 성능 영향 가능
6. 실무 권장 사항
# ora2pg 설정 파일 주요 체크 포인트
# 1. Oracle 연결
ORACLE_HOME=/usr/lib/oracle/19.8/client64
ORACLE_DSN=dbi:Oracle:host=hostname;sid=ORCL;port=1521
# 2. PostgreSQL 버전 명시
PG_VERSION=12
# 3. 데이터 타입 변환 커스터마이징
DATA_TYPE=NUMBER:numeric,DATE:timestamp
# 4. 스키마 변환 순서
TYPE=TABLE,SEQUENCE,VIEW,FUNCTION,PROCEDURE,TRIGGER,PACKAGE
# 5. 성능 튜닝
PARALLEL_TABLES=4
ORACLE_COPIES=2
DATA_LIMIT=10000
7. Linux 7 환경 설정
# PostgreSQL 12 저장소 추가
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# PostgreSQL 12 설치
sudo yum install -y postgresql12-server postgresql12-contrib
# ora2pg 설치
sudo yum install -y perl-DBD-Pg perl-DBD-Oracle ora2pg
추천 대응 방안
- 테스트 환경 구축: 운영 전 동일한 Linux 7 + PostgreSQL 12 환경에서 충분한 테스트
- 점진적 마이그레이션: DDL → 데이터 → 함수/프로시저 순으로 단계별 진행
- 변환 스크립트 검증: ora2pg가 생성한 SQL 파일을 반드시 수동 검토
- 롤백 계획: 마이그레이션 실패 시 복원 절차 준비
반응형
'실험실 > db이행' 카테고리의 다른 글
| postgreSQL 컨테이너로 올릴지 (0) | 2026.01.20 |
|---|---|
| 서버구축실패 요약 (0) | 2026.01.20 |
| 서버 데이터 psql insert (0) | 2026.01.16 |
| 이슈 업무범위 ddl까지 vs data 이행까지 (0) | 2026.01.15 |
| 이슈 (1) | 2026.01.15 |
댓글