Oracle to PostgreSQL 데이터베이스 마이그레이션: GitHub와 DevOps를 활용한 효율적인 전환 방법
작성자 비브호르 쿠마르 2024년 8월 7일
이 가이드에서는 Oracle에서 PostgreSQL로 데이터베이스를 마이그레이션할 때 DevOps와 GitHub를 활용하는 방법을 살펴봅니다. 스키마 변환과 버전 관리부터 자동 오류 감지, 데이터 검증, 성능 조정, 프로덕션 전환까지 전체 마이그레이션 과정을 단계별로 설명합니다.
많은 조직이 Oracle에서 강력하고 비용 효율적인 오픈 소스 PostgreSQL로 마이그레이션하고 있습니다. EDB Postgres Advanced Server(EPAS)는 Oracle 호환성 기능을 통해 이러한 전환을 원활하게 지원합니다. 그러나 대규모 데이터베이스 마이그레이션을 성공적으로 수행하려면 신중한 계획과 적절한 도구가 필요합니다.
이 글에서는 GitHub를 중심으로 DevOps 방식을 적용하는 포괄적인 마이그레이션 전략과 함께, 프로세스를 간소화하는 EDB 도구를 소개합니다.
Oracle to PostgreSQL 마이그레이션을 위한 초기 스키마 변환
다음 워크플로는 EDB 마이그레이션 툴킷과 마이그레이션 포털을 기반으로 합니다.
- 평가 및 식별: 마이그레이션 포털 또는 마이그레이션 툴킷으로 Oracle 스키마를 분석해 잠재적인 비호환 요소와 수동 조정이 필요한 부분을 확인합니다.
- 스키마 분석: 대규모 스키마를 관리 가능한 SQL 스크립트(Tables.sql, Packages.sql, Procedures.sql 등)로 분할해 각 영역을 집중적으로 변환합니다.
- 버전 관리 설정: GitHub 저장소를 생성하고 참조용 초기 Oracle 스키마를 “마스터” 브랜치에 저장합니다.
- 변환용 브랜치 생성: 마이그레이션 포털에서 생성된 변환 스크립트를 작업할 수 있도록 “마스터”에서 별도의 브랜치를 생성합니다. 이를 통해 변경 사항을 모듈 단위로 관리할 수 있습니다.
GitHub를 활용한 마이그레이션 스키마 관리
데이터베이스 마이그레이션이 진행되는 동안 GitHub는 스키마 변경 사항을 관리하는 중앙 허브 역할을 합니다.
- 브랜치를 통한 작업 분리: 특정 스키마 수정 작업마다 브랜치를 생성합니다. 변경 사항을 테스트하고 개선하는 동안 기본 개발 환경을 안정적으로 유지할 수 있습니다.
- 협업 및 변경 이력 추적: GitHub의 버전 관리 기능을 활용하면 팀 구성원이 원활하게 협업하고 모든 스키마 조정 이력을 투명하게 추적할 수 있습니다.
GitHub Actions를 활용한 자동 오류 감지
오류 감지와 품질 관리 과정에 자동화를 적용하면 변환 코드의 문제를 보다 체계적으로 확인할 수 있습니다.
- GitHub Actions: 코드가 저장소에 푸시될 때마다 자동 검사를 실행하도록 GitHub Actions를 설정합니다.
- SPL 검사: EPAS의 “SPL 검사 확장 프로그램”을 GitHub Actions에 통합해 SQL 및 PL/SQL 코드에서 Oracle 호환성 문제를 분석합니다.
GitHub 릴리스를 활용한 호환성 검사
데이터베이스 마이그레이션 과정에 추가 검사 지점을 마련하기 위해 GitHub 릴리스 기능을 활용합니다.
- 마일스톤 릴리스: 스키마의 주요 부분이 변환될 때마다 GitHub 저장소에 릴리스를 생성합니다.
- 호환성 재평가: 각 릴리스를 EDB 마이그레이션 포털에 업로드합니다. 마이그레이션 포털은 변환된 스키마를 다시 분석하고 EPAS에 대한 호환성 점수를 제공합니다. 이를 통해 진행 상황을 추적하고 남은 문제를 해결할 수 있습니다.
컨테이너 기반 데이터 검증
GitHub Actions를 확장하면 변환된 프로시저와 패키지가 예상대로 작동하는지 자동으로 검증할 수 있습니다.
- 컨테이너화된 테스트: GitHub Actions에서 EPAS와 샘플 데이터가 포함된 도커 컨테이너를 구동할 수 있습니다. 이 컨테이너는 데이터베이스 기능을 검증하기 위한 격리된 테스트 환경으로 활용됩니다.
ora2pg와 plpgsql_check를 활용한 성능 조정 및 검증
기능 호환성뿐만 아니라 마이그레이션된 데이터베이스의 성능도 함께 점검해야 합니다.
- CI/CD 통합: EPAS “DBMS_PROFILER” 도구를 지속적 통합 및 배포(CI/CD) 파이프라인에 통합하면 성능 데이터를 수집하고 마이그레이션된 데이터베이스의 병목 현상을 파악할 수 있습니다.
ora2pg와 plpgsql_check를 사용한 프레임워크 조정
ora2pg를 활용하면 이러한 원칙과 워크플로를 Oracle에서 PostgreSQL로 마이그레이션하는 과정에 적용할 수 있습니다. 주요 단계는 다음과 같습니다.
- ora2pg를 사용한 초기 변환: ora2pg를 사용해 Oracle에서 PostgreSQL로 초기 스키마와 데이터를 변환합니다.
- plpgsql_check를 통한 호환성 검사: “plpgsql_check” Postgres 확장 프로그램을 설치합니다. 이 확장 프로그램은 PL/pgSQL 코드의 호환성과 정확성을 검증하는 기능과 분석 도구를 제공합니다. 자동 검사를 위해 ora2pg 출력 결과와 함께 GitHub Actions에 통합합니다.
- GitHub를 활용한 관리 및 자동화: 버전 관리, 브랜치 운영 및 GitHub Actions를 활용한 자동화의 핵심 이점은 ora2pg 기반 마이그레이션에도 동일하게 적용됩니다.
프로덕션 롤아웃 및 데이터베이스 전환
스키마 변환과 성능 최적화, 철저한 테스트를 완료했다면 프로덕션 롤아웃을 진행할 수 있습니다.
- 프로덕션 환경 설정: 아키텍처, 백업 및 복구 전략, 관찰 가능성 및 모니터링 도구에 관한 모범 사례를 준수해 프로덕션 준비가 완료된 Postgres 환경을 구축합니다.
- 변경 데이터 캡처(CDC): CDC 솔루션(EDB Replication Server 등)을 구현해 Oracle에서 새로운 PostgreSQL 데이터베이스로 데이터를 지속적으로 동기화합니다. 이를 통해 전환 작업 중 다운타임을 최소화할 수 있습니다.
- 애플리케이션 전환: 데이터 마이그레이션이 완료되면 애플리케이션이 PostgreSQL 데이터베이스를 가리키도록 전환합니다.
- 역복제: PostgreSQL에서 Oracle로 복제를 설정합니다. 이는 전환 후 예기치 않은 문제가 발생할 경우를 대비한 안전장치 역할을 합니다.
- 모니터링 및 폐기: 새로운 PostgreSQL 환경을 몇 주 동안 면밀히 모니터링합니다. 모든 과정이 안정적으로 진행되면 레거시 Oracle 데이터베이스를 폐기할 수 있습니다.
참고: 이 마이그레이션 프레임워크는 데이터베이스 영역에 초점을 맞추고 있습니다. 개발자와 DBA는 애플리케이션 전환, 기능 테스트 및 QA 프로세스를 병행해 통합해야 하며, 이상적으로는 성능 벤치마크 단계 이전에 통합해야 합니다.
DevOps 기반 Oracle to PostgreSQL 마이그레이션의 핵심
이 데이터베이스 마이그레이션 전략은 DevOps 원칙과 관련 도구를 기반으로 Oracle에서 PostgreSQL로 전환하는 체계적인 경로를 제공합니다. 자동화와 협업, 정기적인 호환성 검사, 반복적인 개선, 신중한 프로덕션 롤아웃 계획을 적용하면 전체 마이그레이션 과정을 효율적으로 관리할 수 있습니다.
Oracle to PostgreSQL 마이그레이션 FAQ
Oracle에서 PostgreSQL로 마이그레이션할 때 GitHub는 어떤 역할을 하나요?
GitHub는 Oracle 원본 스키마와 PostgreSQL 변환 스크립트를 버전별로 관리하는 중앙 저장소 역할을 합니다. 브랜치와 변경 이력을 활용하면 스키마 수정 사항을 분리해 테스트하고 팀 구성원 간의 협업 과정을 투명하게 관리할 수 있습니다.
Oracle 스키마의 PostgreSQL 호환성은 어떻게 검사하나요?
EDB 마이그레이션 포털 또는 마이그레이션 툴킷으로 Oracle 스키마를 분석해 비호환 요소와 수동 조정이 필요한 부분을 확인할 수 있습니다. EPAS를 사용하는 경우 SPL 검사 확장 프로그램을 GitHub Actions에 통합해 SQL 및 PL/SQL 코드의 Oracle 호환성 문제를 자동으로 검사할 수 있습니다.
ora2pg와 plpgsql_check는 마이그레이션에서 어떻게 활용하나요?
ora2pg는 Oracle의 스키마와 데이터를 PostgreSQL로 초기에 변환하는 데 활용할 수 있습니다. plpgsql_check는 변환된 PL/pgSQL 코드의 호환성과 정확성을 검사하며, ora2pg의 출력 결과와 함께 GitHub Actions에 통합해 자동 검사를 수행할 수 있습니다.
GitHub Actions로 마이그레이션 테스트를 자동화할 수 있나요?
GitHub Actions를 설정하면 변환 코드가 저장소에 푸시될 때마다 자동 검사를 실행할 수 있습니다. EPAS와 샘플 데이터가 포함된 도커 컨테이너를 구동해 변환된 프로시저와 패키지가 예상대로 작동하는지도 격리된 환경에서 검증할 수 있습니다.
Oracle에서 PostgreSQL로 전환할 때 다운타임을 줄이는 방법은 무엇인가요?
변경 데이터 캡처(CDC) 솔루션을 구현하면 Oracle의 데이터를 새로운 PostgreSQL 데이터베이스로 지속적으로 동기화할 수 있습니다. 본문에서는 EDB Replication Server 등을 활용하는 방법을 제시하며, 전환 후에는 PostgreSQL 환경을 충분히 모니터링한 뒤 기존 Oracle 데이터베이스의 폐기 여부를 결정해야 합니다.
본문: Streamline Oracle to Postgres Migration with GitHub and DevOps
EDB 영업 기술 문의: 02-501-5113