확장을 사용하여 Oracle 네이티브 함수를 PostgreSQL로 마이그레이션 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

확장을 사용하여 Oracle 네이티브 함수를 PostgreSQL로 마이그레이션

작성자: Pinesh Singal(AWS)

환경: PoC 또는 파일럿

소스: 데이터베이스: 관계형

대상: Amazon RDS PostgreSQL

R 타입: 리아키텍트

워크로드: Oracle, 오픈 소스

기술: 마이그레이션, 데이터베이스

AWS 서비스: Amazon EC2, Amazon RDS

요약

이 마이그레이션 패턴은 aws_oracle_extorafce 확장을 Postgre step-by-step() 기본 기본 제공 코드로 수정하여 Oracle 데이터베이스 인스턴스용 Amazon Relational Database Service(Amazon RDSpsql)를 Amazon RDS for PostgreSQL 또는 Amazon Aurora SQL 호환 에디션 데이터베이스로 마이그레이션하는 방법에 대한 SQL 지침을 제공합니다. 이렇게 하면 처리 시간이 절감됩니다.

이 패턴은 트랜잭션 수가 많은 수 테라바이트의 Oracle 소스 데이터베이스에 대해 다운타임이 없는 오프라인 수동 마이그레이션 전략을 설명합니다.

마이그레이션 프로세스는 aws_oracle_extorafce 확장과 함께 AWS Schema Conversion Tool(AWS SCT)을 사용하여 Amazon RDS for Oracle 데이터베이스 스키마를 Amazon RDS for PostgreSQL 또는 Aurora PostgreSQL 호환 데이터베이스 스키마로 변환합니다. 그런 다음 코드가 PostgreSQL에서 지원하는 기본 psql 기본 제공 코드로 수동으로 변경됩니다. 이는 확장 호출이 PostgreSQL 데이터베이스 서버의 코드 처리에 영향을 미치고 모든 확장 코드가 완전히 수신되지 않거나 PostgreSQL 코드와 호환되지 않기 때문입니다.

이 패턴은 주로 SQL 및 확장aws_oracle_ext과를 사용하여 SCT AWS 코드를 수동으로 마이그레이션하는 데 중점을 둡니다orafce. 이미 사용된 확장을 기본 PostgreSQL(psql) 내장으로 변환합니다. 그런 다음 확장 기능에 대한 모든 참조를 제거하고 그에 따라 코드를 변환합니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 AWS 계정 

  • 운영 체제(Windows 또는 Mac) 또는 Amazon EC2 인스턴스(업 및 실행 중) 

  • Orafce

제한 사항

aws_oracle_ext 또는 orafce 확장을 사용하는 모든 Oracle 함수가 기본 PostgreSQL 함수로 변환될 수 있는 것은 아닙니다. PostgreSQL 라이브러리로 컴파일하려면 수동 재작업이 필요할 수 있습니다.

AWS SCT 확장을 사용할 때의 단점 중 하나는 결과를 실행하고 가져오는 성능이 느리다는 것입니다. 첨부된 문서의 성능 비교 확인 섹션에 설명된 대로 Oracle SYSDATE 함수를 3개의 코드(aws_oracle_ext, orafcepsql 기본값) 간에 PostgreSQL 함수로 마이그레이션하는 간단한 PostgreWord EXPLAIN 계획(명세서 실행 계획)에서 비용을 이해할 수 있습니다.SQL NOW()

제품 버전

  • 소스:Amazon RDS for Oracle Database 10.2 이상(10.x의 경우), 11g(11.2.0.3.v1 이상) 및 Enterprise Edition, Standard Edition, Standard Edition 1 및 Standard Edition 2의 경우 최대 12.2, 18c 및 19c(이상)

  • 대상: Amazon RDS for PostgreSQL 또는 Aurora PostgreSQL 호환 데이터베이스 9.4 이상(9.x용), 10.x, 11.x, 12.x, 13.x 및 14.x(및 이후)

  • AWS SCT: 최신 버전(이 패턴은 1.0.632로 테스트됨)

  • Oracle: 최신 버전(이 패턴은 3.9.0에서 테스트됨)

아키텍처

소스 기술 스택  

  • 버전 12.1.0.2.v18의 Amazon RDS for Oracle 데이터베이스 인스턴스

