View a markdown version of this page

Configuración de conversión de Oracle a PostgreSQL - AWS Database Migration Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de conversión de Oracle a PostgreSQL

La siguiente configuración se aplica cuando el origen es Oracle y el destino es Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL. Puede configurar estos ajustes mediante la operación o la AWS Management Console API. ModifyConversionConfiguration

En este tema se describe la configuración específica de la ruta de conversión de Oracle a PostgreSQL. Además de estos ajustes, la conversión de esquemas de DMS proporciona ajustes que se aplican a todos los pares de origen y destino, como el nivel de gravedad de los comentarios sobre los elementos de acción en el SQL convertido y la opción de utilizar la IA generativa para la conversión. Para conocer esos ajustes, consulte. Ajustes de conversión habituales

Cuando utilice la API o la AWS CLI, especifique la configuración de la ruta de conversión en los nombres de las secciones ORACLE_TO_POSTGRESQLORACLE_TO_POSTGRESQL_14, oORACLE_TO_POSTGRESQL_15. Las tres secciones versionadas aceptan las mismas claves. Para saber qué nombres de sección usa tu proyecto, llama DescribeConversionConfigurationprimero y actualiza solo las secciones presentes en la respuesta.

Cada configuración muestra la AWS Management Console etiqueta seguida del nombre del parámetro de la API y la AWS CLI entre paréntesis. Utilice el nombre del parámetro al configurar los ajustes con la API o la AWS CLI. Los ajustes se muestran en el mismo orden en que aparecen en AWS Management Console.

Versión del motor de destino (ORACLE_TO_POSTGRESQL_target_engine_version)

Elija la versión del motor para la base de datos de destino. Esta configuración es el conjunto de funciones de la versión principal de PostgreSQL que la conversión de esquemas de DMS apunta a la conversión y determina qué sección de configuración versionada se aplica (o) la conversión de esquemas de DMS. ORACLE_TO_POSTGRESQL_14 ORACLE_TO_POSTGRESQL_15 El valor se 15 dirige a las funciones de PostgreSQL 15 y versiones posteriores, 14 y a las funciones de PostgreSQL 14, de modo que la base de datos de destino pueda ejecutar una versión posterior al valor que elija (por ejemplo, un valor de para un destino de 15 PostgreSQL 16). A diferencia del resto de la configuración de esta página, esta configuración no se almacena en una sección de rutas de conversión. En su lugar, se almacena en la Conversion version sección de nivel superior, como se muestra en el siguiente ejemplo.

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

Tipo: cadena (14|15)

Valor predeterminado: 15

Vistas materializadas () MaterializedViewConvert

Especifica cómo la conversión de esquemas de DMS convierte las vistas materializadas de Oracle en el destino.

API/CLI valor Resultado alcanzado el objetivo
TABLE La conversión de esquemas de DMS crea una tabla normal con las mismas columnas. Úselo cuando gestione la actualización manualmente o con una herramienta de replicación.
MATERIALIZED_VIEW La conversión de esquemas de DMS crea un PostgreSQLMATERIALIZED VIEW. Úselo cuando el objetivo lo admita. REFRESH MATERIALIZED VIEW

Tipo: cadena (TABLE|MATERIALIZED_VIEW)

Valor predeterminado: TABLE

Generar id de fila (GenerateRowId)

La base de datos Oracle de origen puede utilizar la pseudocolumna ROWID. PostgreSQL no admite funciones similares. En la configuración se especifica si la conversión de esquemas de DMS emula la ROWID pseudocolumna del código convertido y qué tipo de datos utiliza la conversión de esquemas de DMS para la emulación.

Etiqueta de consola API/CLI valor Comportamiento
No generes false La conversión de esquemas de DMS no emula la ROWID pseudocolumna y deja las referencias como elementos de acción. Úselo cuando su código fuente de Oracle no lo utilice. ROWID El código convertido se ejecuta más rápido.
Utilice el tipo de datos bigint para emular la pseudocolumna ROWID true La conversión de esquemas de DMS emula la ROWID pseudocolumna del código convertido utilizando el tipo de datos. bigint
Utilice el tipo de datos que varía entre caracteres para emular la pseudocolumna ROWID GENERATE_AS_CHARACTER_DOMAIN_TYPE La conversión de esquemas de DMS emula la ROWID pseudocolumna del código convertido utilizando el tipo de datos. character varying

