본문 바로가기
실험실/db이행

이슈 업무범위 ddl까지 vs data 이행까지

by 죄니안죄니 2026. 1. 15.
반응형

Ora2Pg는 “DDL만 만드는 도구”가 아니라
원래는 “DDL + 데이터 이행까지 전부 가능한 도구”다.

하지만 실무에서는 대부분 DDL과 데이터 이행을 분리해서 쓴다.

왜 그렇게 되는지, 현실 기준으로 단계별로 설명할게요.


1️⃣ Ora2Pg의 원래 정체부터 정리

Ora2Pg는 공식적으로 Oracle → PostgreSQL 마이그레이션 도구입니다.

이론적으로는 다음을 전부 할 수 있습니다.

  • 스키마 (TABLE, INDEX, SEQUENCE)
  • 제약조건 (PK, FK, UNIQUE, CHECK)
  • VIEW
  • FUNCTION / PROCEDURE
  • 데이터 이행 (COPY / INSERT)
  • 대용량 병렬 이행
  • 검증 리포트

👉 즉, DDL + DATA 둘 다 가능한 도구가 맞습니다.


2️⃣ 그런데 왜 “DDL만 쓰는 경우”가 많아질까?

이게 실무 포인트입니다.

이유 1️⃣ DDL은 “변환”, 데이터는 “이관”

  • DDL: 구조 변환 문제
  • DATA: 운영 데이터 문제

👉 성격이 완전히 다릅니다.

그래서 보통 이렇게 나눕니다.

 
DDL  → 개발/설계/검증 영역
DATA → 운영/이행/리스크 영역

이유 2️⃣ Oracle 11g 실데이터는 예외가 너무 많다

Ora2Pg가 데이터 이행을 할 때 가장 많이 터지는 것들:

  • CLOB / BLOB
  • DATE / TIMESTAMP timezone
  • CHAR vs VARCHAR2 padding
  • NUMBER(38,0) → bigint overflow
  • 깨진 데이터 (암묵적 형변환)
  • 트리거 / 시퀀스 의존 데이터

👉 DDL은 잘 나오는데, 데이터에서 계속 멈춤


이유 3️⃣ “한 방에 이행”은 실패 확률이 높다

 
ora2pg -t COPY -o data.sql

이렇게 하면:

  • 10%에서 오류
  • 다시 처음부터
  • 원인 찾기 어려움

👉 운영 데이터에서는 거의 지뢰밭


3️⃣ 그래서 실무에서 가장 많이 쓰는 패턴

✅ 패턴 A (가장 흔함, 추천)

 
1. Ora2Pg → DDL만 생성
2. DDL 수작업 정리 (PK, surrogate, FK)
3. PostgreSQL 스키마 확정
4. 데이터 이행은 별도 전략

데이터 이행은:

  • Ora2Pg (TABLE 단위)
  • SQL*Plus → CSV → COPY
  • pgloader
  • 커스텀 스크립트

✅ 패턴 B (중소 규모, 개발 DB)

 
Ora2Pg로 DDL + DATA 한 번에

조건:

  • 데이터 적음
  • 장애 허용
  • 재시도 가능
  • 운영 아님

👉 개발/테스트 DB 전용


⚠️ 패턴 C (대용량 운영 DB)

 
DDL: Ora2Pg
DATA: 전용 이행 시나리오
  • 테이블별 순서 관리
  • FK 나중에
  • 검증 쿼리 필수
  • 롤백 계획 필수

4️⃣ Ora2Pg 데이터 이행을 “그래도” 쓰는 경우

다음 조건이면 Ora2Pg 데이터 이행도 현실적입니다.

  • 테이블 수 적음 (100개 이하)
  • LOB 거의 없음
  • NUMBER 단순
  • 트리거 의존 없음
  • 다운타임 허용

이때는 보통:

 
ora2pg -t TABLE -o schema.sql
ora2pg -t COPY  -o data.sql

또는

 
ora2pg -t TABLE,COPY

5️⃣ 실무에서 가장 안전한 권장 흐름 (정리)

⭐ Oracle 11g → PostgreSQL 기준 베스트 프랙티스

1️⃣ Ora2Pg로 DDL만 생성
2️⃣ PK / surrogate 전략 확정
3️⃣ FK는 일단 제거
4️⃣ PostgreSQL에 스키마 배포
5️⃣ 데이터 이행 (테이블 단위)
6️⃣ 데이터 검증
7️⃣ FK / INDEX 복구

👉 DDL과 DATA를 분리하는 게 안정성 최고


6️⃣ “Ora2Pg 하나로 끝내면 안 되냐?”에 대한 솔직한 답

  • 이론적으로 가능
  • 데모에서는 성공
  • 운영에서는 거의 항상 추가 작업 발생

👉 그래서 실무에서는:

Ora2Pg는 “번역기”로 쓰고
데이터 이행은 “이사 계획”으로 따로 짠다


한 문장 요약

Ora2Pg는 DDL + 데이터 이행 모두 가능하지만,
운영 마이그레이션에서는 DDL만 사용하고
데이터는 별도 이행 전략을 쓰는 게 일반적이다.

반응형

'실험실 > db이행' 카테고리의 다른 글

서버환경 이슈  (0) 2026.01.20
서버 데이터 psql insert  (0) 2026.01.16
이슈  (1) 2026.01.15
실행모델, Job구조, 상태모델, 보안모델, 결과물 스펙 등 결정사항  (0) 2026.01.14
핵심 유즈케이스  (0) 2026.01.14

댓글