View a markdown version of this page

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

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

Oracle에서 PostgreSQL로 변환 설정

소스가 Oracle이고 대상이 Amazon RDS for PostgreSQL 또는 Amazon Aurora PostgreSQL인 경우 다음 설정이 적용됩니다. AWS Management Console 또는 ModifyConversionConfiguration API 작업을 사용하여 이러한 설정을 구성할 수 있습니다.

이 주제에서는 Oracle에서 PostgreSQL로의 변환 경로와 관련된 설정을 다룹니다. DMS Schema Conversion은 이러한 설정 외에도 변환된 SQL의 작업 항목 설명에 대한 심각도 수준과 변환에 생성형 AI를 사용하는 옵션 등 모든 소스 및 대상 페어에 적용되는 설정을 제공합니다. 이러한 설정은 단원을 참조하십시오공통 변환 설정.

API 또는 AWS CLI를 사용하는 경우 섹션 이름 , ORACLE_TO_POSTGRESQL ORACLE_TO_POSTGRESQL_14또는 아래에 변환 경로 설정을 지정합니다ORACLE_TO_POSTGRESQL_15. 버전이 지정된 세 섹션 모두 동일한 키를 허용합니다. 프로젝트에서 사용하는 섹션 이름을 찾으려면 먼저 DescribeConversionConfiguration을 호출하고 응답에 있는 섹션만 업데이트합니다.

각 설정은 AWS Management Console 레이블 뒤에 괄호 안에 API 및 AWS CLI 파라미터 이름이 표시됩니다. API 또는 AWS CLI를 사용하여 설정을 구성할 때 파라미터 이름을 사용합니다. 설정은에 표시된 것과 동일한 순서로 나열됩니다 AWS Management Console.

대상 엔진 버전(ORACLE_TO_POSTGRESQL_target_engine_version)

대상 데이터베이스의 엔진 버전을 선택합니다. 이 설정은 DMS Schema Conversion이 변환 대상으로 하는 PostgreSQL 메이저 버전 기능 세트이며 DMS Schema Conversion이 적용되는 버전 관리 설정 섹션(ORACLE_TO_POSTGRESQL_14 또는 ORACLE_TO_POSTGRESQL_15)을 결정합니다. 값은 PostgreSQL 15 이상 버전의 기능을 15 대상으로 하고 PostgreSQL 14의 기능을 14 대상으로 하므로 대상 데이터베이스는 선택한 값보다 이후 버전(예: PostgreSQL 16 대상의 경우 값)15을 실행할 수 있습니다. 이 페이지의 다른 설정과 달리이 설정은 변환 경로 섹션에 저장되지 않습니다. 대신 다음 예제와 같이 최상위 Conversion version 섹션에 저장됩니다.

{ "Conversion version": { "ORACLE_TO_POSTGRESQL_target_engine_version": "15" } }

유형: 문자열(14 | 15)

기본값: 15

구체화된 뷰(MaterializedViewConvert)

DMS Schema Conversion이 대상에 대한 Oracle 구체화된 뷰를 변환하는 방법을 지정합니다.

API/CLI 값 대상에 대한 결과
TABLE DMS Schema Conversion은 동일한 열로 일반 테이블을 생성합니다. 수동으로 또는 복제 도구를 사용하여 새로 고침을 관리할 때 사용합니다.
MATERIALIZED_VIEW DMS Schema Conversion은 PostgreSQL을 생성합니다MATERIALIZED VIEW. 대상이를 지원할 때 사용합니다REFRESH MATERIALIZED VIEW.

유형: 문자열(TABLE | MATERIALIZED_VIEW)

기본값: TABLE

행 ID 생성(GenerateRowId)

소스 Oracle 데이터베이스는 ROWID 의사 열을 사용할 수 있습니다. PostgreSQL에서는 유사한 기능을 지원하지 않습니다. 이 설정은 DMS Schema Conversion이 변환된 코드에서 ROWID 의사 열을 에뮬레이션할지 여부와 DMS Schema Conversion이 에뮬레이션에 사용하는 데이터 유형을 지정합니다.

