Oracle에서 PostgreSQL로의 변환 설정 이해 - AWS 데이터베이스 마이그레이션 서비스

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

Oracle에서 PostgreSQL로의 변환 설정 이해

DMS 스키마 변환의 Oracle에서 PostgreSQL로의 변환 설정에는 다음이 포함됩니다.

  • AWS DMS 는 Postgre 에서 Oracle 구체화된 뷰를 테이블 또는 구체화된 뷰로 변환할 수 있습니다SQL. 구체화된 뷰의 경우, 소스 구체화된 뷰를 변환하는 방법을 선택합니다.

  • 소스 Oracle 데이터베이스는 ROWID 의사 열을 사용할 수 있습니다. PostgreSQL는 유사한 기능을 지원하지 않습니다. DMS 스키마 변환은 bigint 또는 character varying 데이터 유형을 사용하여 변환된 코드에서 ROWID 의사열을 에뮬레이션할 수 있습니다. 이렇게 하려면 빅인트 데이터 유형 사용을 선택하여 의사열ROWID을 에뮬레이션하거나 문자 가변 데이터 유형을 사용하여 행 ID 에 대한 의사열ROWID을 에뮬레이션합니다.

    소스 Oracle 코드에서 ROWID 의사 열을 사용하지 않는 경우, 생성 안 함을 선택합니다. 이 경우, 변환된 코드는 더 빠르게 작동합니다.

  • 소스 Oracle 코드에는 PostgreSQL에서 지원하지 않는 파라미터가 있는 TO_CHARTO_DATE, 및 TO_NUMBER 함수가 포함될 수 있습니다. 기본적으로 DMS Schema Conversion은 변환된 코드에서 이러한 파라미터의 사용을 에뮬레이션합니다.

    소스 Oracle 코드에 PostgreSQL에서 지원되지 않는 파라미터가 없는 경우 기본 Postgre TO_CHARTO_DATE, 및 TO_NUMBER 함수를 사용할 수 있습니다SQL. 이 경우, 변환된 코드는 더 빠르게 작동합니다. 이렇게 하려면 다음 값을 선택합니다.

    • 기본 PostgreSQL TO_CHAR 함수 사용

    • 기본 PostgreSQL TO_DATE 함수 사용

    • 기본 PostgreSQL TO_NUMBER 함수 사용

  • 데이터베이스와 애플리케이션은 서로 다른 시간대에 실행할 수 있습니다. 기본적으로 DMS 스키마 변환은 변환된 코드의 시간대를 에뮬레이션합니다. 하지만 데이터베이스와 애플리케이션이 동일한 시간대를 사용하는 경우에는 이 에뮬레이션이 필요하지 않습니다. 이 경우, 데이터베이스와 애플리케이션이 동일한 시간대를 사용하는 경우 변환된 코드의 성능 개선을 선택합니다.

  • 변환된 코드의 시퀀스를 계속 사용하려면 변환된 시퀀스를 소스 측에서 생성된 마지막 값으로 채우기를 선택합니다.

  • 경우에 따라 차이는 있겠지만 소스 Oracle 데이터베이스는 NUMBER 데이터 유형의 기본 키 또는 외래 키 열에 정수 값만 저장할 수 있습니다. 이러한 경우 는 이러한 열을 BIGINT 데이터 유형으로 변환할 수 AWS DMS 있습니다. 이 방식을 적용하면 변환된 코드의 성능이 향상됩니다. 이렇게 하려면 NUMBER 데이터 유형의 기본 및 외부 키 열을 BIGINT 데이터 유형 으로 변환을 선택합니다. 데이터 손실을 방지하려면 소스에서 이러한 열에 부동 소수점 값이 포함되지 않도록 해야 합니다.

  • 소스 코드에서 비활성화된 트리거와 제약 조건을 건너뛰려면 활성 트리거 및 제약 조건만 변환을 선택합니다.

  • DMS 스키마 변환을 사용하여 동적 이라고 하는 문자열 변수를 변환할 수 있습니다SQL. 데이터베이스 코드는 이러한 문자열 변수의 값을 변경할 수 있습니다. 가 AWS DMS 항상 이 문자열 변수의 최신 값을 변환하도록 하려면 호출된 루틴 에서 생성된 동적 SQL 코드 변환을 선택합니다.

  • PostgreSQL 버전 10 이하에서는 절차를 지원하지 않습니다. Postgre 에서 프로시저를 사용하는 방법을 잘 모르는 경우 Oracle 프로시저를 PostgreSQL 함수로 변환할 SQL AWS DMS 수 있습니다. 이렇게 하려면 프로시저를 함수로 변환을 선택합니다.

  • 확장 팩에 특정 함수를 추가하면 발생한 작업 항목에 관한 추가 정보를 볼 수 있습니다. 이렇게 하려면 사용자 정의 예외를 발생시키는 확장 팩 함수 추가를 선택합니다. 그런 다음, 사용자 정의 예외가 발생하도록 심각도 수준을 선택합니다. 소스 데이터베이스 객체를 변환한 후에는 확장 팩 스키마를 적용해야 합니다. 확장 팩에 관한 자세한 내용은 확장 팩 사용을 참조하세요.

  • 소스 Oracle 데이터베이스에는 자동으로 생성된 이름과 함께 제약 조건이 포함될 수 있습니다. 소스 코드에서 이러한 이름을 사용하는 경우, 시스템 생성 제약 조건의 이름 유지를 선택해야 합니다. 소스 코드에서 이러한 제약 조건을 사용하지만 이름을 사용하지 않는 경우 이 옵션을 선택 해제하여 변환 속도를 높이십시오.

  • 소스 및 대상 데이터베이스가 서로 다른 시간대에서 실행되는 경우, SYSDATE 내장 Oracle 함수를 에뮬레이션하는 함수는 소스 함수와 비교해 다른 값을 반환합니다. 소스 함수와 대상 함수가 동일한 값을 반환하도록 하려면 소스 데이터베이스의 시간대 설정을 선택합니다.

  • orafce 확장의 함수를 변환된 코드에 사용할 수 있습니다. 이렇게 하려면 Oracle 내장 루틴에서 사용할 함수를 선택하십시오. orafce에 대한 자세한 내용은 의 orafce를 참조하세요 GitHub.