Tipo: cadena (enumeración)

Valor predeterminado: false

Código

Seleccione la configuración de conversión específica de su código fuente de Oracle.

Utilice el mapeo de tipos de datos optimizado para las columnas del tipo de datos NUMBER (UseOptimizedMappingForNumberConversion)

Especifica si la conversión de esquemas de DMS asigna cada NUMBER columna de Oracle al tipo de datos numéricos que mejor se ajuste en función de la precisión y la escala.

  • true— La conversión de esquemas de DMS asigna cada NUMBER columna al tipo numérico de PostgreSQL más específico (por ejemploSMALLINT,,INTEGER, BIGINT o) en función de su precisión y escala.

  • false— La conversión de esquemas de DMS mapea todas las columnas a. NUMBER NUMERIC

Tipo: booleano (|) true false

Valor predeterminado: true

Utilice una función TO_CHAR nativa de PostgreSQL () ToCharFunctionOracle

Especifica si la conversión de esquemas de DMS emula la función de Oracle en el código convertidoTO_CHAR.

  • false— La conversión de esquemas de DMS emula el TO_CHAR comportamiento de Oracle en el código convertido.

  • true— La conversión de esquemas de DMS convierte TO_CHAR y TO_NCHAR llama a la función nativa de PostgreSQLTO_CHAR. Seleccione esta opción para evitar la emulación cuando las cadenas de formato sean compatibles con PostgreSQL.

Tipo: booleano (|) true false

Valor predeterminado: false

Utilice una función TO_DATE nativa de PostgreSQL () ToDateFunctionOracle

Especifica si la conversión de esquemas de DMS emula la función de Oracle en el código convertidoTO_DATE.

  • false— La conversión de esquemas de DMS emula el TO_DATE comportamiento de Oracle en el código convertido.

  • true— La conversión de esquemas de DMS convierte TO_DATE las llamadas a la función nativa de PostgreSQLTO_DATE.

Tipo: booleano (|) true false

Valor predeterminado: false

Utilice una función TO_NUMBER nativa de PostgreSQL () ToNumber

Especifica si la conversión de esquemas de DMS emula la función de Oracle en el código convertidoTO_NUMBER.

  • false— La conversión de esquemas de DMS emula el TO_NUMBER comportamiento de Oracle en el código convertido.

  • true— La conversión de esquemas de DMS convierte TO_NUMBER las llamadas a la función nativa de PostgreSQLTO_NUMBER.

Tipo: booleano (|) true false

Valor predeterminado: false

Mejore el rendimiento del código convertido cuando la base de datos y las aplicaciones utilicen la misma zona horaria () ToTimeZone

Especifica si la conversión de esquemas de DMS emula las zonas horarias del código convertido.

  • true— La conversión de esquemas de DMS no emula las zonas horarias. Úselo cuando la base de datos y las aplicaciones utilicen la misma zona horaria. El código convertido se ejecuta más rápido.

  • false— La conversión de esquemas DMS emula las zonas horarias del código convertido.

Tipo: booleano (|) true false

Valor predeterminado: false

Rellene las secuencias convertidas con el último valor generado en el lado de la fuente () AlertSequenceRestart

Especifica si la conversión de esquemas de DMS continúa con las secuencias convertidas del último valor generado en la fuente.

  • true— La conversión de esquemas DMS establece que cada secuencia convertida comience desde el último valor generado en la fuente, de modo que las secuencias continúen sin conflictos.

  • false— La conversión de esquemas DMS inicia las secuencias convertidas a partir de su valor inicial predeterminado.

Tipo: booleano (|) true false

Valor predeterminado: false

Convierta las columnas de clave principal y externa del tipo de datos NUMBER al tipo de datos BIGINT () ConvertNumberToBigint

Especifica si la conversión de esquemas DMS convierte las columnas de clave principal y clave externa del tipo de NUMBER datos en. BIGINT Úselo con precaución para evitar la pérdida de datos si la base de datos de origen almacena números de punto flotante en estas columnas.

  • true— La conversión de esquemas de DMS asigna las columnas de clave principal y clave externa a. NUMBER BIGINT

  • false— La conversión de esquemas DMS utiliza el mapeo numérico estándar para estas columnas.

Tipo: booleano (|) true false

Valor predeterminado: false

Convierta solo los activadores y las restricciones activos () IgnoreDisabledTriggersConstraints