콘솔 레이블 API/CLI 값 동작
생성 안 함 false DMS Schema Conversion은 ROWID 의사 열을 에뮬레이션하지 않고 참조를 작업 항목으로 남깁니다. 소스 Oracle 코드에서를 사용하지 않는 경우이 옵션을 사용합니다ROWID. 변환된 코드는 더 빠르게 실행됩니다.
bigint 데이터 형식을 사용하여 ROWID 가상 열 에뮬레이션 true DMS Schema Conversion은 bigint 데이터 형식을 사용하여 변환된 코드에서 ROWID 의사 열을 에뮬레이션합니다.
문자 가변 데이터 형식을 사용하여 ROWID 가상 열을 에뮬레이션합니다. GENERATE_AS_CHARACTER_DOMAIN_TYPE DMS Schema Conversion은 character varying 데이터 형식을 사용하여 변환된 코드에서 ROWID 의사 열을 에뮬레이션합니다.

유형: 문자열(enum)

기본값: false

코드

소스 Oracle 코드와 관련된 변환 설정을 선택합니다.

NUMBER 데이터 형식의 열에 최적화된 데이터 형식 매핑 사용(UseOptimizedMappingForNumberConversion)

DMS Schema Conversion이 정밀도와 규모를 기반으로 각 Oracle NUMBER 열을 가장 적합한 숫자 데이터 유형에 매핑할지 여부를 지정합니다.

  • true - DMS Schema Conversion은 정밀도와 규모에 따라 각 NUMBER 열을 가장 구체적인 PostgreSQL 숫자 유형(예: , SMALLINT INTEGER또는 BIGINT)에 매핑합니다.

  • false - DMS Schema Conversion은 모든 NUMBER 열을에 매핑합니다NUMERIC.

유형: 부울(true | false)

기본값: true

네이티브 PostgreSQL TO_CHAR 함수 사용(ToCharFunctionOracle)

DMS Schema Conversion이 변환된 코드에서 Oracle TO_CHAR 함수를 에뮬레이션할지 여부를 지정합니다.

  • false - DMS Schema Conversion은 변환된 코드에서 Oracle TO_CHAR 동작을 에뮬레이션합니다.

  • true - DMS Schema Conversion은 네이티브 PostgreSQL TO_CHAR 함수로 변환TO_CHAR하고 TO_NCHAR 호출합니다. 형식 문자열이 PostgreSQL과 호환되는 경우 에뮬레이션을 방지하려면이 옵션을 선택합니다.

유형: 부울(true | false)

기본값: false

네이티브 PostgreSQL TO_DATE 함수 사용(ToDateFunctionOracle)

DMS Schema Conversion이 변환된 코드에서 Oracle TO_DATE 함수를 에뮬레이션할지 여부를 지정합니다.

  • false - DMS Schema Conversion은 변환된 코드에서 Oracle TO_DATE 동작을 에뮬레이션합니다.

  • true - DMS Schema Conversion은 TO_DATE 호출을 네이티브 PostgreSQL TO_DATE 함수로 변환합니다.

유형: 부울(true | false)

기본값: false

네이티브 PostgreSQL TO_NUMBER 함수 사용(ToNumber)

DMS Schema Conversion이 변환된 코드에서 Oracle TO_NUMBER 함수를 에뮬레이션할지 여부를 지정합니다.

  • false - DMS Schema Conversion은 변환된 코드에서 Oracle TO_NUMBER 동작을 에뮬레이션합니다.

  • true - DMS Schema Conversion은 TO_NUMBER 호출을 네이티브 PostgreSQL TO_NUMBER 함수로 변환합니다.

유형: 부울(true | false)

기본값: false

데이터베이스와 애플리케이션이 동일한 시간대를 사용하는 변환된 코드의 성능 개선(ToTimeZone)

DMS Schema Conversion이 변환된 코드의 시간대를 에뮬레이션할지 여부를 지정합니다.

  • true - DMS Schema Conversion은 시간대를 에뮬레이션하지 않습니다. 데이터베이스와 애플리케이션이 동일한 시간대를 사용할 때 사용합니다. 변환된 코드는 더 빠르게 실행됩니다.

  • false - DMS Schema Conversion은 변환된 코드의 시간대를 에뮬레이션합니다.