대상 기술 스택  

  • 버전 11.5의 Amazon RDS for PostgreSQL 또는 Aurora PostgreSQL 호환 데이터베이스 인스턴스

데이터베이스 마이그레이션 아키텍처

다음 다이어그램은 소스 Oracle과 대상 PostgreSQL 데이터베이스 간의 데이터베이스 마이그레이션 아키텍처를 나타냅니다. 아키텍처에는 AWS Cloud, 가상 프라이빗 클라우드(VPC), 가용 영역, 프라이빗 서브넷, Amazon RDS for Oracle 데이터베이스, AWS SCT, Amazon RDS for PostgreSQL 또는 Aurora PostgreSQL 호환 데이터베이스, Oracle용aws_oracle_ext 확장( 및 orafce), 구조화된 쿼리 언어(SQL) 파일이 포함됩니다.

프로세스는 다음 목록에 설명되어 있습니다.
  1. Amazon RDS for Oracle DB 인스턴스(소스 DB)를 시작합니다.

  2. aws_oracle_extorafce 확장 팩과 함께 SCT AWS를 사용하여 소스 코드를 Oracle에서 PostreSQL로 변환합니다.

  3. 변환은 PostgreSQL에서 지원하는 마이그레이션된 .sql 파일을 생성합니다.

  4. 변환되지 않은 Oracle 확장 코드를 PostgreSQL(psql) 코드로 수동으로 변환합니다.

  5. 수동 변환은 PostgreSQL에서 지원하는 변환된 .sql 파일을 생성합니다.

  6. Amazon RDS for PostgreSQL DB 인스턴스(대상 DB)에서 이러한 .sql 파일을 실행합니다.

도구

도구

AWS 서비스

  • AWS SCT - AWS Schema Conversion Tool(AWS SCT)는 기존 데이터베이스 스키마를 한 데이터베이스 엔진에서 다른 데이터베이스 엔진으로 변환합니다. 관계형 온라인 트랜잭션 처리(OLTP) 스키마 또는 데이터 웨어하우스 스키마를 변환할 수 있습니다. 변환된 스키마는 Amazon RDS for MySQL DB 인스턴스, Amazon Aurora DB 클러스터, Amazon RDS for PostgreSQL DB 인스턴스 또는 Amazon Redshift 클러스터에 적합합니다. 변환된 스키마는 Amazon EC2 인스턴스의 데이터베이스와 함께 사용하거나 Amazon S3 버킷의 데이터로 저장할 수도 있습니다.

    AWS SCT는 소스 데이터베이스의 데이터베이스 스키마를 대상 Amazon RDS 인스턴스와 호환되는 형식으로 자동으로 변환하는 프로젝트 기반 사용자 인터페이스를 제공합니다. 

    AWS SCT를 사용하여 Oracle 소스 데이터베이스에서 앞서 나열된 대상으로 마이그레이션할 수 있습니다. AWS SCT를 사용하여 스키마, 뷰, 저장된 프로시저 및 함수와 같은 소스 데이터베이스 객체 정의를 내보낼 수 있습니다. 

    AWS SCT를 사용하여 데이터를 Oracle에서 Amazon RDS for PostgreSQL 또는 Amazon Aurora PostgreSQL 호환 에디션으로 변환할 수 있습니다. 

    이 패턴에서는 SCT AWS를 사용하여 확장 aws_oracle_ext 및를 사용하여 Oracle 코드를 PostgreSQL로 변환 및 마이그레이션orafce하고 확장 코드를 psql 기본 또는 기본 내장 코드로 수동으로 마이그레이션합니다.

  • AWS SCT 확장 팩은 객체를 대상 데이터베이스로 변환할 때 필요한 소스 데이터베이스에 있는 함수를 에뮬레이션하는 추가 모듈입니다. AWS SCT 확장 팩을 설치하려면 먼저 데이터베이스 스키마를 변환해야 합니다.

    데이터베이스 또는 데이터 웨어하우스 스키마를 변환할 때 AWS SCT는 대상 데이터베이스에 스키마를 추가합니다. 이 스키마는 변환된 스키마를 대상 데이터베이스에 쓸 때 필요한 소스 데이터베이스의 SQL 시스템 함수를 구현합니다. 이 추가 스키마를 확장 팩 스키마라고 합니다.

    OLTP 데이터베이스의 확장 팩 스키마는 소스 데이터베이스에 따라 이름이 지정됩니다. Oracle 데이터베이스의 경우 확장 팩 스키마는 AWS_ORACLE_EXT입니다.

