Uso de una base de datos de Oracle como destino para AWS Database Migration Service - 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.

Uso de una base de datos de Oracle como destino para AWS Database Migration Service

Puede migrar los datos a los destinos de las bases de AWS DMS datos Oracle desde otra base de datos Oracle o desde una de las otras bases de datos compatibles. Puede utilizar la Capa de conexión segura (SSL) para cifrar las conexiones entre el punto de enlace de Oracle y la instancia de replicación. Para obtener más información sobre el uso de SSL con un punto final de Oracle, consulteUso de SSL con AWS Database Migration Service. AWS DMS también admite el uso del cifrado transparente de datos (TDE) de Oracle para cifrar los datos en reposo en la base de datos de destino, ya que el TDE de Oracle no requiere una clave de cifrado ni una contraseña para escribir en la base de datos.

Para obtener información sobre las versiones de Oracle AWS DMS compatibles como destino, consulte. Objetivos para AWS DMS

Al utilizar Oracle como destino, suponemos que los datos deberían migrarse al esquema o usuario que se utiliza para la conexión de destino. Si desea migrar datos a otro esquema, utilice la transformación de esquemas. Por ejemplo, suponga que su punto de enlace de destino se conecta con el usuario RDSMASTER y desea migrar desde el usuario PERFDATA1 a PERFDATA2. En este caso, cree una transformación tal y como la siguiente.

{ "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "schema", "object-locator": { "schema-name": "PERFDATA1" }, "value": "PERFDATA2" }

Al utilizar Oracle como destino, AWS DMS migra todas las tablas e índices a los espacios de tablas e índices predeterminados del destino. Si desea migrar tablas e índices a distintos espacios de tablas de tablas e índices, utilice una transformación de espacio de tabla para hacerlo. Por ejemplo, supongamos que tiene un conjunto de tablas en el esquema INVENTORY asignado a algunos espacios de tabla en el origen de Oracle. Para la migración, desea asignar todas estas tablas a un único espacio de tabla INVENTORYSPACE en el destino. En este caso, cree una transformación tal y como la siguiente.

{ "rule-type": "transformation", "rule-id": "3", "rule-name": "3", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "INVENTORY", "table-name": "%", "table-tablespace-name": "%" }, "value": "INVENTORYSPACE" }

Para obtener más información sobre transformaciones, consulte Especificación de reglas de selección de tablas y transformaciones mediante JSON.

Si Oracle es origen y destino, puede conservar las asignaciones de espacio de tabla de índice o de tabla existentes configurando el atributo de conexión adicional de origen de Oracle, enableHomogenousTablespace=true. Para obtener más información, consulte Configuración del punto final cuando se utiliza Oracle como fuente de AWS DMS.

Para obtener más información sobre cómo trabajar con bases de datos Oracle como destino AWS DMS, consulte las siguientes secciones:

Limitaciones de Oracle como objetivo para AWS Database Migration Service

Las restricciones al utilizar Oracle como destino para la migración de datos son las siguientes:

  • AWS DMS no crea un esquema en la base de datos Oracle de destino. Usted tiene que crear los esquemas que desee en la base de datos de Oracle de destino. El nombre de esquema ya tiene que existir para el destino de Oracle. Las tablas del esquema de origen se importan al usuario o esquema, que se AWS DMS utiliza para conectarse a la instancia de destino. Para migrar varios esquemas, puede crear varias tareas de replicación. También puede migrar los datos a diferentes esquemas de un destino. Para ello, debe utilizar las reglas de transformación del esquema en las asignaciones de AWS DMS tablas.

  • AWS DMS no admite la Use direct path full load opción para tablas con INDEXTYPE CONTEXT. Como alternativa, puede utilizar la carga de matriz.

  • Con la opción de aplicación optimizada por lotes, la carga en la tabla de cambios netos utiliza una ruta directa, que no admite el tipo XML. Como alternativa, puede utilizar el modo de aplicación transaccional.

  • Las cadenas vacías migradas desde bases de datos de origen pueden ser tratadas de manera diferente por el destino de Oracle (convertidas en cadenas de espacio, por ejemplo). Esto puede provocar que la AWS DMS validación notifique una discrepancia.

  • Puede expresar el número total de columnas por tabla admitidas en el modo de aplicación optimizada por lotes mediante la siguiente fórmula:

    2 * columns_in_original_table + columns_in_primary_key <= 999

    Por ejemplo, si la tabla original tiene 25 columnas y su clave principal consta de 5 columnas, el número total de columnas es 55. Si una tabla supera el número de columnas admitido, todos los cambios se aplican en el one-by-one modo.

  • AWS DMS no es compatible con Autonomous DB en Oracle Cloud Infrastructure (OCI).