유형: 부울(true | false)

기본값: false

변환된 시퀀스를 소스 측에서 생성된 마지막 값으로 채웁니다(AlertSequenceRestart).

DMS Schema Conversion이 소스에서 생성된 마지막 값에서 변환된 시퀀스를 계속할지 여부를 지정합니다.

  • true - DMS Schema Conversion은 변환된 각 시퀀스를 소스에서 생성된 마지막 값에서 시작하도록 설정하므로 시퀀스는 충돌 없이 계속됩니다.

  • false - DMS Schema Conversion은 기본 초기 값에서 변환된 시퀀스를 시작합니다.

유형: 부울(true | false)

기본값: false

NUMBER 데이터 형식의 기본 및 외래 키 열을 BIGINT 데이터 형식으로 변환(ConvertNumberToBigint)

DMS Schema Conversion이 NUMBER 데이터 형식의 기본 키 및 외래 키 열을 로 변환할지 여부를 지정합니다BIGINT. 소스 데이터베이스가 이러한 열에 부동 소수점 번호를 저장하는 경우 데이터 손실을 방지하기 위해를 주의해서 사용합니다.

  • true - DMS Schema Conversion은 프라이머리 키와 외래 키 NUMBER 열을에 매핑합니다BIGINT.

  • false - DMS Schema Conversion은 이러한 열에 표준 숫자 매핑을 사용합니다.

유형: 부울(true | false)

기본값: false

활성 트리거 및 제약 조건만 변환(IgnoreDisabledTriggersConstraints)

변환 중에 DMS Schema Conversion이 비활성화된 트리거 및 제약 조건을 건너뛸지 여부를 지정합니다.

  • true - DMS Schema Conversion은 활성 트리거와 제약 조건만 변환하고 비활성화된 트리거와 제약 조건을 건너뜁니다.

  • false - DMS Schema Conversion은 비활성화된 트리거와 제약 조건을 포함하여 모든 트리거와 제약 조건을 변환합니다.

유형: 부울(true | false)

기본값: false

호출된 루틴에서 생성된 동적 SQL 코드 변환(ConvertOutputAsDynamic)

DMS Schema Conversion이 루틴 외부에서 동적 SQL로 참조되는 문자열 변수를 변환할지 여부를 지정합니다.

  • true - DMS Schema Conversion은 루틴 외부에서 동적 SQL로 참조되는 문자열 변수를 변환합니다.

  • false - DMS Schema Conversion은 이러한 문자열 변수를 동적 SQL로 변환하지 않습니다.

유형: 부울(true | false)

기본값: false

프로시저를 함수로 변환(ConvertProceduresToFunction)

DMS Schema Conversion이 Oracle 저장 프로시저를 PostgreSQL 보이드 함수로 변환할지 여부를 지정합니다.

  • true - DMS Schema Conversion은 Oracle 저장 프로시저를 PostgreSQL 보이드 함수로 변환합니다.

  • false - DMS Schema Conversion은 Oracle 저장 프로시저를 PostgreSQL 프로시저로 변환합니다.

유형: 부울(true | false)

기본값: false

시스템 생성 제약 조건의 이름 유지(ConvertSysConstraintNamesUsingOriginal)

DMS Schema Conversion이 원래 Oracle 시스템에서 생성된 제약 조건을 대상에 유지할지 여부를 지정합니다. 소스 Oracle 코드가 시스템 생성 제약 조건 이름을 사용하여 대상 데이터베이스에서 동일한 이름으로 제약 조건을 생성하는 경우이 옵션을 사용합니다.

  • true - DMS Schema Conversion은 원래 Oracle 시스템에서 생성된 제약 조건 이름을 대상에 유지합니다.

  • false - DMS Schema Conversion은 새 제약 조건 이름을 생성합니다.

유형: 부울(true | false)

기본값: false

소스 데이터베이스의 시간대 설정(UseDefaultTimeZoneForSysdateEmulation)