Especifica si la conversión de esquemas de DMS omite los activadores y las restricciones desactivados durante la conversión.

  • true— La conversión de esquemas de DMS convierte solo los activadores y restricciones activos y omite los desactivados.

  • false— La conversión de esquemas DMS convierte todos los activadores y restricciones, incluidas las desactivadas.

Tipo: booleano (|) true false

Valor predeterminado: false

Convierte el código SQL dinámico que se crea en las llamadas rutinas () ConvertOutputAsDynamic

Especifica si la conversión de esquemas de DMS convierte las variables de cadena a las que se hace referencia fuera de la rutina en SQL dinámico.

  • true— La conversión de esquemas de DMS convierte las variables de cadena a las que se hace referencia fuera de la rutina en SQL dinámico.

  • false— La conversión de esquemas de DMS no convierte estas variables de cadena en SQL dinámico.

Tipo: booleano (|) true false

Valor predeterminado: false

Convierte procedimientos en funciones () ConvertProceduresToFunction

Especifica si la conversión de esquemas de DMS convierte los procedimientos almacenados de Oracle en funciones vacías de PostgreSQL.

  • true— La conversión de esquemas DMS convierte los procedimientos almacenados de Oracle en funciones vacías de PostgreSQL.

  • false— La conversión de esquemas DMS convierte los procedimientos almacenados de Oracle en procedimientos PostgreSQL.

Tipo: booleano (|) true false

Valor predeterminado: false

Mantenga los nombres de las restricciones generadas por el sistema () ConvertSysConstraintNamesUsingOriginal

Especifica si la conversión de esquemas de DMS mantiene los nombres de las restricciones originales generados por el sistema Oracle en el destino. Utilice esta opción si el código fuente de Oracle utiliza nombres de restricciones generados por el sistema para crear restricciones con los mismos nombres en la base de datos de destino.

  • true— La conversión de esquemas de DMS mantiene los nombres de restricciones originales generados por el sistema Oracle en el destino.

  • false— La conversión de esquemas de DMS genera nuevos nombres de restricciones.

Tipo: booleano (|) true false

Valor predeterminado: false

Establezca la zona horaria de la base de datos de origen () UseDefaultTimeZoneForSysdateEmulation

Especifica si la función que emula a la SYSDATE función de Oracle utiliza la zona horaria de forma que el código convertido devuelva los mismos valores que la base de datos de origen. DefaultTimeZoneForSysdateEmulation

  • true— La conversión de esquemas DMS utiliza la zona horaria especificada en DefaultTimeZoneForSysdateEmulation para SYSDATE la emulación.

  • false— La conversión de esquemas DMS utiliza la zona horaria predeterminada para la emulación. SYSDATE

Tipo: booleano (|) true false

Valor predeterminado: false

DefaultTimeZoneForSysdateEmulation

La zona horaria que utiliza la conversión de esquemas de DMS cuando se activa SYSDATE la emulación. UseDefaultTimeZoneForSysdateEmulation Especifique un nombre de zona horaria de la IANA válido, comoUTC, America/New_York o. Europe/Berlin Este valor no tiene efecto cuando UseDefaultTimeZoneForSysdateEmulation esfalse.

Tipo: cadena (nombre de zona horaria de la IANA)

Valor predeterminado: UTC

nota

Incluye una AWS Management Console opción adicional: Añadir funciones de paquetes de extensión que generen excepciones definidas por el usuario, entre Convertir procedimientos en funciones y Mantener los nombres de las restricciones generadas por el sistema. Esta opción está configurada solo en AWS Management Console y no está disponible a través de la API o la AWS CLI. El comportamiento relacionado con el nivel de gravedad se controla mediante la configuración ShowSeverityLevelInSql común. Para obtener más información, consulte Ajustes de conversión habituales.

Rutinas integradas de Oracle

Elija las rutinas integradas de Oracle para utilizarlas en el código convertido. Oracle es una extensión de PostgreSQL que proporciona rutinas compatibles con las funciones integradas de Oracle. Cada rutina tiene una configuración booleana dedicada. Al configurar una rutina entrue, DMS Schema Conversion convierte la función integrada de Oracle correspondiente en su rutina de Oracle. Cuando se configura enfalse, la conversión de esquemas de DMS deja la función como un elemento de acción para su revisión manual. Para utilizar estas rutinas, la extensión orace debe estar disponible en la base de datos de destino. Todas estas rutinas son de forma predeterminada. false Establezca una rutina true solo después de comprobar que el comportamiento de la función durante el uso es compatible con la rutina de Oracle.