Privilegios de la cuenta de usuario necesarios para utilizar Oracle como destino

Para utilizar un destino de Oracle en una AWS Database Migration Service tarea, conceda los siguientes privilegios en la base de datos de Oracle. Puede concederlos a la cuenta de usuario especificada en las definiciones de la base de datos Oracle para AWS DMS.

  • SELECT ANY TRANSACTION

  • SELECT on V$NLS_PARAMETERS

  • SELECT on V$TIMEZONE_NAMES

  • SELECT on ALL_INDEXES

  • SELECT on ALL_OBJECTS

  • SELECT on DBA_OBJECTS

  • SELECT on ALL_TABLES

  • SELECT on ALL_USERS

  • SELECT on ALL_CATALOG

  • SELECT on ALL_CONSTRAINTS

  • SELECT on ALL_CONS_COLUMNS

  • SELECT on ALL_TAB_COLS

  • SELECT on ALL_IND_COLUMNS

  • DROP ANY TABLE

  • SELECT ANY TABLE

  • INSERT ANY TABLE

  • UPDATE ANY TABLE

  • CREATE ANY VIEW

  • DROP ANY VIEW

  • CREATE ANY PROCEDURE

  • ALTER ANY PROCEDURE

  • DROP ANY PROCEDURE

  • CREATE ANY SEQUENCE

  • ALTER ANY SEQUENCE

  • DROP ANY SEQUENCE

  • ELIMINAR CUALQUIER TABLA

Para los requisitos siguientes, conceda estos privilegios adicionales:

  • Para utilizar una lista de tablas específica, otorgue SELECT y ALTER en cualquier tabla replicada.

  • Para permitir a un usuario crear una tabla en un espacio de tabla predeterminado, conceda el privilegio GRANT UNLIMITED TABLESPACE.

  • Para el inicio de sesión, conceda el privilegio CREATE SESSION.

  • Si utiliza una ruta directa (que es la predeterminada para carga completa), GRANT LOCK ANY TABLE to dms_user;.

  • Si el esquema es diferente al utilizar el modo de preparación de tablas “DROP and CREATE”, GRANT CREATE ANY INDEX to dms_user;.

  • En algunos escenarios de carga completa, puede elegir la opción “DROP and CREATE table” o “TRUNCATE before loading”, donde un esquema de tabla de destino es distinto al del usuario DMS. En este caso, conceda el privilegio DROP ANY TABLE.

  • Para almacenar los cambios en tablas de cambios o en una tabla de auditoría donde el esquema de la tabla de destino sea diferente al del usuario DMS, conceda los privilegios CREATE ANY TABLE y CREATE ANY INDEX.

Los privilegios de lectura necesarios para la AWS Database Migration Service base de datos de destino

La cuenta AWS DMS de usuario debe tener permisos de lectura para las siguientes tablas de DBA:

  • SELECT on DBA_USERS

  • SELECT on DBA_TAB_PRIVS

  • SELECT on DBA_OBJECTS

  • SELECT on DBA_SYNONYMS

  • SELECT on DBA_SEQUENCES

  • SELECT on DBA_TYPES

  • SELECT on DBA_INDEXES

  • SELECT on DBA_TABLES

  • SELECT en DBA_TRIGGERS

  • SELECT on SYS.DBA_REGISTRY