기타 도구

  • Orafce – Orafce는 Oracle 호환 함수, 데이터 유형 및 패키지를 구현하는 모듈입니다. 누구나 사용할 수 있도록 Berkeley 소스 배포(BSD) 라이선스가 포함된 오픈 소스 도구입니다. orafce 모듈은 PostgreSQL에 구현된 Oracle 함수가 많기 때문에 Oracle에서 PostgreSQL로 마이그레이션하는 데 유용합니다.

코드

SCT AWS 확장 코드 사용을 방지하기 위해 Oracle에서 PostgreSQL로 일반적으로 사용되고 마이그레이션된 모든 코드 목록은 첨부된 문서를 참조하세요.

에픽

작업설명필요한 기술

Oracle 데이터베이스 인스턴스를 생성합니다.

Amazon RDS 콘솔에서 Amazon RDS for Oracle 또는 Aurora PostgreSQL 호환 데이터베이스 인스턴스를 생성합니다.

일반 AWS, DBA

보안 그룹을 구성합니다.

인바운드 및 아웃바운드 보안 그룹을 구성합니다.

일반 AWS

데이터베이스를 생성합니다.

필요한 사용자 및 스키마로 Oracle 데이터베이스를 생성합니다.

일반 AWS, DBA

객체를 생성합니다.

객체를 생성하고 스키마에 데이터를 삽입합니다.

DBA
작업설명필요한 기술

PostgreSQL 데이터베이스 인스턴스를 생성합니다.

Amazon RDS RDS 콘솔에서 Amazon Word for PostgreSQL 또는 Amazon Aurora PostgreSQL 데이터베이스 인스턴스를 생성합니다.

일반 AWS, DBA

보안 그룹을 구성합니다.

인바운드 및 아웃바운드 보안 그룹을 구성합니다.

일반 AWS

데이터베이스를 생성합니다.

필요한 사용자와 스키마를 사용하여 PostgreSQL 데이터베이스를 생성합니다.

일반 AWS, DBA

확장 기능을 확인합니다.

PostgreSQL 데이터베이스에 aws_oracle_ext 및가 올바르게 설치 및 구성orafce되었는지 확인합니다.

DBA

PostgreSQL 데이터베이스를 사용할 수 있는지 확인합니다.

PostgreSQL 데이터베이스가 실행 중인지 확인합니다.

DBA
작업설명필요한 기술

AWS SCT를 설치합니다.

최신 버전의 AWS SCT를 설치합니다.

DBA

AWS SCT를 구성합니다.

Oracle() 및 SQLJDBCojdbc8.jar) 드라이버를 사용하여 AWS SCT를 구성합니다postgresql-42.2.5.jar.

DBA

AWS SCT 확장 팩 또는 템플릿을 활성화합니다.

AWS SCT 프로젝트 설정에서 Oracle 데이터베이스 스키마에 대한 aws_oracle_extorafce 확장을 사용하여 내장 함수 구현을 활성화합니다.

DBA

스키마를 변환합니다.

AWS SCT에서 스키마 변환을 선택하여 스키마를 Oracle에서 PostgreSQL로 변환하고 .sql 파일을 생성합니다.

DBA
작업설명필요한 기술

코드를 수동으로 변환합니다.

첨부 문서에 설명된 대로 확장 지원 코드의 각 줄을 psql 기본 내장 코드로 수동으로 변환합니다. 예를 들면 AWS_ORACLE_EXT.SYSDATE() 또는 ORACLE.SYSDATE()NOW()로 변경합니다.

DBA

코드 유효성 검사

(선택 사항) PostgreSQL 데이터베이스에서 임시로 실행하여 각 코드 줄을 검증합니다.

DBA

PostgreSQL 데이터베이스에 객체를 생성합니다.

PostgreSQL 데이터베이스에서 객체를 생성하려면 AWSSCT에서 생성되고 이전 두 단계에서 수정된 .sql 파일을 실행합니다.

DBA

관련 리소스

추가 정보

자세한 내용은 첨부 문서의 코드를 수동으로 변환하기 위한 세부 명령어(구문 및 예제 포함)를 따르십시오.

첨부

이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.