마이그레이션 마법사 (데이터/스키마 마이그레이션)
데이터/스키마를 마이그레이션한다. 동종인가 이기종인가, 다운타임 허용 범위는 어떤가? 평가 → 마이그레이션 → 검증 단계로 계획한다. 먼저 여기서 cutover를 리허설한다.
무엇에서 무엇으로 마이그레이션하는가?
동종: 같은 데이터베이스 엔진(예: Oracle 19 → Oracle 23, 또는 PostgreSQL에서 다른 서버로). 이기종: 다른 엔진(예: Oracle → PostgreSQL, MySQL → SQL Server). 이기종 마이그레이션은 훨씬 많은 호환성 작업(데이터 타입, 함수, PL/SQL)이 필요하다.
- 같은 엔진, 새 서버/버전 (동종)
- 다른 엔진으로 (이기종)
- 계획 단계다. 어떻게 접근해야 하는가?
다운타임 허용 범위는 어떤가?
이에 따라 마이그레이션 방법이 결정된다. 유지보수 시간대가 있다면 가장 간단한 경로는 dump/restore다. 거의 무중단이 필요하다면 초기 데이터를 적재하고, 지속적 복제(CDC)로 동기화를 유지하며, 짧은 cutover를 수행한다.
- 유지보수 시간대가 있다 (다운타임 허용)
- 거의 무중단이 필요하다
스키마와 타입 호환성을 평가했는가?
이기종 마이그레이션에서 실제 작업은 데이터 복사가 아니라 차이 해소다: 데이터 타입(VARCHAR2↔TEXT), 함수(NVL↔COALESCE), auto-increment 값, PL/SQL ↔ PL/pgSQL, 제거되거나 다른 기능.
- 스키마/타입 차이를 매핑했다
- 아직 평가하지 않았다
먼저 호환성 평가
마이그레이션 전에 원본과 대상의 차이를 매핑한다. 이 단계를 건너뛰면 마이그레이션이 중간에 멈춘다.
오프라인 마이그레이션 (dump / restore)
가장 간단하고 신뢰할 수 있는 동종 방법: 일관된 백업을 만들고, 대상에 적재하고, 검증하고, 전환한다.
최소 다운타임 (CDC / 복제)
초기 데이터를 적재한 뒤 지속적 복제로 대상을 원본과 동기화한다. 다운타임은 짧은 cutover 동안에만 발생한다.
이기종 마이그레이션 (다른 엔진으로)
스키마를 변환하고, 데이터를 옮기고, 로직을 조정하고, 검증한다. 단계적으로 진행하며 모든 것을 한 번에 마이그레이션하지 않는다.