Si alguno de los privilegios necesarios no se puede conceder a V$xxx, concédalos a V_$xxx.

Evaluaciones previas a la migración

Para utilizar las evaluaciones previas a la migración incluidas en Evaluaciones de Oracle Oracle como destino, debe añadir los siguientes permisos al usuario de la base de datos en la dms_user base de datos de destino:

GRANT SELECT ON V_$INSTANCE TO dms_user;

Configurar una base de datos Oracle como destino para AWS Database Migration Service

Antes de utilizar una base de datos Oracle como destino de migración de datos, debe proporcionar una cuenta de usuario de Oracle a AWS DMS. La cuenta de usuario debe disponer de privilegios de lectura y escritura en la base de datos de Oracle, según se especifica en Privilegios de la cuenta de usuario necesarios para utilizar Oracle como destino.

Configuración del punto final cuando se utiliza Oracle como destino para AWS DMS

Puede utilizar la configuración de punto de conexión para configurar la base de datos de destino de Oracle de forma similar al uso de atributos de conexión adicionales. Los ajustes se especifican al crear el punto final de destino mediante la AWS DMS consola o mediante el create-endpoint AWS CLIcomando de la sintaxis --oracle-settings '{"EndpointSetting": "value", ...}' JSON.

La siguiente tabla muestra la configuración de punto de conexión que puede utilizar con Oracle como destino.

Nombre Descripción

EscapeCharacter

Establezca este atributo en un carácter de escape. Este carácter de escape le permite hacer que un único carácter comodín se comporte como un carácter normal en las expresiones de asignación de tablas. Para obtener más información, consulte Comodines en la asignación de tablas.

Valor predeterminado: nulo

Valores válidos: cualquier carácter que no sea un carácter comodín

Ejemplo: --oracle-settings '{"EscapeCharacter": "#"}'

UseDirectPathFullLoad

Cuando se establece enY, AWS DMS utiliza una ruta directa a plena carga. Especifique este valor para habilitar el protocolo de ruta directa en Oracle Call Interface (OCI). Este protocolo de OCI habilita la carga masiva de tablas de destino de Oracle durante una carga completa.

Valor predeterminado: true

Valores válidos: true/false

Ejemplo: --oracle-settings '{"UseDirectPathFullLoad": false}'

DirectPathParallelLoad

Cuando se establece en true, este atributo especifica una carga paralela cuando UseDirectPathFullLoad se establece en Y. Este atributo también solo se aplica cuando se utiliza la función de carga AWS DMS paralela. Para obtener más información, consulte la descripción de la operación parallel-load en Reglas y operaciones de configuración de tablas y recopilaciones.

Una restricción en la especificación de esta configuración de carga paralela es que la tabla de destino no puede tener restricciones ni índices. Para obtener más información sobre esta restricción, consulte Habilitación de restricciones después de una carga de ruta directa paralela. Si las restricciones o los índices están habilitados, establecer este atributo en true no tiene ningún efecto.

Valor predeterminado: false

Valores válidos: true/false

Ejemplo: --oracle-settings '{"DirectPathParallelLoad": true}'

DirectPathNoLog

Cuando se establece en true, este atributo ayuda a aumentar la tasa de confirmación en la base de datos de destino de Oracle escribiendo directamente en las tablas y no escribiendo un registro de seguimiento en los registros de la base de datos. Para obtener más información, consulte Direct-Load INSERT. Este atributo también se aplica solo cuando se establece UseDirectPathFullLoad en Y.

Valor predeterminado: false

Valores válidos: true/false

Ejemplo: --oracle-settings '{"DirectPathNoLog": true}'

CharLengthSemantics

Especifica si la longitud de una columna de caracteres está expresada en bytes o en caracteres. Para indicar que la longitud de la columna de caracteres está en caracteres, establezca este atributo en CHAR. De lo contrario, la longitud de la columna de caracteres está en bytes.

Valor predeterminado: no establecido en CHAR