Nombre del conjunto Función integrada de Oracle
AddMonthsBuiltinFunctionOracle ADD_MONTHS
BitandBuiltinFunctionOracle BITAND
CoshBuiltinFunctionOracle COSH
DbmsAssertBuiltinFunctionOracle Paquete de DBMS_ASSERT
DbmsOutputBuiltinFunctionOracle Paquete de DBMS_OUTPUT
DbmsRandomBuiltinFunctionOracle Paquete de 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(fecha)
RoundNumberBuiltinFunctionOracle ROUND(número)
RpadBuiltinFunctionOracle RPAD
RtrimBuiltinFunctionOracle RTRIM
SessiontimezoneBuiltinFunctionOracle SESSIONTIMEZONE
SinhBuiltinFunctionOracle SINH
SubstrBuiltinFunctionOracle SUBSTR
SubstrbBuiltinFunctionOracle SUBSTRB
SysdateBuiltinFunctionOracle SYSDATE
TanhBuiltinFunctionOracle TANH
ToCharDatetimeBuiltinFunctionOracle TO_CHAR(fecha y hora)
ToCharNumberBuiltinFunctionOracle TO_CHAR(número)
ToDateBuiltinFunctionOracle TO_DATE
ToMultiByteBuiltinFunctionOracle TO_MULTI_BYTE
ToNumberBuiltinFunctionOracle TO_NUMBER
ToSingleByteBuiltinFunctionOracle TO_SINGLE_BYTE
TruncDateBuiltinFunctionOracle TRUNC(fecha)
TruncNumberBuiltinFunctionOracle TRUNC(número)

Cada rutina es una clave booleana independiente. El siguiente ejemplo activa las rutinas de Oracle para las funciones Oracle ADD_MONTHS yNVL. SUBSTR Agregue o elimine claves para que coincidan con las funciones del código fuente y aplique las mismas claves a cada nombre de sección que utilice su proyecto.

{ "ORACLE_TO_POSTGRESQL_15": { "AddMonthsBuiltinFunctionOracle": true, "NvlBuiltinFunctionOracle": true, "SubstrBuiltinFunctionOracle": true } }
Configuración del código SQL

Configure la forma en que DMS Schema Conversion gestiona los objetos integrados de Oracle que PostgreSQL no admite.

Convierta los objetos integrados no compatibles en objetos auxiliares () ConvUnsupportedBuiltinsToStubs

Especifica si la conversión de esquemas de DMS sustituye los objetos integrados no compatibles por objetos auxiliares.

  • false— La conversión de esquemas de DMS deja los objetos integrados no compatibles como elementos de acción en el informe de evaluación.

  • true— La conversión de esquemas de DMS reemplaza cada objeto integrado no compatible por un objeto auxiliar que tiene la misma firma. El objeto convertido se compila, por lo que puede implementar y probar el resto del esquema antes de abordar los códigos auxiliares individuales.

Tipo: booleano (|) true false

Valor predeterminado: false

Cree objetos auxiliares en un esquema separado () CreateStubsInSeparateSchema

Especifica si la conversión de esquemas de DMS crea objetos auxiliares en un esquema independiente. Esta opción aparece AWS Management Console solo cuando está seleccionada la opción Convertir objetos integrados no compatibles en objetos auxiliares y solo surte efecto cuando esa opción está habilitada.

  • true— La conversión de esquemas DMS crea objetos auxiliares en un esquema independiente. Esto mantiene limpios los esquemas de las aplicaciones y facilita la identificación de los códigos auxiliares que aún deben implementarse.

  • false— La conversión de esquemas de DMS crea objetos auxiliares en el mismo esquema que el objeto convertido.

Tipo: booleano (|) true false

Valor predeterminado: true

Ejemplo: configurar Oracle para los ajustes de PostgreSQL

El siguiente ejemplo mantiene las vistas materializadas como vistas materializadas de PostgreSQL, emula ROWID la pseudocolumna mediante el tipo de datos y convierte bigint los procedimientos en funciones. Aplique la misma configuración a cada nombre de sección que utilice su proyecto (compruebe primero el resultado). 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 } }