변환된 코드가 소스 데이터베이스와 동일한 값을 반환DefaultTimeZoneForSysdateEmulation하도록 Oracle 함수를 에뮬레이션하는 SYSDATE 함수가의 시간대를 사용할지 여부를 지정합니다.

  • true - DMS Schema Conversion은 SYSDATE에 지정된 시간대를 에뮬레이션DefaultTimeZoneForSysdateEmulation에 사용합니다.

  • false - DMS Schema Conversion은 SYSDATE 에뮬레이션에 기본 시간대를 사용합니다.

유형: 부울(true | false)

기본값: false

DefaultTimeZoneForSysdateEmulation

SYSDATE뮬레이션이 켜질 때 DMS Schema Conversion이 사용하는 시간대입니다UseDefaultTimeZoneForSysdateEmulation. , UTC America/New_York또는와 같은 유효한 IANA 시간대 이름을 지정합니다Europe/Berlin. 가 UseDefaultTimeZoneForSysdateEmulation이면이 값은 영향을 주지 않습니다false.

유형: 문자열(IANA 시간대 이름)

기본값: UTC

참고

에는 프로시저를 함수로 변환과 시스템 생성 제약 조건 이름 유지 사이에 사용자 정의 예외를 발생시키는 확장 팩 함수 추가 옵션이 AWS Management Console 나와 있습니다. 이 옵션은 에서만 구성 AWS Management Console 되며 API 또는 AWS CLI를 통해 사용할 수 없습니다. 관련 심각도 수준 동작은 ShowSeverityLevelInSql 공통 설정에 의해 제어됩니다. 자세한 내용은 공통 변환 설정 단원을 참조하십시오.

Orafce 기본 제공 루틴

변환된 코드에 사용할 Orafce 기본 제공 루틴을 선택합니다. Orafce는 Oracle 내장 함수와 호환되는 루틴을 제공하는 PostgreSQL 확장입니다. 각 루틴에는 전용 부울 설정이 있습니다. 루틴을 로 설정하면 trueDMS Schema Conversion은 일치하는 Oracle 기본 제공 함수를 Orafce 루틴으로 변환합니다. 로 설정하면 falseDMS Schema Conversion은 함수를 수동 검토를 위한 작업 항목으로 남깁니다. 이러한 루틴을 사용하려면 대상 데이터베이스에서 orafce 확장을 사용할 수 있어야 합니다. 이러한 모든 루틴의 기본값은 입니다false. 사용 시 함수의 동작이 Orafce 루틴과 호환되는지 확인한 후에true만 루틴을 로 설정합니다.

설정 이름 Oracle 내장 함수
AddMonthsBuiltinFunctionOracle ADD_MONTHS
BitandBuiltinFunctionOracle BITAND
CoshBuiltinFunctionOracle COSH
DbmsAssertBuiltinFunctionOracle DBMS_ASSERT 패키지
DbmsOutputBuiltinFunctionOracle DBMS_OUTPUT 패키지
DbmsRandomBuiltinFunctionOracle DBMS_RANDOM 패키지
DbtimezoneBuiltinFunctionOracle DBTIMEZONE
DecodeBuiltinFunctionOracle DECODE
DumpBuiltinFunctionOracle DUMP
InstrBuiltinFunctionOracle INSTR
InstrbBuiltinFunctionOracle INSTRB
LastDayBuiltinFunctionOracle LAST_DAY
LengthBuiltinFunctionOracle LENGTH
LengthbBuiltinFunctionOracle LENGTHB
ListaggBuiltinFunctionOracle LISTAGG
LnnvlBuiltinFunctionOracle LNNVL
LpadBuiltinFunctionOracle LPAD
LtrimBuiltinFunctionOracle LTRIM
MedianBuiltinFunctionOracle MEDIAN
MonthsBetweenBuiltinFunctionOracle MONTHS_BETWEEN
NanvlBuiltinFunctionOracle NANVL
NextDayBuiltinFunctionOracle NEXT_DAY
NlssortBuiltinFunctionOracle NLSSORT
Nvl2BuiltinFunctionOracle NVL2
NvlBuiltinFunctionOracle NVL
RoundDateFmtBuiltinFunctionOracle ROUND (날짜)
RoundNumberBuiltinFunctionOracle ROUND (숫자)
RpadBuiltinFunctionOracle RPAD
RtrimBuiltinFunctionOracle RTRIM
SessiontimezoneBuiltinFunctionOracle SESSIONTIMEZONE
SinhBuiltinFunctionOracle SINH
SubstrBuiltinFunctionOracle SUBSTR
SubstrbBuiltinFunctionOracle SUBSTRB
SysdateBuiltinFunctionOracle SYSDATE
TanhBuiltinFunctionOracle TANH
ToCharDatetimeBuiltinFunctionOracle TO_CHAR (날짜/시간)
ToCharNumberBuiltinFunctionOracle TO_CHAR (숫자)
ToDateBuiltinFunctionOracle TO_DATE
ToMultiByteBuiltinFunctionOracle TO_MULTI_BYTE
ToNumberBuiltinFunctionOracle TO_NUMBER
ToSingleByteBuiltinFunctionOracle TO_SINGLE_BYTE
TruncDateBuiltinFunctionOracle TRUNC (날짜)
TruncNumberBuiltinFunctionOracle TRUNC (숫자)