Valores válidos: CHAR

Ejemplo: --oracle-settings '{"CharLengthSemantics": "CHAR"}'

AlwaysReplaceEmptyString

AWS DMS añade un espacio adicional para replicar una cadena vacía al migrar a un destino de Oracle. En general, Oracle no tiene una notación para una cadena vacía. Al insertar una cadena vacía en varchar2, las cadenas vacías se cargan como NULL. Si desea insertar los datos como NULL en Oracle, establezca este atributo en FALSO.

Valor predeterminado: true

Valores válidos: true/false

Ejemplo: --oracle-settings '{"AlwaysReplaceEmptyString": false}'

Tipos de datos de destino para Oracle

Una base de datos Oracle de destino con la que se utiliza AWS DMS es compatible con la mayoría de los tipos de datos de Oracle. La siguiente tabla muestra los tipos de datos de destino de Oracle que se admiten cuando se utilizan AWS DMS y el mapeo predeterminado a partir de AWS DMS los tipos de datos. Para obtener más información sobre cómo ver el tipo de datos que se asigna desde el origen, consulte la sección para el origen que esté utilizando.

AWS DMS tipo de datos

Tipos de datos de Oracle

BOOLEAN

NUMBER (1)

BYTES

RAW (longitud)

FECHA

DATETIME

HORA

TIMESTAMP (0)

DATETIME

TIMESTAMP (escala)

INT1

NUMBER (3)

INT2

NUMBER (5)

INT4

NUMBER (10)

INT8

NUMBER (19)

NUMERIC

NUMBER (p,s)

REAL4

FLOAT

REAL8

FLOAT

STRING

Con indicación de fecha: DATE

Con indicación de tiempo: TIMESTAMP

Con indicación de marca de tiempo: TIMESTAMP

Con indicación de timestamp_with_timezone: TIMESTAMP WITH TIMEZONE

Con indicación de timestamp_with_local_timezone: TIMESTAMP WITH LOCAL TIMEZONE Con indicación de interval_year_to_month: INTERVAL YEAR TO MONTH

Con indicación de interval_day_to_second: INTERVAL DAY TO SECOND

Si longitud > 4000: CLOB

En el resto de casos: VARCHAR2 (longitud)

UINT1

NUMBER (3)

UINT2

NUMBER (5)

UINT4

NUMBER (10)

UINT8

NUMBER (19)

WSTRING

Si longitud > 2000: NCLOB

En el resto de casos: NVARCHAR2 (longitud)

BLOB

BLOB

Para usar este tipo de datos con AWS DMS, debe habilitar el uso de BLOB para una tarea específica. Los tipos de datos BLOB se admiten únicamente en las tablas que incluyen una clave principal

CLOB

CLOB

Para usar este tipo de datos con AWS DMS, debe habilitar el uso de CLOBs para una tarea específica. En la captura de datos de cambios (CDC), los tipos de datos CLOB solo se admiten en tablas que incluyen una clave principal.

STRING

Un tipo de datos VARCHAR2 de Oracle en la fuente con un tamaño declarado superior a 4000 bytes se asigna a través del AWS DMS CLOB a una cadena del destino de Oracle.

NCLOB

NCLOB

Para usar este tipo de datos con AWS DMS, debe habilitar el uso de NCLOB para una tarea específica. En la CDC, los tipos de datos NCLOB se admiten únicamente en las tablas que incluyen una clave principal.

WSTRING

Un tipo de datos VARCHAR2 de Oracle en el origen con un tamaño declarado superior a 4000 bytes se asigna a través del AWS DMS NCLOB a un WSTRING en el destino de Oracle.

XMLTYPE

El tipo de datos de destino XMLTYPE solo es pertinente en tareas de replicación de Oracle a Oracle.

Cuando la base de datos de origen sea Oracle, los tipos de datos de origen se replican tal cual en el destino de Oracle. Por ejemplo, un tipo de datos XMLTYPE en el origen se crea como un tipo de datos XMLTYPE en el destino.