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 datos a bases de datos de destino de Oracle mediante AWS DMS, ya sea desde otra base de datos de Oracle o desde una de las otras bases de datos admitidas. 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 acerca de cómo usar SSL con un punto de enlace de Oracle, consulte Uso de SSL con AWS Database Migration Service. AWS DMS también admite el uso del cifrado transparente de datos (TDE) de Oracle para cifrar datos en reposo en la base de datos de destino porque Oracle TDE no requiere una clave de cifrado o una contraseña para escribir en la base de datos.
AWS DMSadmite las versiones 10g, 11g, 12c, 18c y 19c de Oracle para instancias locales y EC2 para las ediciones Enterprise, Standard, Standard One y Standard Two como destinos. AWS DMSadmite las versiones 11g (versión 11.2.0.3.v1 y posteriores), 12c, 18c y 19c para las bases de datos de instancias de Amazon RDS de las ediciones Enterprise, Standard, Standard One y Standard Two.
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 diferentes espacios de tablas e índices, utilice una transformación del espacio de tablas 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 Especificar reglas de selección y transformación de tablas 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 de endpoint cuando se utiliza Oracle como fuente paraAWS DMS
Para obtener más información sobre cómo trabajar con las bases de datos de Oracle como destino para AWS DMS, consulte las secciones siguientes:
Temas
- Restricciones en Oracle como destino para AWS Database Migration Service
- Privilegios de la cuenta de usuario necesarios para utilizar Oracle como destino
- Configuración de una base de datos de Oracle como destino para AWS Database Migration Service
- Configuración de endpoint cuando se utiliza Oracle como objetivo paraAWS DMS
- Tipos de datos de destino para Oracle
Restricciones en Oracle como destino 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 ningún esquema en la base de datos de 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 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 datos a diferentes esquemas de un destino. Para ello, debe utilizar reglas de transformación de esquemas en lasAWS DMS asignaciones de tablas.
-
AWS DMS no admite la opción
Use direct path full load
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 dar lugar a que la validación de AWS DMS informe una discrepancia.
-
Puede expresar el número total de columnas por tabla que se admite en el modo de aplicación optimizado por Batch mediante la siguiente fórmula:
2 *
columns_in_original_table
+columns_in_primary_key
<= 999Por 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 one-by-one modo.
-
AWS DMSno admite bases de datos autónomas 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 tarea de AWS Database Migration Service, conceda los siguientes privilegios en la base de datos 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
-
ELIMINACIÓN DE CUALQUIER TABLA
Para cumplir con los siguientes requisitos, 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.
Privilegios de lectura necesarios para AWS Database Migration Service en la base de datos de destino
La cuenta de usuario de AWS DMS debe tener permisos de lectura para las siguientes tablas de administradores de bases de datos:
-
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.
Configuración de una base de datos de Oracle como destino para AWS Database Migration Service
Antes de utilizar una base de datos de 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 de endpoint cuando se utiliza Oracle como objetivo paraAWS DMS
Puede utilizar la configuración de los endpoints para configurar la base de datos de destino de Oracle de forma similar a utilizar atributos de conexión adicionales. La configuración se especifica al crear el punto final de destino mediante laAWS DMS consola o mediante elcreate-endpoint
comando de AWS CLI, con la sintaxis--oracle-settings '{"
JSON.EndpointSetting"
:
"value"
, ...
}'
La siguiente tabla muestra la configuración de punto final que puede utilizar con Oracle como destino.
Nombre | Descripción |
---|---|
|
Defina este atributo como un carácter de escape. Este carácter de escape permite hacer que un único carácter comodín se comporte como un carácter normal en las expresiones de mapeo de tablas. Para obtener más información, consulte Comodín en el mapeo de tablas. Valor predeterminado: nulo Valores válidos: cualquier carácter que no sea un carácter comodín Ejemplo: |
|
Cuando se establece en Valor predeterminado: Valores válidos: Ejemplo: |
|
Cuando se establece en 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 Valor predeterminado: Valores válidos: Ejemplo: |
|
Cuando se establece en Valor predeterminado: Valores válidos: Ejemplo: |
|
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 Valor predeterminado: no establecido en Valores válidos: Ejemplo: |
|
AWS DMSañ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. Cuando inserta una cadena vacía en varchar2, carga las cadenas vacías como NULL. Si desea insertar los datos como NULL en Oracle, defina este atributo en FALSE. Valor predeterminado: Valores válidos: Ejemplo: |
Tipos de datos de destino para Oracle
Las bases de datos Oracle que se utilizan con AWS DMS admiten 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 utiliza AWS DMS y la asignación predeterminada desde los tipos de datos de AWS DMS. 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.
Tipos de datos de AWS DMS |
Tipos de datos de Oracle |
---|---|
BOOLEANO |
NUMBER (1) |
BYTES |
RAW (longitud) |
DATE |
DATETIME |
TIME |
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 utilizar este tipo de datos con AWS DMS, será preciso habilitar el uso de BLOB para una tarea en particular. Los tipos de datos BLOB se admiten únicamente en las tablas que incluyen una clave principal |
CLOB |
CLOB Para utilizar este tipo de datos con AWS DMS, será preciso habilitar el uso de CLOB para una tarea concreta. 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 delAWS DMS CLOB a una CADENA en el destino de Oracle. |
NCLOB |
NCLOB Para utilizar este tipo de datos con AWS DMS, será preciso habilitar el uso de NCLOB para una tarea en particular. 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 la fuente con un tamaño declarado superior a 4000 bytes se asigna a través delAWS DMS NCLOB a una WSTRING del 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. |