각 루틴은 별도의 부울 키입니다. 다음 예제에서는 Oracle ADD_MONTHS, NVLSUBSTR 함수에 대한 Orafce 루틴을 활성화합니다. 소스 코드의 함수와 일치하는 키를 추가하거나 제거하고 프로젝트에서 사용하는 각 섹션 이름에 동일한 키를 적용합니다.

{ "ORACLE_TO_POSTGRESQL_15": { "AddMonthsBuiltinFunctionOracle": true, "NvlBuiltinFunctionOracle": true, "SubstrBuiltinFunctionOracle": true } }
SQL 코드 설정

DMS Schema Conversion이 PostgreSQL이 지원하지 않는 Oracle 내장 객체를 처리하는 방법을 구성합니다.

지원되지 않는 내장 객체를 스텁 객체로 변환(ConvUnsupportedBuiltinsToStubs)

DMS Schema Conversion이 지원되지 않는 기본 제공 객체를 스텁 객체로 대체할지 여부를 지정합니다.

  • false - DMS Schema Conversion은 지원되지 않는 기본 제공 객체를 평가 보고서의 작업 항목으로 남깁니다.

  • true - DMS Schema Conversion은 지원되지 않는 각 기본 제공 객체를 서명이 동일한 스텁 객체로 바꿉니다. 변환된 객체는 컴파일되므로 개별 스텁을 해결하기 전에 나머지 스키마를 배포하고 테스트할 수 있습니다.

유형: 부울(true | false)

기본값: false

별도의 스키마에서 스텁 객체 생성(CreateStubsInSeparateSchema)

DMS Schema Conversion이 별도의 스키마에 스텁 객체를 생성할지 여부를 지정합니다. 이 옵션은 지원되지 않는 내장 객체를 스텁 객체로 변환을 선택한 AWS Management Console 경우에만에 표시되며, 해당 옵션이 활성화된 경우에만 적용됩니다.

  • true - DMS Schema Conversion은 별도의 스키마에 스텁 객체를 생성합니다. 이렇게 하면 애플리케이션 스키마를 정리하고 여전히 구현이 필요한 스텁을 쉽게 식별할 수 있습니다.

  • false - DMS Schema Conversion은 변환된 객체와 동일한 스키마에 스텁 객체를 생성합니다.

유형: 부울(true | false)

기본값: true

예: Oracle에서 PostgreSQL로 설정 구성

다음 예제에서는 구체화된 뷰를 PostgreSQL 구체화된 뷰로 유지하고, bigint 데이터 형식을 사용하여 ROWID 의사 열을 에뮬레이션하고, 프로시저를 함수로 변환합니다. 프로젝트에서 사용하는 각 섹션 이름에 동일한 설정을 적용합니다(먼저 DescribeConversionConfiguration의 출력 확인).

{ "ORACLE_TO_POSTGRESQL_15": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true }, "ORACLE_TO_POSTGRESQL_14": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true }, "ORACLE_TO_POSTGRESQL": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true } }