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 origen para AWS DMS
Puede migrar datos desde una o varias bases de datos de Oracle con AWS DMS. Con una base de datos Oracle como fuente, puede migrar los datos a cualquiera de los destinos compatiblesAWS DMS.
AWS DMSadmite las siguientes ediciones de Oracle Database:
-
Oracle Enterprise Edition
-
Oracle Standard Edition
-
Oracle Express Edition
-
Oracle Personal Edition
Para las bases de datos Oracle autogestionadas,AWS DMS es compatible con todas las ediciones de bases de datos Oracle para las versiones 10.2 y posteriores (para las versiones 10.x), 11g y hasta 12.2, 18c y 19c. Para las bases de datos de Amazon RDS for Oracle, queAWS administra yAWS DMS admite todas las ediciones de bases de datos Oracle para las versiones 11g (versiones 11.2.0.4 y posteriores) y hasta 12.2, 18c y 19c.
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 Compatibilidad con SSL para un punto de enlace de Oracle. 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 origen. Para obtener más información sobre el uso de Oracle TDE con un punto de enlace de origen de Oracle, consulte Métodos de cifrado admitidos para utilizar Oracle como origen para AWS DMS.
Siga estos pasos para configurar una base de datos Oracle como punto final deAWS DMS origen:
-
Cree un usuario de Oracle con los permisos adecuados para accederAWS DMS a la base de datos de origen de Oracle.
-
Cree un punto final de origen de Oracle que se ajuste a la configuración de base de datos Oracle que haya elegido. Para crear una full-load-only tarea, no se necesita ninguna configuración adicional.
-
Para crear una tarea que gestione la captura de datos de cambios (una tarea exclusiva de los CDC o de carga completa y de los CDC), elija Oracle LogMiner oAWS DMS Binary Reader para capturar los cambios en los datos. Al elegir LogMiner o Binary Reader, se determinan algunos de los permisos y opciones de configuración posteriores. Para obtener una comparación LogMiner de Binary Reader, consulte la siguiente sección.
Para obtener más información sobre las tareas de carga completa, las tareas exclusivas de los CDC y las tareas de carga completa y de los CDC, consulteCreación de una tarea
Para obtener información adicional acerca del trabajo con las bases de datos de origen de OracleAWS DMS, consulte las siguientes secciones.
Temas
- Uso de Oracle LogMiner oAWS DMS Binary Reader para los CDC
- Flujos de trabajo para configurar una base de datos fuente OracleAWS autogestionada o gestionada paraAWS DMS
- Uso de una base de datos de Oracle autoadministrada como origen para AWS DMS
- Trabajando con una base de datos OracleAWS gestionada como fuente deAWS DMS
- Restricciones en el uso de Oracle como origen para AWS DMS
- Compatibilidad con SSL para un punto de enlace de Oracle
- Métodos de cifrado admitidos para utilizar Oracle como origen para AWS DMS
- Métodos de compresión admitidos para usar Oracle como origen para AWS DMS
- Replicación de tablas anidadas utilizando Oracle como origen para AWS DMS
- Almacenamiento de REDO en Oracle ASM cuando se utiliza Oracle como fuente paraAWS DMS
- Configuración de endpoint cuando se utiliza Oracle como fuente paraAWS DMS
- Tipos de datos de origen para Oracle
Uso de Oracle LogMiner oAWS DMS Binary Reader para los CDC
EnAWS DMS, hay dos métodos para leer los registros de rehacer al realizar la captura de datos de cambios (CDC) para Oracle como fuente: Oracle LogMiner yAWS DMS Binary Reader. LogMiner es una API de Oracle para leer los registros de registros REDO online y los archivos de registros de REDO archivados. El lector binario es unAWS DMS método que lee y analiza directamente los archivos de redo log sin procesar. Estos métodos tienen las siguientes características.
Característica | LogMiner | Binary Reader |
---|---|---|
Fácil de configurar | Sí | No |
Menor impacto en la E/S y la CPU del sistema fuente | No | Sí |
Mejor rendimiento de los CDC | No | Sí |
Soporta clústeres de tablas de Oracle | Sí | No |
Soporta todos los tipos de compresión columnar híbrida (HCC) de Oracle | Sí |
Parcialmente Binary Reader no admite QUERY LOW para tareas con CDC. Todos los demás tipos de HCC son totalmente compatibles. |
Soporte de columnas LOB únicamente en Oracle 12c | No | Sí |
AdmiteUPDATE sentencias que afectan solo a las columnas LOB |
No | Sí |
Soporta el cifrado de datos transparente (TDE) |
Parcialmente Cuando se utiliza Oracle LogMiner,AWS DMS no admite el cifrado TDE a nivel de columna para Amazon RDS for Oracle. |
Parcialmente Binary Reader solo admite TDE para bases de datos Oracle autogestionadas. |
Soporta todos los métodos de compresión de Oracle | Sí | No |
Soporta transacciones XA | No | Sí |
RAQUETA |
Sí No recomendado |
Sí Altamente recomendable |
De forma predeterminada,AWS DMS usa Oracle LogMiner para (CDC).
Las principales ventajas de usar LogMiner conAWS DMS incluyen las siguientes:
-
LogMiner admite la mayoría de las opciones de Oracle, como las opciones de cifrado y compresión. Binary Reader no admite todas las opciones de Oracle, especialmente la compresión y la mayoría de las opciones de cifrado.
-
LogMiner ofrece una configuración más sencilla, especialmente en comparación con la configuración de acceso directo de Binary Reader o cuando los registros de rehacer se administran mediante Oracle Automatic Storage Management (ASM).
-
LogMiner admite clústeres de tablas para que los utiliceAWS DMS. Binary Reader no.
Las principales ventajas de utilizar Binary Reader withAWS DMS incluyen las siguientes:
-
En el caso de las migraciones con un gran volumen de cambios, LogMiner puede tener algún impacto en la I/O o la CPU en el equipo que aloja la base de datos fuente de Oracle. Binary Reader tiene menos probabilidades de afectar a la E/S o a la CPU porque los registros se extraen directamente en lugar de realizar múltiples consultas a la base de datos.
-
Para las migraciones con un gran volumen de cambios, el rendimiento de CDC suele ser mucho mejor cuando se utiliza Binary Reader en comparación con Oracle LogMiner.
-
Binary Reader admite CDC para LOB en la versión 12c de Oracle. LogMinerno lo hace.
En general, utilice Oracle LogMiner para migrar su base de datos Oracle, a menos que se encuentre en una de las siguientes situaciones:
-
Necesita ejecutar varias tareas de migración en la base de datos de origen de Oracle.
-
El volumen de cambios o el volumen de rehacer registros en la base de datos Oracle de origen es alto, o tiene cambios y también utiliza Oracle ASM.
Si cambia de usar Oracle LogMiner yAWS DMS Binary Reader, asegúrese de reiniciar la tarea de CDC.
Configuración de CDC en una base de datos fuente de Oracle
Para que un extremo de origen de Oracle se conecte a la base de datos para una tarea de cambio de captura de datos (CDC), es posible que deba especificar atributos de conexión adicionales. Esto puede ser cierto para una tarea de carga completa y de los CDC o para una tarea exclusiva de los CDC. Los atributos de conexión adicionales que especifique dependen del método que utilice para acceder a los registros de rehacer: Oracle LogMiner oAWS DMS Binary Reader.
Los atributos de conexión adicionales se especifican al crear un punto final de origen. Si tiene varios valores de atributos de conexión, sepárelos entre sí mediante punto y coma sin espacios en blanco adicionales (por ejemplo, oneSetting;thenAnother
).
AWS DMSusa LogMiner de forma predeterminada. No es necesario que especifique atributos de conexión adicionales para usarla.
Para usar Binary Reader para acceder a los registros de rehacer, añada los siguientes atributos de conexión adicionales.
useLogMinerReader=N;useBfile=Y;
Utilice el siguiente formato para que los atributos de conexión adicionales obtengan acceso a un servidor que utiliza ASM con Binary Reader.
useLogMinerReader=N;useBfile=Y;asm_user=
asm_username
;asm_server=RAC_server_ip_address
:port_number
/+ASM;
Establezca el parámetro de solicitud de punto de enlace de origen Password
en la contraseña de usuario de Oracle y la contraseña de ASM, separadas por una coma de la siguiente manera.
oracle_user_password
,asm_user_password
Cuando la fuente de Oracle utilice ASM, puede trabajar con opciones de alto rendimiento en Binary Reader para procesar transacciones a escala. Estas opciones incluyen atributos de conexión adicionales para especificar el número de subprocesos paralelos (parallelASMReadThreads
) y el número de búferes de lectura anticipada (readAheadBlocks
). La combinación de estos atributos puede mejorar significativamente el desempeño de la tarea de los CDC. Los siguientes ajustes proporcionan buenos resultados para la mayoría de las configuraciones de ASM.
useLogMinerReader=N;useBfile=Y;asm_user=asm_username;asm_server=RAC_server_ip_address:port_number/+ASM; parallelASMReadThreads=6;readAheadBlocks=150000;
Para obtener más información sobre los valores que se admiten en los atributos de conexión adicionales, consulte Configuración de endpoint cuando se utiliza Oracle como fuente paraAWS DMS.
Además, el rendimiento de una tarea de CDC con una fuente de Oracle que usa ASM depende de otras configuraciones que elija. Estas configuraciones incluyen sus atributos de conexión adicionales de AWS DMS y las configuraciones de SQL para configurar el origen de Oracle. Para obtener más información sobre los atributos de conexión adicionales para una fuente de Oracle que utiliza ASM, consulteConfiguración de endpoint cuando se utiliza Oracle como fuente paraAWS DMS
También debe elegir un punto de partida adecuado para los CDC. Por lo general, al hacer esto, querrá identificar el punto de procesamiento de la transacción que captura la primera transacción abierta desde la que iniciar la CDC. De lo contrario, la tarea de los CDC puede omitir transacciones abiertas anteriores. Para una base de datos de origen de Oracle, puede elegir un punto de inicio nativo de los CDC basándose en el número de cambio del sistema (SCN) de Oracle para identificar esta transacción abierta más temprana. Para obtener más información, consulte Realizar la replicación comenzando desde un punto de inicio de CDC.
Para obtener más información sobre la configuración de los CDC para una base de datos Oracle autogestionada como fuenteSe requieren privilegios de cuenta cuando se utiliza Oracle LogMiner para acceder a los registros de rehacerSe requieren privilegios de cuenta cuando se usaAWS DMS Binary Reader para acceder a los registros de rehacer, consulte ySe requieren privilegios de cuenta adicionales al utilizar Binary Reader con Oracle ASM.
Para obtener más información sobre la configuración de los CDC para una base de datos OracleAWS administrada como fuente, consulte Configuración de una tarea de CDC para usar Binary Reader con una fuente de RDS para Oracle paraAWS DMS yUso de un Oracle Standby de Amazon RDS (réplica de lectura) como fuente con Binary Reader para CDC enAWS DMS.
Flujos de trabajo para configurar una base de datos fuente OracleAWS autogestionada o gestionada paraAWS DMS
Para configurar una instancia de base de datos de origen autogestionada, siga los siguientes pasos del flujo de trabajo, según la forma en que realice la CDC.
Siga los siguientes pasos del flujo de trabajo para configurar una instancia de baseAWS de datos fuente de Oracle administrada por la administración.
Para este paso del flujo de trabajo | Si utiliza los CDC LogMiner, haga lo siguiente | Si realiza la CDC con un lector binario, haga lo siguiente |
---|---|---|
Otorgue privilegios de cuenta de Oracle. | Para obtener más información, consulte Se requieren privilegios de cuenta de usuario en una fuenteAWS de Oracle administrada paraAWS DMS. | Para obtener más información, consulte Se requieren privilegios de cuenta de usuario en una fuenteAWS de Oracle administrada paraAWS DMS. |
Prepare la base de datos de origen para la replicación mediante los CDC. | Para obtener más información, consulte Configuración de una fuente OracleAWS gestionada por la empresa paraAWS DMS. | Para obtener más información, consulte Configuración de una fuente OracleAWS gestionada por la empresa paraAWS DMS. |
Otorgue los privilegios de usuario de Oracle adicionales necesarios para los CDC. | No se requieren privilegios de cuenta adicionales. | Para obtener más información, consulte Configuración de una tarea de CDC para usar Binary Reader con una fuente de RDS para Oracle paraAWS DMS. |
Si aún no lo ha hecho, configure la tarea para utilizar LogMiner Binary Reader para CDC. | Para obtener más información, consulte Uso de Oracle LogMiner oAWS DMS Binary Reader para los CDC. | Para obtener más información, consulte Uso de Oracle LogMiner oAWS DMS Binary Reader para los CDC. |
Configure Oracle Standby como fuente para CDC. | AWS DMSno admite Oracle Standby como fuente. | Para obtener más información, consulte Uso de un Oracle Standby de Amazon RDS (réplica de lectura) como fuente con Binary Reader para CDC enAWS DMS. |
Uso de una base de datos de Oracle autoadministrada como origen para AWS DMS
Una base de datos autogestionada es una base de datos que se configura y controla, ya sea una instancia de base de datos local o una base de datos en Amazon EC2. A continuación, puede obtener información sobre los privilegios y las configuraciones que necesita al utilizar una base de datos Oracle autogestionada conAWS DMS.
Privilegios de cuenta de usuario necesarios en un origen de Oracle autoadministrado para AWS DMS
Para utilizar una base de datos Oracle como fuente enAWS DMS, conceda los siguientes privilegios al usuario de Oracle especificado en la configuración de conexión de Oracle Endpoint.
Al conceder privilegios, utilice el nombre real de los objetos, no el sinónimo de cada uno de ellos. Por ejemplo, utilice V_$OBJECT
con el guion bajo, no V$OBJECT
sin el guion bajo.
GRANT CREATE SESSION TO
db_user
; GRANT SELECT ANY TRANSACTION TOdb_user
; GRANT SELECT ON V_$ARCHIVED_LOG TOdb_user
; GRANT SELECT ON V_$LOG TOdb_user
; GRANT SELECT ON V_$LOGFILE TOdb_user
; GRANT SELECT ON V_$LOGMNR_LOGS TOdb_user
; GRANT SELECT ON V_$LOGMNR_CONTENTS TOdb_user
; GRANT SELECT ON V_$DATABASE TOdb_user
; GRANT SELECT ON V_$THREAD TOdb_user
; GRANT SELECT ON V_$PARAMETER TOdb_user
; GRANT SELECT ON V_$NLS_PARAMETERS TOdb_user
; GRANT SELECT ON V_$TIMEZONE_NAMES TOdb_user
; GRANT SELECT ON V_$TRANSACTION TOdb_user
; GRANT SELECT ON V_$CONTAINERS TOdb_user
; GRANT SELECT ON ALL_INDEXES TOdb_user
; GRANT SELECT ON ALL_OBJECTS TOdb_user
; GRANT SELECT ON ALL_TABLES TOdb_user
; GRANT SELECT ON ALL_USERS TOdb_user
; GRANT SELECT ON ALL_CATALOG TOdb_user
; GRANT SELECT ON ALL_CONSTRAINTS TOdb_user
; GRANT SELECT ON ALL_CONS_COLUMNS TOdb_user
; GRANT SELECT ON ALL_TAB_COLS TOdb_user
; GRANT SELECT ON ALL_IND_COLUMNS TOdb_user
; GRANT SELECT ON ALL_ENCRYPTED_COLUMNS TOdb_user
; GRANT SELECT ON ALL_LOG_GROUPS TOdb_user
; GRANT SELECT ON ALL_TAB_PARTITIONS TOdb_user
; GRANT SELECT ON SYS.DBA_REGISTRY TOdb_user
; GRANT SELECT ON SYS.OBJ$ TOdb_user
; GRANT SELECT ON DBA_TABLESPACES TOdb_user
; GRANT SELECT ON DBA_OBJECTS TOdb_user
; -– Required if the Oracle version is earlier than 11.2.0.3. GRANT SELECT ON SYS.ENC$ TOdb_user
; -– Required if transparent data encryption (TDE) is enabled. For more information on using Oracle TDE with AWS DMS, see Métodos de cifrado admitidos para utilizar Oracle como origen para AWS DMS. GRANT SELECT ON GV_$TRANSACTION TOdb_user
; -– Required if the source database is Oracle RAC in AWS DMS versions 3.4.6 and higher. GRANT SELECT ON V_$DATAGUARD_STATS TOdb_user
; -- Required if the source database is Oracle Data Guard and Oracle Standby is used in the latest release of DMS version 3.4.6, version 3.4.7, and higher.
Otorgue el siguiente privilegio adicional para cada tabla replicada cuando utilice una lista de tablas específica.
GRANT SELECT on
any-replicated-table
todb_user
;
Otorgue el siguiente privilegio adicional para validar las columnas LOB con la función de validación.
GRANT EXECUTE ON SYS.DBMS_CRYPTO TO
db_user
;
Otorgue el siguiente privilegio adicional si utiliza un lector binario en lugar de LogMiner.
GRANT SELECT ON SYS.DBA_DIRECTORIES TO
db_user
;
Otorgue el siguiente privilegio adicional para exponer las vistas.
GRANT SELECT on ALL_VIEWS to
dms_user
;
Para exponer las vistas, también debe añadir el atributo de conexiónexposeViews=true
adicional al extremo de origen.
Requisitos previos para gestionar transacciones abiertas para Oracle Standby
Cuando utiliceAWS DMS las versiones 3.4.6 y superiores, lleve a cabo los siguientes pasos para gestionar las transacciones abiertas para Oracle Standby.
-
Cree un enlace de base de datos denominado,
AWSDMS_DBLINK
en la base de datos principal.
utilizará el enlace de la base de datos para conectarse a la base de datos principal. Tenga en cuenta que el enlace a la base de datos se ejecuta desde la instancia en espera para consultar las transacciones abiertas que se ejecutan en la base de datos principal. Consulte el siguiente ejemplo, .DMS_USER
CREATE PUBLIC DATABASE LINK AWSDMS_DBLINK CONNECT TO
DMS_USER
IDENTIFIED BYDMS_USER_PASSWORD
USING '(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=PRIMARY_HOST_NAME_OR_IP
)(PORT=PORT
)) (CONNECT_DATA=(SERVICE_NAME=SID
)) )'; -
Compruebe que la conexión con el enlace de base de datos
que utiliza está establecida, tal como se muestra en el siguiente ejemplo.DMS_USER
select 1 from dual@AWSDMS_DBLINK
Preparación de una base de datos fuente autogestionada de Oracle para los CDC medianteAWS DMS
Prepare su base de datos Oracle autogestionada como fuente para ejecutar una tarea de CDC de la siguiente manera:
Verificar que seaAWS DMS compatible con la versión de la base de datos de origen
Ejecute una consulta como la siguiente para comprobar que la versión actual de la base de datos de origen de Oracle es compatible conAWS DMS.
SELECT name, value, description FROM v$parameter WHERE name = 'compatible';
Aquí, name
, value
y description
son columnas presentes en algún lugar de la base de datos que se están consultando en función del valor de name
. Si esta consulta se ejecuta sin errores,AWS DMS admite la versión actual de la base de datos y puede continuar con la migración. Si la consulta genera un error,AWS DMS no admite la versión actual de la base de datos. Para continuar con la migración, primero convierta la base de datos Oracle a una versión compatible conAWS DMS.
Asegurarse de que el modo ARCHIVELOG esté activado
Puede ejecutar Oracle en dos modos diferentes: ARCHIVELOG
y NOARCHIVELOG
. Para ejecutar una tarea de CDC, ejecute la base de datos enARCHIVELOG
modo. Para saber si la base de datos está enARCHIVELOG
modo, ejecute la siguiente consulta.
SQL> SELECT log_mode FROM v$database;
Si se devuelveNOARCHIVELOG
el modo, configure la base de datosARCHIVELOG
según las instrucciones de Oracle.
Activación del modo complementario
Para capturar los cambios en curso, esAWS DMS necesario que habilite un registro suplementario mínimo en la base de datos de origen de Oracle. Además, debe habilitar el registro complementario en cada tabla replicada de la base de datos.
De forma predeterminada,AWS DMS agrega un registroPRIMARY KEY
complementario en todas las tablas replicadas. AWS DMSPara permitir añadir registrosPRIMARY KEY
suplementarios, conceda el siguiente privilegio a cada tabla replicada.
ALTER on
any-replicated-table
;
Puede deshabilitar el registroPRIMARY KEY
complementario predeterminado agregadoAWS DMS mediante el atributo de conexión adicionaladdSupplementalLogging
. Para obtener más información, consulte Configuración de endpoint cuando se utiliza Oracle como fuente paraAWS DMS.
Asegúrese de activar el registro complementario si la tarea de replicación actualiza una tabla mediante unaWHERE
cláusula que no hace referencia a una columna de clave principal.
Para configurar manualmente el registro complementario
-
Ejecute la siguiente consulta para comprobar si el registro complementario ya está habilitado para la base de datos.
SELECT supplemental_log_data_min FROM v$database;
Si el resultado devuelto es
YES
oIMPLICIT
, se habilita el registro complementario para la base de datos.De lo contrario, habilite el registro complementario para la base de datos ejecutando el siguiente comando.
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
-
Asegúrese de añadir el registro complementario necesario para cada tabla replicada.
Considere lo siguiente:
-
Si se agrega un registro
ALL COLUMNS
complementario a la tabla, no es necesario que añada más registros. -
Si existe una clave principal, agregue un registro suplementario para la clave principal. Puede hacerlo utilizando el formato para agregar un registro complementario en la propia clave principal o agregando un registro complementario en las columnas de la clave principal de la base de datos.
ALTER TABLE Tablename ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
-
Si no hay una clave principal y la tabla tiene un solo índice único, agregue todas las columnas del índice único al registro suplementario.
ALTER TABLE
TableName
ADD SUPPLEMENTAL LOG GROUPLogGroupName
(UniqueIndexColumn1
[,UniqueIndexColumn2
] ...) ALWAYS;Usar
SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS
no añade las columnas de índice único al registro. -
Si no existe ninguna clave principal y la tabla tiene varios índices únicos,AWS DMS selecciona el primer índice único de una lista ascendente ordenada alfabéticamente. Debe añadir un registro complementario en las columnas del índice seleccionado, como en el elemento anterior.
Usar
SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS
no añade las columnas de índice único al registro. -
Si no existe ninguna clave principal y no hay un índice único, agregue el registro suplementario en todas las columnas.
ALTER TABLE
TableName
ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;En algunos casos, el índice único o la clave primaria de la tabla de destino son diferentes del índice único o la clave primaria de la tabla de origen. En esos casos, añada manualmente un registro complementario a las columnas de la tabla de origen que componen la clave principal o el índice único de la tabla de destino.
Si cambia la clave principal de la tabla de destino, debe agregar el registro suplementario en las columnas del índice seleccionadas, en lugar de en las columnas de la clave principal o el índice único originales.
-
Si se define un filtro o una transformación para una tabla, es posible que deba habilitar el registro adicional.
Considere lo siguiente:
-
Si se agrega un registro
ALL COLUMNS
complementario a la tabla, no es necesario que añada más registros. -
Si la tabla tiene un índice único o una clave principal, añada un registro complementario en cada columna que participe en un filtro o transformación. Sin embargo, hágalo solo si esas columnas son diferentes de las columnas de clave principal o de índice único.
-
Si una transformación incluye solo una columna, no añada esta columna a un grupo de registro complementario. Por ejemplo, para una transformación
A+B
, agregue un registro suplementario en ambas columnasA
yB
. Sin embargo, para una transformaciónsubstring(A,10)
no agregue un registro suplementario en la columnaA
. -
Para configurar el registro complementario en las columnas de clave principal o índice único y en otras columnas que se filtran o transforman, puede configurar el registro
USER_LOG_GROUP
complementario. Añada este registro en las columnas de clave principal o índice único y en cualquier otra columna específica que se filtre o transforme.Por ejemplo, para replicar una tabla denominada
TEST.LOGGING
con clave principalID
y un filtro por columnaNAME
, puede ejecutar un comando similar al siguiente para crear el registro complementario del grupo de registros.ALTER TABLE TEST.LOGGING ADD SUPPLEMENTAL LOG GROUP TEST_LOG_GROUP (ID, NAME) ALWAYS;
Se requieren privilegios de cuenta cuando se utiliza Oracle LogMiner para acceder a los registros de rehacer
Para acceder a los registros de rehacer mediante Oracle LogMiner, conceda los siguientes privilegios al usuario de Oracle especificado en la configuración de conexión de Oracle Endpoint.
GRANT EXECUTE on DBMS_LOGMNR to db_user; GRANT SELECT on V_$LOGMNR_LOGS to db_user; GRANT SELECT on V_$LOGMNR_CONTENTS to db_user; GRANT LOGMINING to db_user; -– Required only if the Oracle version is 12c or later.
Se requieren privilegios de cuenta cuando se usaAWS DMS Binary Reader para acceder a los registros de rehacer
Para acceder a los registros de rehacer mediante el lectorAWS DMS binario, conceda los siguientes privilegios al usuario de Oracle especificado en la configuración de conexión de Oracle Endpoint.
GRANT SELECT on v_$transportable_platform to db_user; -– Grant this privilege if the redo logs are stored in Oracle Automatic Storage Management (ASM) and AWS DMS accesses them from ASM. GRANT CREATE ANY DIRECTORY to db_user; -– Grant this privilege to allow AWS DMS to use Oracle BFILE read file access in certain cases. This access is required when the replication instance doesn't have file-level access to the redo logs and the redo logs are on non-ASM storage. GRANT EXECUTE on DBMS_FILE_TRANSFER to db_user; -– Grant this privilege to copy the redo log files to a temporary folder using the CopyToTempFolder method. GRANT EXECUTE on DBMS_FILE_GROUP to db_user;
Binary Reader funciona con características de archivos de Oracle que incluyen los directorios de Oracle. Cada objeto de directorio de Oracle incluye el nombre de la carpeta que contiene los archivos de registros REDO que se van a procesar. Estos directorios de Oracle no están representados en el nivel del sistema de archivos. En cambio, se trata de directorios lógicos que se crean en el nivel de bases de datos de Oracle. Puede verlos en la vista ALL_DIRECTORIES
de Oracle.
Si desea que AWS DMS cree estos directorios de Oracle, conceda el privilegio CREATE
ANY DIRECTORY
especificado anteriormente. AWS DMS crea los nombres de directorio con el prefijo DMS_
. Si no concede el privilegio CREATE ANY DIRECTORY
, cree manualmente los directorios correspondientes. En algunos casos, cuando se crean manualmente los directorios de Oracle, el usuario de Oracle especificado en el punto de enlace de origen de Oracle no es el usuario que creó estos directorios. En estos casos, otorgue también el privilegio READ
on DIRECTORY
.
Si el punto final de origen de Oracle está en modo de espera activo de Dataguard (ADG), consulte la publicación Cómo utilizar el lector binario con ADG
AWS DMSLos CDC no admiten Active Dataguard Standby, que no esté configurado para utilizar el servicio de retransporte automático.
En algunos casos, puede utilizar Oracle Managed Files (OMF) para almacenar los registros. O bien, su extremo de origen está en ADG y, por lo tanto, no puede conceder el privilegio CREATE ANY DIRECTORY. En estos casos, cree manualmente los directorios con todas las ubicaciones de registros posibles antes de iniciar la tarea de replicación de AWS DMS. Si AWS DMS no encuentra un directorio creado previamente según lo previsto, la tarea se detiene. Además, AWS DMS no elimina las entradas que ha creado en la vista ALL_DIRECTORIES
, por lo que debe eliminarlas manualmente.
Se requieren privilegios de cuenta adicionales al utilizar Binary Reader con Oracle ASM
Para acceder a los registros de rehacer en Automatic Storage Management (ASM) mediante Binary Reader, conceda los siguientes privilegios al usuario de Oracle especificado en la configuración de conexión de Oracle Endpoint.
SELECT ON v_$transportable_platform SYSASM -– To access the ASM account with Oracle 11g Release 2 (version 11.2.0.2) and later, grant the Oracle endpoint user the SYSASM privilege. For older supported Oracle versions, it's typically sufficient to grant the Oracle endpoint user the SYSDBA privilege.
Para validar el acceso a la cuenta de ASM, abriendo una línea de comando e invocando una de las siguientes declaraciones, dependiendo de su versión de Oracle, tal como se especificó anteriormente.
Si necesita el privilegio SYSDBA
, utilice lo siguiente.
sqlplus
asmuser
/asmpassword
@+asmserver
as sysdba
Si necesita el privilegio SYSASM
, utilice lo siguiente.
sqlplus
asmuser
/asmpassword
@+asmserver
as sysasm
Uso de un Oracle Standby autogestionado como fuente con Binary Reader para CDC enAWS DMS
Para configurar una instancia de Oracle Standby como fuente cuando utilice Binary Reader para CDC, comience con los siguientes requisitos previos:
-
AWS DMSactualmente solo admite Oracle Active Data Guard Standby.
-
Asegúrese de que la configuración de Oracle Data Guard utilice:
-
Servicios de transporte de rehacer para transferencias automatizadas de datos de rehacer.
-
Aplique servicios para aplicar automáticamente el redo a la base de datos en espera.
-
Para confirmar que se cumplen esos requisitos, ejecute la siguiente consulta.
SQL> select open_mode, database_role from v$database;
A partir del resultado de esa consulta, confirme que la base de datos en espera esté abierta en modo SOLO LECTURA y que la función de rehacer se aplique automáticamente. Por ejemplo:
OPEN_MODE DATABASE_ROLE -------------------- ---------------- READ ONLY WITH APPLY PHYSICAL STANDBY
Para configurar una instancia de Oracle Standby como fuente cuando se utiliza Binary Reader para CDC
-
Otorgue los privilegios adicionales necesarios para acceder a los archivos de registro en espera.
GRANT SELECT ON v_$standby_log TO
db_user
; -
Cree un punto final de origen para el Oracle Standby mediante elAWS Management Console oAWS CLI. Al crear el punto de enlace, especifique los siguientes atributos de conexión adicionales.
useLogminerReader=N;useBfile=Y
nota EnAWS DMS, puede utilizar atributos de conexión adicionales para especificar si desea migrar desde los registros de archivo en lugar de desde los registros de rehacer. Para obtener más información, consulte Configuración de endpoint cuando se utiliza Oracle como fuente paraAWS DMS.
-
Configure el destino del registro archivado.
El lector binario de DMS para código fuente de Oracle sin ASM utiliza los directorios de Oracle para acceder a los registros de rehacer archivados. Si la base de datos está configurada para utilizar el área de recuperación rápida (FRA) como destino del registro de archivos, la ubicación de los archivos de rehacer archivados no es constante. Cada día que se generan los registros de rehacer archivados, se crea un nuevo directorio en la FRA, con el formato de nombre de directorio YYYY_MM_DD. Por ejemplo:
DB_RECOVERY_FILE_DEST
/SID
/archivelog/YYYY_MM_DD
Cuando el DMS necesita acceder a los archivos de rehacer archivados en el directorio FRA recién creado y la base de datos principal de lectura y escritura se utiliza como fuente, DMS crea un directorio Oracle nuevo o reemplaza uno existente, de la siguiente manera.
CREATE OR REPLACE DIRECTORY
dmsrep_taskid
AS ‘DB_RECOVERY_FILE_DEST
/SID
/archivelog/YYYY_MM_DD
’;Cuando la base de datos en espera se utiliza como fuente, DMS no puede crear ni reemplazar el directorio de Oracle porque la base de datos está en modo de solo lectura. Sin embargo, puede optar por realizar uno de estos pasos adicionales:
-
Modifíquelo
log_archive_dest_id_1
para utilizar una ruta real en lugar de FRA en una configuración tal que Oracle no cree subdirectorios diarios:ALTER SYSTEM SET log_archive_dest_1=’LOCATION=
full directory path
’A continuación, cree un objeto de directorio de Oracle para que lo utilice DMS:
CREATE OR REPLACE DIRECTORY dms_archived_logs AS ‘
full directory path
’; -
Cree un destino de registro de archivos adicional y un objeto de directorio de Oracle que apunte a ese destino. Por ejemplo:
ALTER SYSTEM SET log_archive_dest_3=’LOCATION=
full directory path
’; CREATE DIRECTORY dms_archived_log AS ‘full directory path
’;A continuación, añada un atributo de conexión adicional al extremo de la fuente de la tarea:
archivedLogDestId=3
-
Cree previamente objetos de directorio de Oracle de forma manual para que los utilice DMS.
CREATE DIRECTORY
dms_archived_log_20210301
AS ‘DB_RECOVERY_FILE_DEST/SID/archivelog/2021_03_01
’; CREATE DIRECTORYdms_archived_log_20210302
AS ‘DB_RECOVERY_FILE_DEST>/SID>/archivelog/2021_03_02
’; ... -
Cree un trabajo de programador de Oracle que se ejecute a diario y cree el directorio necesario.
-
Uso de una base de datos gestionada por usuarios en Oracle Cloud Infrastructure (OCI) como fuente de CDC enAWS DMS
Una base de datos administrada por el usuario es una base de datos que usted configura y controla, como una base de datos Oracle creada en una máquina virtual (VM), un servidor Bare Metal o Exadata. O bien, bases de datos que usted configura y controla que se ejecutan en una infraestructura dedicada, como Oracle Cloud Infrastructure (OCI). La siguiente información describe los privilegios y las configuraciones que necesita al utilizar una base de datos gestionada por usuarios de Oracle en OCI como fuente de captura de datos de cambios (CDC) enAWS DMS.
Para configurar una base de datos Oracle gestionada por usuarios alojada en OCI como fuente para la captura de datos de cambios
-
Otorgue los privilegios de cuenta de usuario necesarios para una base de datos fuente de Oracle administrada por usuarios en OCI. Para obtener más información, consulte Privilegios de cuenta para un endpoint de origen de Oracle autogestionado.
-
Otorgue los privilegios de cuenta necesarios cuando utilice Binary Reader para acceder a los registros de rehacer. Para obtener más información, consulte Privilegios de cuenta necesarios para utilizar Binary Reader.
-
Agregue los privilegios de cuenta que se requieren para utilizar Binary Reader con Oracle Automatic Storage Management (ASM). Para obtener más información, consulte Se requieren privilegios de cuenta adicionales al utilizar Binary Reader con Oracle ASM.
-
Establezca un modo de registro complementario Para obtener más información, consulte la sección sobre la Configuración de un modo complementario.
-
Configure el cifrado TDE. Para obtener más información, consulte Métodos de cifrado cuando se utiliza una base de datos Oracle como punto final de origen.
Las siguientes limitaciones se aplican al replicar datos de una base de datos de origen de Oracle en Oracle Cloud Infrastructure (OCI).
Limitaciones
-
DMS no admite el uso de Oracle LogMiner para acceder a los registros de rehacer.
-
El DMS no admite bases de datos autónomas.
Trabajando con una base de datos OracleAWS gestionada como fuente deAWS DMS
Una base de datosAWS gestionada es una base de datos que se encuentra en un servicio de Amazon, como Amazon RDS, Amazon Aurora o Amazon S3. A continuación, encontrará los privilegios y las configuraciones que necesita configurar al utilizar una baseAWS de datos Oracle administrada conAWS DMS.
Se requieren privilegios de cuenta de usuario en una fuenteAWS de Oracle administrada paraAWS DMS
Otorgue los siguientes privilegios a la cuenta de usuario de Oracle especificada en la definición de punto de enlace fuente de Oracle.
Para todos los valores de parámetros, como
ydb_user
, Oracle asume que el valor está todo en mayúsculas, no ser que especifique el valor con un identificador que que que que que que que que que que que que que que que que que que que que que que que distingue entre mayúsculas Por ejemplo, suponga que crea unany-replicated-table
valor sin usar comillas, como endb_user
CREATE USER
omyuser
CREATE USER
MYUSER
. En este caso, Oracle identifica y almacena el valor en mayúsculas (MYUSER
). Si utiliza comillas, como enCREATE USER "MyUser"
oCREATE USER 'MyUser'
, Oracle identifica y almacena el valor que especifique (MyUser
), que distingue mayúsculas de minúsculas.
GRANT CREATE SESSION to
db_user
; GRANT SELECT ANY TRANSACTION todb_user
; GRANT SELECT on DBA_TABLESPACES todb_user
; GRANT SELECT ONany-replicated-table
todb_user
; GRANT EXECUTE on rdsadmin.rdsadmin_util todb_user
; -- For Oracle 12c or later: GRANT LOGMINING to db_user; – Required only if the Oracle version is 12c or later.
Además, concedaEXECUTE
permisosSELECT
y otorgue permisos aSYS
los objetos mediante el procedimiento de Amazon RDS,rdsadmin.rdsadmin_util.grant_sys_object
tal como se muestra. Para obtener más información, consulte Concesión de privilegios SELECT o EXECUTE a objetos SYS.
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_VIEWS', '
db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_PARTITIONS', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_INDEXES', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_OBJECTS', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TABLES', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_USERS', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CATALOG', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CONSTRAINTS', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CONS_COLUMNS', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_COLS', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_IND_COLUMNS', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_LOG_GROUPS', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOG', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGFILE', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$THREAD', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$NLS_PARAMETERS', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TIMEZONE_NAMES', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TRANSACTION', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$CONTAINERS', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('OBJ$', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_ENCRYPTED_COLUMNS', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS', 'db_user
', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','db_user
','SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR', 'db_user
', 'EXECUTE'); -- (as of Oracle versions 12.1 and later) exec rdsadmin.rdsadmin_util.grant_sys_object('REGISTRY$SQLPATCH', 'db_user
', 'SELECT'); -- (for Amazon RDS Active Dataguard Standby (ADG)) exec rdsadmin.rdsadmin_util.grant_sys_object('V_$STANDBY_LOG', 'db_user
', 'SELECT'); -- (for transparent data encryption (TDE)) exec rdsadmin.rdsadmin_util.grant_sys_object('ENC$', 'db_user
', 'SELECT'); -- (for validation with LOB columns) exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_CRYPTO', 'db_user
', 'EXECUTE'); -- (for binary reader) exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_DIRECTORIES','db_user
','SELECT'); -- Required when the source database is Oracle Data guard, and Oracle Standby is used in the latest release of DMS version 3.4.6, version 3.4.7, and higher. exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATAGUARD_STATS', 'db_user
', 'SELECT');
Para obtener más información sobre el uso de Amazon RDS Active Dataguard Standby (ADG),AWS DMS consulteUso de un Oracle Standby de Amazon RDS (réplica de lectura) como fuente con Binary Reader para CDC enAWS DMS.
Para obtener más información sobre el uso de Oracle TDE con AWS DMS, consulte Métodos de cifrado admitidos para utilizar Oracle como origen para AWS DMS.
Requisitos previos para gestionar transacciones abiertas para Oracle Standby
Cuando utiliceAWS DMS las versiones 3.4.6 y superiores, lleve a cabo los siguientes pasos para gestionar las transacciones abiertas para Oracle Standby.
-
Cree un enlace de base de datos denominado,
AWSDMS_DBLINK
en la base de datos principal.
utilizará el enlace de la base de datos para conectarse a la base de datos principal. Tenga en cuenta que el enlace a la base de datos se ejecuta desde la instancia en espera para consultar las transacciones abiertas que se ejecutan en la base de datos principal. Consulte el siguiente ejemplo, .DMS_USER
CREATE PUBLIC DATABASE LINK AWSDMS_DBLINK CONNECT TO
DMS_USER
IDENTIFIED BYDMS_USER_PASSWORD
USING '(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=PRIMARY_HOST_NAME_OR_IP
)(PORT=PORT
)) (CONNECT_DATA=(SERVICE_NAME=SID
)) )'; -
Compruebe que la conexión con el enlace de base de datos
que utiliza está establecida, tal como se muestra en el siguiente ejemplo.DMS_USER
select 1 from dual@AWSDMS_DBLINK
Configuración de una fuente OracleAWS gestionada por la empresa paraAWS DMS
Antes de utilizar una base de datos OracleAWS gestionada como fuenteAWS DMS, realice las siguientes tareas para la base de datos Oracle:
-
Habilitar copias de seguridad automáticas. Para obtener más información sobre cómo habilitar las copias de seguridad automáticas, consulte Habilitar las copias de seguridad automáticas en la Guía del usuario de Amazon RDS.
-
Configure el registro suplementario.
-
Configure el archivado. Archivar los registros de rehacer de su instancia de base de datos de Amazon RDS for OracleAWS DMS permite recuperar la información del registro mediante Oracle LogMiner o Binary Reader.
Para configurar el archivado
-
Ejecute el comando
rdsadmin.rdsadmin_util.set_configuration
para configurar el archivado.Por ejemplo, para conservar los registros de rehacer archivados durante 24 horas, ejecute el siguiente comando.
exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24); commit;
nota La confirmación es necesaria para que los cambios surtan efecto.
-
Asegúrese de que su almacenamiento tenga suficiente espacio para los registros de rehacer archivados durante el período de retención especificado. Por ejemplo, si tu período de retención es de 24 horas, calcula el tamaño total de los registros de rehacer archivados acumulados durante una hora normal de procesamiento de transacciones y multiplica ese total por 24. Compara este total calculado de 24 horas con el espacio de almacenamiento disponible y decide si tienes suficiente espacio de almacenamiento para procesar una transacción durante 24 horas.
Para configurar el registro suplementario
-
Ejecute el siguiente comando para habilitar el registro complementario en el nivel de base de datos.
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
-
Ejecute el siguiente comando para habilitar el registro complementario de clave principal.
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','PRIMARY KEY');
-
(Opcional) Habilite el registro complementario a nivel de clave a nivel de tabla.
La base de datos de origen genera una pequeña sobrecarga cuando se habilita el registro complementario a nivel de clave. Por lo tanto, si está migrando solo un subconjunto de sus tablas, es posible que desee habilitar el registro complementario a nivel de clave a nivel de tabla. Para habilitar el registro complementario a nivel de clave a nivel de tabla, ejecute el siguiente comando.
alter table table_name add supplemental log data (PRIMARY KEY) columns;
Configuración de una tarea de CDC para usar Binary Reader con una fuente de RDS para Oracle paraAWS DMS
Puede configurar el accesoAWS DMS a los registros de rehacer de instancias de Amazon RDS for Oracle de origen mediante Binary Reader for CDC.
Para utilizar Oracle LogMiner, los privilegios de cuenta de usuario mínimos requeridos son suficientes. Para obtener más información, consulte Se requieren privilegios de cuenta de usuario en una fuenteAWS de Oracle administrada paraAWS DMS.
Para utilizar Binary Reader de AWS DMS, especifique los valores y atributos de conexión adicionales para el punto de enlace de origen de Oracle, según la versión de AWS DMS.
La compatibilidad con Binary Reader está disponible en las siguientes versiones de Amazon RDS for Oracle:
-
Oracle 11.2: versiones 11.2.0.4V11 y posteriores
-
Oracle 12.1: versiones 12.1.0.2.V7 y posteriores
-
Oracle 12.2 — Todas las versiones.
-
Oracle 18.0 — Todas las versiones.
-
Oracle 19.0 — Todas las versiones.
Para configurar la CDC mediante Binary Reader de
-
Inicie sesión en su base de datos fuente de Amazon RDS for Oracle como usuario maestro y ejecute los siguientes procedimientos almacenados para crear los directorios a nivel de servidor.
exec rdsadmin.rdsadmin_master_util.create_archivelog_dir; exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;
-
Otorgue los siguientes privilegios a la cuenta de usuario de Oracle que se utiliza para acceder al extremo de origen de Oracle.
GRANT READ ON DIRECTORY ONLINELOG_DIR TO
db_user
; GRANT READ ON DIRECTORY ARCHIVELOG_DIR TOdb_user
; -
Defina los siguientes atributos de conexión adicionales en el extremo de origen de Oracle de Amazon RDS:
-
Para las versiones 11.2 y 12.1 de RDS Oracle, defina lo siguiente.
useLogminerReader=N;useBfile=Y;accessAlternateDirectly=false;useAlternateFolderForOnline=true; oraclePathPrefix=/rdsdbdata/db/{$DATABASE_NAME}_A/;usePathPrefix=/rdsdbdata/log/;replacePathPrefix=true;
-
Para las versiones 12.2, 18.0 y 19.0 de RDS Oracle, defina lo siguiente.
useLogminerReader=N;useBfile=Y
-
Asegúrese de que no haya ningún espacio en blanco después del separador de punto y coma (;) para la configuración de varios atributos, por ejemplooneSetting;thenAnother
.
Para obtener más información sobre la configuración de una tarea de los CDC, consulteConfiguración de CDC en una base de datos fuente de Oracle.
Uso de un Oracle Standby de Amazon RDS (réplica de lectura) como fuente con Binary Reader para CDC enAWS DMS
Compruebe los siguientes requisitos previos para utilizar Amazon RDS for Oracle Standby como fuente cuando utilice Binary Reader para CDC enAWS DMS:
-
Utilice el usuario maestro de Oracle para configurar Binary Reader.
-
Asegúrese de queAWS DMS actualmente solo admite el uso de Oracle Active Data Guard Standby.
Después de hacerlo, utilice el siguiente procedimiento para utilizar RDS para Oracle Standby como fuente cuando utilice Binary Reader para CDC.
Para configurar un RDS para Oracle Standby como fuente cuando se utiliza Binary Reader para CDC
-
Inicie sesión en RDS para la réplica principal de Oracle como usuario maestro.
-
Ejecute los siguientes procedimientos almacenados, tal como se documenta en la Guía del usuario de Amazon RDS, para crear los directorios a nivel de servidor.
exec rdsadmin.rdsadmin_master_util.create_archivelog_dir; exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;
-
Identifique los directorios creados en el paso 2.
SELECT directory_name, directory_path FROM all_directories WHERE directory_name LIKE ( 'ARCHIVELOG_DIR_%' ) OR directory_name LIKE ( 'ONLINELOG_DIR_%' )
Por ejemplo, el código anterior muestra una lista de directorios como la siguiente.
-
Otorgue el
Read
privilegio en los directorios anteriores a la cuenta de usuario de Oracle que se utiliza para acceder a Oracle Standby.GRANT READ ON DIRECTORY ARCHIVELOG_DIR_A TO
db_user
; GRANT READ ON DIRECTORY ARCHIVELOG_DIR_B TOdb_user
; GRANT READ ON DIRECTORY ONLINELOG_DIR_A TOdb_user
; GRANT READ ON DIRECTORY ONLINELOG_DIR_B TOdb_user
; -
Realice un cambio de registro de archivado en la instancia principal. De este modo, se asegura de que los cambios en también
ALL_DIRECTORIES
se transfieran al Oracle Standby. -
Ejecute una
ALL_DIRECTORIES
consulta en Oracle Standby para confirmar que se aplicaron los cambios. -
Cree un punto final de origen para Oracle Standby mediante la consolaAWS DMS de administración oAWS Command Line Interface (AWS CLI). Al crear el punto final, especifique los siguientes atributos de conexión adicionales.
useLogminerReader=N;useBfile=Y;archivedLogDestId=1;additionalArchivedLogDestId=2
-
Tras crear el punto de conexión, utilice Probar conexión de punto de conexión en la página Crear punto de conexión de la consola o elAWS CLI
test-connection
comando para comprobar que la conectividad está establecida.
Restricciones en el uso de Oracle como origen para AWS DMS
Se aplican las siguientes restricciones cuando se utiliza una base de datos de Oracle como origen para AWS DMS:
-
AWS DMSno admite los tipos de datos de Oracle Extended en este momento.
-
AWS DMS no admite nombres de objetos largos (más de 30 bytes).
-
AWS DMS no admite índices basados en funciones.
-
Si administra el registro complementario y lleva a cabo transformaciones en cualquiera de las columnas, asegúrese de que el registro complementario esté activado para todos los campos y columnas. Para obtener más información acerca de cómo configurar un modo complementario, consulte los temas siguientes:
-
Para obtener una base de datos fuente de Oracle autogestionada, consulteActivación del modo complementario.
-
Para obtener una baseAWS de datos fuente de Oracle administrada, consulte Configuración de una fuente OracleAWS gestionada por la empresa paraAWS DMS.
-
-
AWS DMSno admite la base de datos raíz de contenedores multiusuario (CDB$ROOT). Es compatible con un PDB que utilice el lector binario.
-
AWS DMS no admite restricciones diferidas.
-
Los LOB seguros solo se admiten en el modo LOB completo si se realiza una búsqueda de LOB.
-
AWS DMSadmite la
rename table table-name to new-table-name
sintaxis de todas las versiones 11 y posteriores de Oracle compatibles. Esta sintaxis no se admite para ninguna base de datos de origen de la versión 10 de Oracle. -
AWS DMS no replica los resultados de la instrucción DDL
ALTER TABLE ADD
. En lugar de replicarcolumn
data_type
DEFAULTdefault_value
en el destino, establece la nueva columna endefault_value
NULL
. -
Cuando utiliceAWS DMS la versión 3.4.7 o posterior, para replicar los cambios que resulten de las operaciones de partición o subpartición, haga lo siguiente antes de iniciar una tarea de DMS.
-
Cree manualmente la estructura de tablas particionadas (DDL);
-
Asegúrese de que el DDL sea el mismo tanto en el origen de Oracle como en el destino de Oracle;
-
Defina el atributo de conexión adicional
enableHomogenousPartitionOps=true
.
Para obtener más información acerca de
enableHomogenousPartitionOps
, consulte Configuración de endpoint cuando se utiliza Oracle como fuente paraAWS DMS. Además, tenga en cuenta que en las tareas de FULL+CDC, el DMS no replica los cambios de datos capturados como parte de los cambios almacenados en caché. En ese caso de uso, vuelva a crear la estructura de la tabla en el destino de Oracle y vuelva a cargar las tablas en cuestión.Antes deAWS DMS la versión 3.4.7:
El DMS no replica los cambios de datos que resultan de las operaciones de partición o subpartición (
ADD
DROP
,EXCHANGE
, yTRUNCATE
). Estas actualizaciones pueden provocar los siguientes errores durante la replicación:-
Para las operaciones
ADD
, las actualizaciones y eliminaciones de los datos agregados pueden generar una advertencia de «0 rows affected» (0 filas afectadas). -
Para las operaciones
TRUNCATE
yDROP
, las nuevas inserciones podrían generar errores de «duplicates» (duplicados). -
EXCHANGE
puede generar tanto una advertencia de «0 rows affected» (0 filas afectadas) «0 filas afectadas» como errores de «duplicates» (duplicados).
Para replicar los cambios resultantes de operaciones de partición o subpartición, vuelva a cargar las tablas en cuestión. Tras añadir una nueva partición vacía, las operaciones en la partición recién añadida se replican en el destino de forma normal.
-
-
AWS DMSlas versiones anteriores a la 3.4 no admiten los cambios de datos en el destino que resulten de ejecutar la
CREATE TABLE AS
sentencia en la fuente. Sin embargo, la nueva tabla se crea en el destino. -
AWS DMS no captura los cambios realizados por el paquete
DBMS_REDEFINITION
de Oracle; por ejemplo, los metadatos de la tabla y delOBJECT_ID
. -
AWS DMS asigna columnas BLOB y CLOB vacías
NULL
en el destino. -
Al capturar cambios con Oracle 11 LogMiner, se pierde una actualización de una columna CLOB con una longitud de cadena superior a 1982 y el objetivo no se actualiza.
-
Durante la captura de datos de cambio (CDC), AWS DMS no admite actualizaciones por lotes en las columnas numéricas definidas como clave principal.
-
AWS DMS no admite algunos comandos
UPDATE
. El siguiente ejemplo es unUPDATE
comando no admitido.UPDATE TEST_TABLE SET KEY=KEY+1;
Aquí,
TEST_TABLE
es el nombre de la tabla yKEY
es una columna numérica definida como una clave principal. -
AWS DMSno admite el modo LOB completo para cargar columnas RAW LONG y LONG. En su lugar, puede utilizar el modo LOB limitado para migrar estos tipos de datos a un destino de Oracle. En el modo LOB limitado,AWS DMS trunca los datos en 64 KB que haya configurado como columnas LONG o LONG RAW de más de 64 KB.
-
AWS DMSno admite el modo LOB completo para cargar columnas de XML TYPE. En su lugar, puede utilizar el modo LOB limitado para migrar las columnas de XML TYPE a un destino de Oracle. En el modo LOB limitado, el DMS trunca cualquier dato mayor que la variable «Tamaño máximo de LOB» definida por el usuario. El valor máximo recomendado para el «Tamaño máximo de LOB» es de 100 MB.
-
AWS DMS no replica las tablas cuyos nombres contienen apóstrofos.
-
AWS DMSapoya a los CDC desde puntos de vista materializados. Sin embargo, el DMS no apoya a los CDC desde ningún otro punto de vista.
-
AWS DMSno admite CDC para tablas organizadas por índices con un segmento adicional.
-
Cuando utiliza Oracle LogMiner para acceder a los registros de rehacer,AWS DMS tiene las siguientes limitaciones:
-
Solo para Oracle 12, AWS DMS no replica ningún cambio en las columnas de LOB.
-
Para todas las versiones de Oracle, AWS DMS no replica el resultado de las operaciones
UPDATE
en las columnasXMLTYPE
y LOB. -
AWS DMSno admite transacciones XA en la replicación cuando se usa Oracle LogMiner.
-
Oracle LogMiner no admite conexiones a una base de datos conectable (PDB). Para conectarse a un PDB, acceda a los registros REDO mediante Binary Reader.
-
No se admiten las operaciones SHRINK SPACE.
-
-
Cuando se utiliza Binary Reader, AWS DMS tiene estas limitaciones:
-
No admite clústeres de tablas.
-
Solo admite
SHRINK SPACE
operaciones a nivel de tabla. Este nivel incluye la tabla completa, las particiones y las subparticiones. -
No admite cambios en las tablas organizadas por índices con compresión de claves.
-
No admite la implementación de registros de rehacer en línea en dispositivos sin procesar.
-
Binary Reader solo admite TDE para bases de datos Oracle autogestionadas, ya que RDS for Oracle no admite la recuperación de contraseñas de monedero para las claves de cifrado de TDE.
-
-
AWS DMSno admite conexiones a un origen de Oracle de Amazon RDS mediante un proxy de Oracle Automatic Storage Management (ASM).
-
AWS DMS no admite columnas virtuales.
-
AWS DMSno admite el tipo de
ROWID
datos ni las vistas materializadas basadas en una columna ROWID.AWS DMStiene soporte parcial para Oracle Materialized Views. Para cargas completas, DMS puede hacer una copia a carga completa de una vista materializada de Oracle. El DMS copia la vista materializada como tabla base en el sistema de destino e ignora cualquier columna de ROWID de la vista materializada. Para la replicación continua (CDC), el DMS intenta replicar los cambios en los datos de Materialized View, pero es posible que los resultados no sean los ideales. Concretamente, si la vista materializada se actualiza por completo, el DMS replica las eliminaciones individuales de todas las filas, seguidas de las inserciones individuales de todas las filas. Este es un ejercicio que consume muchos recursos y podría funcionar mal para vistas materializadas con un gran número de filas. Para una replicación continua en la que las vistas materializadas se actualicen rápidamente, el DMS intenta procesar y replicar los cambios en los datos de actualización rápida. En cualquier caso, el DMS omite cualquier columna de ROWID en la vista materializada.
-
AWS DMS no carga ni captura tablas temporales globales.
-
Para los destinos de S3 que utilizan la replicación, habilite el registro complementario en cada columna para que las actualizaciones de las filas de origen puedan capturar todos los valores de las columnas. A continuación se muestra un ejemplo:
alter table yourtablename add supplemental log data (all) columns;
. -
La actualización de una fila con una clave única compuesta que contiene no se
null
puede replicar en el destino. -
AWS DMSno admite el uso de varias claves de cifrado TDE de Oracle en el mismo extremo de origen. Cada punto final solo puede tener un atributo para el nombre de clave de cifrado TDE
securityDbEncryptionName
"» y una contraseña TDE para esta clave. -
Al replicar desde Amazon RDS for Oracle, TDE solo se admite con espacios de tablas cifrados y con Oracle LogMiner.
-
AWS DMSno admite varias operaciones de cambio de nombre de tablas en rápida sucesión.
-
Cuando se utiliza Oracle 19.0 como origen,AWS DMS no admite las siguientes características de las siguientes características de:
-
Redireccionamiento de DML de Data-Guard
-
Tablas híbridas
-
Cuentas Oracle exclusivas de Scheme
-
-
AWS DMSno admite la migración de tablas o vistas de tipo
BIN$
oDR$
. -
A partir de Oracle 18.x,AWS DMS no admite la captura de datos de cambios (CDC) desde Oracle Express Edition (Oracle Database XE).
-
Al migrar datos de una columna CHAR, el DMS trunca los espacios finales.
-
AWS DMSno admite una base de datos privada virtual (VPD).
-
AWS DMSno admite la replicación desde contenedores de aplicaciones.
-
AWS DMSno admite la ejecución de puntos de restauración ni la base de datos Oracle Flashback, ya que estas operaciones afectan a la coherencia de los archivos Oracle Redo Log.
-
INSERT
El procedimiento de carga directa con la opción de ejecución en parallel no se admite para tablas con más de 255 columnas o cuando el tamaño de una fila es superior a 8K. -
Una tabla de origen sin clave principal ni única requiere que se habilite el registro complementario de TODAS LAS COLUMNAS. Crea más actividades de rehacer el registro y puede aumentar la latencia de los CDC del DMS.
Compatibilidad con SSL para un punto de enlace de Oracle
Los puntos de enlace de Oracle para AWS DMS admiten SSL V3 para los modos de SSL none
y verify-ca
. Para utilizar SSL con un punto de enlace de Oracle, cargue el wallet de Oracle para el punto de enlace en lugar de archivos de certificado .pem.
Temas
Uso de un certificado existente para Oracle SSL
Para utilizar una instalación de cliente Oracle existente para crear el archivo wallet de Oracle desde el archivo de certificado CA, siga los pasos que se indican a continuación.
Para utilizar una instalación de cliente de Oracle para Oracle SSL con AWS DMS
-
Establezca la variable del sistema
ORACLE_HOME
en la ubicación del directoriodbhome_1
ejecutando el siguiente comando.prompt>export ORACLE_HOME=/home/user/app/user/product/12.1.0/dbhome_1
-
Adjunte
$ORACLE_HOME/lib
a la variable del sistemaLD_LIBRARY_PATH
.prompt>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
-
Cree un directorio para el wallet de Oracle en
$ORACLE_HOME/ssl_wallet
.prompt>mkdir $ORACLE_HOME/ssl_wallet
-
Coloque el archivo
.pem
del certificado CA en el directoriossl_wallet
. Si usa Amazon RDS, puede descargar el archivo de certificado de CArds-ca-2015-root.pem
raíz alojado en Amazon RDS. Para obtener más información sobre la descarga de este archivo, consulte Uso de SSL/TLS para cifrar una conexión a una instancia de base de datos en la Guía del usuario de Amazon RDS. -
Ejecute los siguientes comandos para crear el wallet de Oracle.
prompt>orapki wallet create -wallet $ORACLE_HOME/ssl_wallet -auto_login_only prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert -cert $ORACLE_HOME/ssl_wallet/ca-cert.pem -auto_login_only
Cuando haya completado los pasos anteriores, podrá importar el archivo wallet con la llamada a la API ImportCertificate
especificando el parámetro certificate-wallet. A continuación, podrá utilizar el certificado wallet importado al seleccionar verify-ca
como el modo SSL al crear o modificar su punto de enlace de Oracle.
Los monederos de Oracle son archivos binarios. AWS El DMS acepta estos archivos tal cual.
Uso de un certificado autofirmado para Oracle SSL
Para utilizar un certificado autofirmado para Oracle SSL, siga los pasos siguientes, asumiendo que la contraseña de Oracle Wallet esoracle123
.
Para utilizar un certificado autofirmado para Oracle SSL con AWS DMS
-
Cree un directorio que utilizará para trabajar con el certificado autofirmado.
mkdir -p /u01/app/oracle/self_signed_cert
-
Cambie al directorio que ha creado en el paso anterior.
cd /u01/app/oracle/self_signed_cert
-
Cree una clave raíz.
openssl genrsa -out self-rootCA.key 2048
-
Firme usted mismo un certificado raíz con la clave raíz que ha creado en el paso anterior.
openssl req -x509 -new -nodes -key self-rootCA.key -sha256 -days 3650 -out self-rootCA.pem
Utilice parámetros de entrada como los siguientes.
-
Country Name (2 letter code) [XX]
, por ejemplo:AU
-
State or Province Name (full name) []
, por ejemplo:NSW
-
Locality Name (e.g., city) [Default City]
, por ejemplo:Sydney
-
Organization Name (e.g., company) [Default Company Ltd]
, por ejemplo:AmazonWebService
-
Organizational Unit Name (e.g., section) []
, por ejemplo:DBeng
-
Common Name (e.g., your name or your server's hostname) []
, por ejemplo:aws
-
Email Address []
, por ejemplo: abcd.efgh@amazonwebservice.com
-
-
Cree un directorio wallet de Oracle para la base de datos de Oracle.
mkdir -p /u01/app/oracle/wallet
-
Cree un nuevo wallet de Oracle.
orapki wallet create -wallet "/u01/app/oracle/wallet" -pwd oracle123 -auto_login_local
-
Añada el certificado raíz al wallet de Oracle.
orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd oracle123 -trusted_cert -cert /u01/app/oracle/self_signed_cert/self-rootCA.pem
-
Enumere el contenido del wallet de Oracle. La lista debe incluir el certificado raíz.
orapki wallet display -wallet /u01/app/oracle/wallet -pwd oracle123
Por ejemplo, este aspecto puede tener un aspecto similar al siguiente.
Requested Certificates: User Certificates: Trusted Certificates: Subject: CN=aws,OU=DBeng,O= AmazonWebService,L=Sydney,ST=NSW,C=AU
-
Genere la solicitud de firma del certificado (CSR) mediante la utilidad ORAPKI.
orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd oracle123 -dn "CN=aws" -keysize 2048 -sign_alg sha256
-
Ejecute el siguiente comando de .
openssl pkcs12 -in /u01/app/oracle/wallet/ewallet.p12 -nodes -out /u01/app/oracle/wallet/nonoracle_wallet.pem
Esto tiene un resultado similar al siguiente.
Enter Import Password: MAC verified OK Warning unsupported bag type: secretBag
-
Inserte 'dms' como nombre común.
openssl req -new -key /u01/app/oracle/wallet/nonoracle_wallet.pem -out certdms.csr
Utilice parámetros de entrada como los siguientes.
-
Country Name (2 letter code) [XX]
, por ejemplo:AU
-
State or Province Name (full name) []
, por ejemplo:NSW
-
Locality Name (e.g., city) [Default City]
, por ejemplo:Sydney
-
Organization Name (e.g., company) [Default Company Ltd]
, por ejemplo:AmazonWebService
-
Organizational Unit Name (e.g., section) []
, por ejemplo:aws
-
Common Name (e.g., your name or your server's hostname) []
, por ejemplo:aws
-
Email Address []
, por ejemplo: abcd.efgh@amazonwebservice.com
Asegúrese de que no sea lo mismo que en el paso 4. Puede hacerlo, por ejemplo, cambiando el nombre de la unidad organizativa por un nombre diferente, como se muestra.
Introduzca los atributos adicionales que se enviarán a continuación con su solicitud de certificado.
-
A challenge password []
, por ejemplo:oracle123
-
An optional company name []
, por ejemplo:aws
-
-
Obtenga la firma del certificado.
openssl req -noout -text -in certdms.csr | grep -i signature
La clave de firma de esta publicación es
sha256WithRSAEncryption
. -
Ejecute el siguiente comando para generar el archivo certificate (
.crt
).openssl x509 -req -in certdms.csr -CA self-rootCA.pem -CAkey self-rootCA.key -CAcreateserial -out certdms.crt -days 365 -sha256
Esto muestra un resultado similar al siguiente.
Signature ok subject=/C=AU/ST=NSW/L=Sydney/O=awsweb/OU=DBeng/CN=aws Getting CA Private Key
-
Añada el certificado al wallet.
orapki wallet add -wallet /u01/app/oracle/wallet -pwd oracle123 -user_cert -cert certdms.crt
-
Ver el monedero. Debería tener dos entradas. Consulte el código siguiente.
orapki wallet display -wallet /u01/app/oracle/wallet -pwd oracle123
-
Configure el archivo
sqlnet.ora
($ORACLE_HOME/network/admin/sqlnet.ora
).WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/wallet/) ) ) SQLNET.AUTHENTICATION_SERVICES = (NONE) SSL_VERSION = 1.0 SSL_CLIENT_AUTHENTICATION = FALSE SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)
-
Detenga el listener de Oracle.
lsnrctl stop
-
Añada entradas para SSL en el archivo
listener.ora
($ORACLE_HOME/network/admin/listener.ora
).SSL_CLIENT_AUTHENTICATION = FALSE WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/wallet/) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME =
SID
) (ORACLE_HOME =ORACLE_HOME
) (SID_NAME =SID
) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCPS)(HOST = localhost.localdomain)(PORT = 1522)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) -
Configure el archivo
tnsnames.ora
($ORACLE_HOME/network/admin/tnsnames.ora
).<SID>= (DESCRIPTION= (ADDRESS_LIST = (ADDRESS=(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <SID>) ) ) <SID>_ssl= (DESCRIPTION= (ADDRESS_LIST = (ADDRESS=(PROTOCOL = TCPS)(HOST = localhost.localdomain)(PORT = 1522)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <SID>) ) )
-
Reinicie el listener de Oracle.
lsnrctl start
-
Muestre el estado de listener de Oracle.
lsnrctl status
-
Pruebe la conexión SSL a la base de datos desde localhost utilizando sqlplus y la entrada tnsnames SSL.
sqlplus -L
ORACLE_USER
@SID
_ssl -
Compruebe que se ha conectado correctamente mediante SSL.
SELECT SYS_CONTEXT('USERENV', 'network_protocol') FROM DUAL; SYS_CONTEXT('USERENV','NETWORK_PROTOCOL') -------------------------------------------------------------------------------- tcps
-
Cambie de directorio al directorio con el certificado autofirmado.
cd /u01/app/oracle/self_signed_cert
-
Cree un nuevo wallet de cliente de Oracle que utilice AWS DMS.
orapki wallet create -wallet ./ -auto_login_only
-
Añada el certificado raíz autofirmado al wallet de Oracle.
orapki wallet add -wallet ./ -trusted_cert -cert self-rootCA.pem -auto_login_only
-
Enumere el contenido del wallet de Oracle que utilice AWS DMS. La lista debe incluir el certificado raíz autofirmado.
orapki wallet display -wallet ./
Esto tiene un resultado similar al siguiente.
Trusted Certificates: Subject: CN=aws,OU=DBeng,O=AmazonWebService,L=Sydney,ST=NSW,C=AU
-
Cargue el wallet de Oracle que acaba de crear en AWS DMS.
Métodos de cifrado admitidos para utilizar Oracle como origen para AWS DMS
En la tabla siguiente, puede encontrar los métodos de cifrado de datos transparente (TDE) que AWS DMS admite cuando se trabaja con una base de datos de origen de Oracle.
Método de acceso a registros REDO | Espacio de tabla de TDE | Columna de TDE |
---|---|---|
Oráculo LogMiner | Sí | Sí |
Binary Reader | Sí | Sí |
AWS DMSadmite Oracle TDE cuando se utiliza Binary Reader, tanto a nivel de columna como a nivel de espacio de tablas. Para utilizar el cifrado TDEAWS DMS, identifique primero la ubicación de la cartera Oracle donde se almacenan la clave de cifrado TDE y la contraseña de TDE. A continuación, identifique la clave de cifrado TDE y la contraseña correctas para su terminal de origen de Oracle.
Para identificar y especificar la clave de cifrado y la contraseña para el cifrado TDE
-
Ejecute la siguiente consulta para encontrar la cartera de cifrado de Oracle en el host de la base de datos Oracle.
SQL> SELECT WRL_PARAMETER FROM V$ENCRYPTION_WALLET; WRL_PARAMETER -------------------------------------------------------------------------------- /u01/oracle/product/12.2.0/dbhome_1/data/wallet/
Aquí
/u01/oracle/product/12.2.0/dbhome_1/data/wallet/
está la ubicación de la cartera. -
Obtenga el ID de la clave maestra mediante una de las siguientes opciones de cifrado, según la que devuelva este valor.
-
Para el cifrado a nivel de tabla o columna, ejecute las siguientes consultas.
SQL> SELECT OBJECT_ID FROM ALL_OBJECTS WHERE OWNER='DMS_USER' AND OBJECT_NAME='TEST_TDE_COLUMN' AND OBJECT_TYPE='TABLE'; OBJECT_ID --------------- 81046 SQL> SELECT MKEYID FROM SYS.ENC$ WHERE OBJ#=81046; MKEYID ------------ AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Aquí
AWGDC9glSk8Xv+3bVveiVSg
está el ID de la clave maestra (MKEYID
). Si obtiene un valor paraMKEYID
, puede continuar con el paso 3. De lo contrario, continúe con el paso 2.2.nota Los
'A'
caracteres de la cadena final (AAA...
) no forman parte del valor. -
Para el cifrado a nivel de espacio de tablas, ejecute las siguientes consultas.
SQL> SELECT TABLESPACE_NAME, ENCRYPTED FROM dba_tablespaces; TABLESPACE_NAME ENC ------------------------------ --- SYSTEM NO SYSAUX NO UNDOTBS1 NO TEMP NO USERS NO TEST_ENCRYT YES SQL> SELECT name,utl_raw.cast_to_varchar2( utl_encode.base64_encode('01'||substr(mkeyid,1,4))) || utl_raw.cast_to_varchar2( utl_encode.base64_encode(substr(mkeyid,5,length(mkeyid)))) masterkeyid_base64 FROM (SELECT t.name, RAWTOHEX(x.mkid) mkeyid FROM v$tablespace t, x$kcbtek x WHERE t.ts#=x.ts#) WHERE name = 'TEST_ENCRYT'; NAME MASTERKEYID_BASE64 ------------------------------ ---------------------------------- TEST_ENCRYT AWGDC9glSk8Xv+3bVveiVSg=
Aquí
AWGDC9glSk8Xv+3bVveiVSg
está el ID de la clave maestra (TEST_ENCRYT
). Si los pasos 2.1 y 2.2 devuelven un valor, siempre son idénticos.El
'='
carácter final no forma parte del valor.
-
-
En la línea de comandos, enumere las entradas de la cartera de cifrado en el host de la base de datos Oracle de origen.
$ mkstore -wrl /u01/oracle/product/12.2.0/dbhome_1/data/wallet/ -list Oracle Secret Store entries: ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ORACLE.SECURITY.DB.ENCRYPTION.AY1mRA8OXU9Qvzo3idU4OH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY ORACLE.SECURITY.ID.ENCRYPTION. ORACLE.SECURITY.KB.ENCRYPTION. ORACLE.SECURITY.KM.ENCRYPTION.AY1mRA8OXU9Qvzo3idU4OH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Busque la entrada que contiene el identificador de la clave maestra que encontró en el paso 2 (
AWGDC9glSk8Xv+3bVveiVSg
). Esta entrada es el nombre de la clave de cifrado TDE. -
Vea los detalles de la entrada que encontró en el paso anterior.
$ mkstore -wrl /u01/oracle/product/12.2.0/dbhome_1/data/wallet/ -viewEntry ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA Oracle Secret Store Tool : Version 12.2.0.1.0 Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved. Enter wallet password: ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA = AEMAASAASGYs0phWHfNt9J5mEMkkegGFiD4LLfQszDojgDzbfoYDEACv0x3pJC+UGD/PdtE2jLIcBQcAeHgJChQGLA==
Introduzca la contraseña del monedero para ver el resultado.
En este caso, el valor a la derecha de
'='
es la contraseña de TDE. -
Especifique el nombre de la clave de cifrado TDE para el extremo de origen de Oracle configurando el atributo de conexión
securityDbEncryptionName
adicional.securityDbEncryptionName=ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-
Proporcione la contraseña TDE asociada a esta clave en la consola como parte del valor de contraseña de la fuente de Oracle. Siga el siguiente orden para formatear los valores de contraseña separados por comas, que terminan con el valor de contraseña TDE.
Oracle_db_password
,ASM_Password
,AEMAASAASGYs0phWHfNt9J5mEMkkegGFiD4LLfQszDojgDzbfoYDEACv0x3pJC+UGD/PdtE2jLIcBQcAeHgJChQGLA==Especifique los valores de contraseña en este orden independientemente de la configuración de la base de datos de Oracle. Por ejemplo, si usa TDE pero su base de datos Oracle no usa ASM, especifique los valores de contraseña en el siguiente orden, separados por comas.
Oracle_db_password
,,AEMAASAASGYs0phWHfNt9J5mEMkkegGFiD4LLfQszDojgDzbfoYDEACv0x3pJC+UGD/PdtE2jLIcBQcAeHgJChQGLA==
Si las credenciales de TDE que especifica son incorrectas, la tarea deAWS DMS migración no fallará. Sin embargo, la tarea tampoco lee ni aplica los cambios de replicación en curso a la base de datos de destino. Tras iniciar la tarea, supervise las estadísticas de la tabla en la página de tareas de migración de la consola para asegurarse de que los cambios se repiten.
Si un DBA cambia los valores de las credenciales de TDE de la base de datos Oracle mientras se ejecuta la tarea, la tarea fallará. El mensaje de error contiene el nuevo nombre de la clave de cifrado TDE. Para especificar valores nuevos y reiniciar la tarea, utilice el procedimiento anterior.
No puede manipular una cartera TDE creada en una ubicación de Oracle Automatic Storage Management (ASM) porque los comandos a nivel del sistema operativocp
, comomv
orapki
, ymkstore
corrompen los archivos de cartera almacenados en una ubicación de ASM. Esta restricción es específica de los archivos de monedero de TDE almacenados únicamente en una ubicación de ASM, pero no de los archivos de monedero de TDE almacenados en un directorio del sistema operativo local.
Para manipular una cartera TDE almacenada en ASM con comandos a nivel de sistema operativo, cree un almacén de claves local y fusiona el almacén de claves de ASM con el almacén de claves local de la siguiente manera:
-
Cree un almacén de claves local
ADMINISTER KEY MANAGEMENT create keystore
file system wallet location
identified bywallet password
; -
Combine el almacén de claves de ASM con el almacén de claves local.
ADMINISTER KEY MANAGEMENT merge keystore
ASM wallet location
identified bywallet password
into existing keystorefile system wallet location
identified bywallet password
with backup;
A continuación, para enumerar las entradas de la cartera de cifrado y la contraseña de TDE, ejecute los pasos 3 y 4 en el almacén de claves local.
Métodos de compresión admitidos para usar Oracle como origen para AWS DMS
En la tabla siguiente, puede encontrar los métodos de compresión compatibles con AWS DMS cuando se utilizan bases de datos de origen de Oracle. Como se muestra en la tabla, el soporte de compresión depende tanto de la versión de la base de datos de Oracle como de si DMS está configurado para usar Oracle LogMiner para acceder a los registros de rehacer.
Versión | Básica | OLTP |
HCC (de Oracle 11g R2 o posterior) |
Otros |
---|---|---|---|---|
Oracle 10 | No | N/A | N/A | No |
Oracle 11 o posterior — Oracle LogMiner | Sí | Sí | Sí | Sí, cualquier método de compresión admitido por Oracle LogMiner. |
Oracle 11 o posterior — Binary Reader | Sí | Sí | Sí. Para obtener más información, consulte la siguiente nota. | Sí |
Cuando el punto de enlace de origen de Oracle está configurado para utilizar Binary Reader, el nivel de consulta bajo del método de compresión HCC tan solo se admite para las tareas de carga completa.
Replicación de tablas anidadas utilizando Oracle como origen para AWS DMS
AWS DMSadmite la replicación de tablas de Oracle que contienen columnas que son tablas anidadas o tipos definidos. Para habilitar esta funcionalidad, agregue la siguiente configuración de atributo de conexión adicional al punto de conexión de origen de Oracle.
allowSelectNestedTables=true;
AWS DMS crea las tablas de destino a partir de tablas anidadas de Oracle como tablas principales y secundarias normales en el destino sin una restricción única. Para acceder a los datos correctos en el destino, una las tablas principal y secundaria. Para ello, primero cree manualmente un índice no único en la columna NESTED_TABLE_ID
de la tabla secundaria de destino. A continuación, puede utilizar la columna NESTED_TABLE_ID
de la cláusula de unión ON
junto con la columna principal que corresponde al nombre de la tabla secundaria. Además, la creación de dicho índice mejora el rendimiento cuando AWS DMS actualiza o elimina datos de la tabla secundaria de destino. Para ver un ejemplo, consulte Ejemplo de unión para tablas principal y secundaria en el destino.
Se recomienda configurar la tarea de modo que se detenga después de finalizar una carga completa. A continuación, cree estos índices no únicos para todas las tablas secundarias replicadas en el destino y reanude la tarea.
Si se agrega una tabla anidada capturada a una tabla principal existente (capturada o no capturada), AWS DMS la gestiona correctamente. Sin embargo, no se crea el índice no único de la tabla de destino correspondiente. En este caso, si la tabla secundaria de destino se vuelve extremadamente grande, el rendimiento puede verse afectado. Si esto sucede, le recomendamos que detenga la tarea, cree el índice y, a continuación, reanude la tarea.
Después de replicar las tablas anidadas en el destino, haga que el DBA ejecute una unión en las tablas principal y secundaria correspondientes para aplanar los datos.
Requisitos previos para la replicación de tablas anidadas de Oracle como origen
Asegúrese de replicar las tablas principales para todas las tablas anidadas replicadas. Incluya las tablas principales (las tablas que contienen la columna de tabla anidada) y las tablas secundarias (es decir, anidadas) en los mapeos de las tablas de AWS DMS.
Tipos de tablas anidadas de Oracle admitidos como origen
AWS DMS admite los siguientes tipos de tablas anidadas de Oracle como origen:
-
Tipo de datos
-
Objeto definido por el usuario
Restricciones de la compatibilidad de AWS DMS para tablas anidadas de Oracle como origen
AWS DMS tiene las siguientes limitaciones de su compatibilidad con tablas anidadas de Oracle como origen:
-
AWS DMS admite solo un nivel de anidación de tablas.
-
El mapeo de tablas de AWS DMS no comprueba que las tablas principal y secundaria estén seleccionadas para la replicación. Es decir, es posible seleccionar una tabla principal sin una tabla secundaria y viceversa.
Cómo AWS DMS replica las tablas anidadas de Oracle como origen
AWS DMS replica las tablas principales y anidadas en el destino de la siguiente manera:
-
AWS DMS crea la tabla principal idéntica a la de origen. A continuación, define la columna anidada en la principal como
RAW(16)
e incluye una referencia a las tablas anidadas de la principal en la columnaNESTED_TABLE_ID
. -
AWS DMS crea la tabla secundaria idéntica a la de origen anidada, pero con una columna adicional denominada
NESTED_TABLE_ID
. Esta columna tiene el mismo tipo y valor que la columna anidada principal correspondiente y tiene el mismo significado.
Ejemplo de unión para tablas principal y secundaria en el destino
Para aplanar la tabla principal, ejecute una unión de las tablas principal y secundaria, como se muestra en el siguiente ejemplo:
-
Cree la tabla de
Type
.CREATE OR REPLACE TYPE NESTED_TEST_T AS TABLE OF VARCHAR(50);
-
Cree la tabla principal con una columna de tipo
NESTED_TEST_T
, tal y como se ha definido antes.CREATE TABLE NESTED_PARENT_TEST (ID NUMBER(10,0) PRIMARY KEY, NAME NESTED_TEST_T) NESTED TABLE NAME STORE AS NAME_KEY;
-
Aplane la tabla
NESTED_PARENT_TEST
mediante una unión con la tabla secundariaNAME_KEY
, dondeCHILD.NESTED_TABLE_ID
coincide conPARENT.NAME
.SELECT … FROM NESTED_PARENT_TEST PARENT, NAME_KEY CHILD WHERE CHILD.NESTED_ TABLE_ID = PARENT.NAME;
Almacenamiento de REDO en Oracle ASM cuando se utiliza Oracle como fuente paraAWS DMS
Para las fuentes de Oracle con una alta generación de REDO, almacenar REDO en Oracle ASM puede beneficiar el rendimiento, especialmente en una configuración de RAC, ya que puede configurar el DMS para distribuir las lecturas de REDO de ASM en todos los nodos de ASM.
Para utilizar esta configuración, utilice el atributoasmServer
connection. Por ejemplo, la siguiente cadena de conexión distribuye las lecturas de DMS REDO entre 3 nodos de ASM:
asmServer=(DESCRIPTION= (ADDRESS_LIST=(CONNECT_TIMEOUT=8)(ENABLE=BROKEN)(LOAD_BALANCE=ON)(FAILOVER=ON) (ADDRESS=(PROTOCOL=tcp)(HOST=asm_node1_ip_address)(PORT=asm_node1_port_number)) (ADDRESS=(PROTOCOL=tcp)(HOST=asm_node2_ip_address)(PORT=asm_node2_port_number)) (ADDRESS=(PROTOCOL=tcp)(HOST=asm_node3_ip_address)(PORT=asm_node3_port_number))) (CONNECT_DATA=(SERVICE_NAME=+ASM)))
Al utilizar NFS para almacenar Oracle REDO, es importante asegurarse de que se aplican los parches de cliente de DNFS (NFS directo) aplicables, específicamente cualquier parche que solucione el error 25224242 de Oracle. Para obtener información adicional, consulte la siguiente publicación de Oracle sobre los parches relacionados con el cliente Direct NFS, los parches recomendados para Direct NFS Client
Además, para mejorar el rendimiento de lectura de NFS, le recomendamos que aumente el valorrsize
ywsize
fstab
la entrada del volumen NFS, como se muestra en el siguiente ejemplo.
NAS_name_here
:/ora_DATA1_archive /u09/oradata/DATA1 nfs rw,bg,hard,nointr,tcp,nfsvers=3,_netdev, timeo=600,rsize=262144,wsize=262144
Además, ajuste eltcp-max-xfer-size
valor de la siguiente manera:
vserver nfs modify -vserver
vserver
-tcp-max-xfer-size 262144
Configuración de endpoint cuando se utiliza Oracle como fuente paraAWS DMS
Puede utilizar la configuración de los terminales para configurar la base de datos de origen de Oracle de forma similar a utilizar atributos de conexión adicionales. La configuración se especifica al crear el extremo de origen 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 origen.
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: |
|
Establezca este atributo para configurar un registro suplementario para la base de datos de Oracle. Este atributo PRIMARY KEY permite el registro suplementario en todas las tablas seleccionadas para una tarea de migración. Valor predeterminado: N Valores válidos: Y/N Ejemplo: Si utiliza esta opción, tiene que habilitar igualmente el registro suplementario en el nivel de la base de datos tal y como hemos mencionado con anterioridad. |
|
Defina este atributo Aunque AWS DMS admite el uso de la opción Valor predeterminado: N/D Valores válidos: archivar ID de destino Ejemplo: |
|
Establezca este atributo en «true» para habilitar la replicación de tablas de Oracle que contienen columnas que son tablas anidadas o tipos definidos. Para obtener más información, consulte Replicación de tablas anidadas utilizando Oracle como origen para AWS DMS. Valor predeterminado: false Valores válidos: true/false Ejemplo: |
|
Especifica los ID de uno o más destinos para uno o más registros REDO archivados. Estos ID son los valores de la columna de dest_id de la vista de v$archived_log. Utilice esta configuración con el atributo de conexión ArchivedLogDestId adicional en una primary-to-single configuración o una primary-to-multiple-standby configuración. Este ajuste es útil en una conmutación cuando se utiliza una base de datos de Oracle Data Guard como origen. En este caso, AWS DMS necesita información acerca de qué destino obtener los registros REDO de archivo para leer los cambios. AWS DMS lo necesita porque, después de la conmutación, la instancia principal anterior es una instancia en espera. Valor predeterminado: N/D Valores válidos: archivar ID de destino Ejemplo: |
|
Establezca este atributo en Y para capturar los datos de los cambios mediante la LogMiner utilidad (la predeterminada). Establezca esta opción en N si desea que AWS DMS obtenga acceso a los registros REDO como un archivo binario. Al establecer esta opción en N, añada también la configuración UsebFile=Y. Para obtener más información sobre esta configuración y sobre el uso de Oracle Automatic Storage Management (ASM), consulteUso de Oracle LogMiner oAWS DMS Binary Reader para los CDC. Valor predeterminado: Y Valores válidos: Y/N Ejemplo: |
UseBfile |
Establezca este atributo en Y para capturar los datos de cambios mediante la utilidad Binary Reader. Valor predeterminado: N Valores válidos: Y/N Ejemplo: |
ParallelASMReadThreads |
Establezca este atributo para cambiar el número de subprocesos que DMS configura para realizar la captura de datos de cambios (CDC) mediante Oracle Automatic Storage (ASM). Puede especificar un valor entero entre 2 (el valor predeterminado) y 8 (el máximo). Utilice este atributo junto con el atributo Valor predeterminado: 2 Valores válidos: Un número entero de 2 a 8 Ejemplo: |
ReadAheadBlocks |
Establezca este atributo para cambiar el número de bloques de lectura anticipada que DMS configura para realizar CDC utilizando Oracle Automatic Storage Management (ASM) y almacenamiento NAS que no es ASM. Puede especificar un valor entero entre 1000 (el valor predeterminado) y 200 000 (máximo). Utilice este atributo junto con el atributo Valor predeterminado: 1000 Valores válidos: Un número entero de 1000 a 200 000 Ejemplo: |
AccessAlternateDirectly |
Establezca este atributo en false para utilizar Binary Reader y capturar los datos de los cambios de Amazon RDS for Oracle como origen. Esto indica a la instancia de DMS que no obtenga acceso a los registros REDO a través de ninguno de los prefijos de ruta sustitutos especificados mediante el acceso directo a los archivos. Para obtener más información, consulte Configuración de una tarea de CDC para usar Binary Reader con una fuente de RDS para Oracle paraAWS DMS. Valor predeterminado: verdadero Valores válidos: true/false Ejemplo: |
UseAlternateFolderForOnline |
Establezca este atributo en true para utilizar Binary Reader para capturar los datos de Amazon RDS para Oracle como origen. Esto indica a la instancia de DMS que use cualquier prefijo sustituto especificado para obtener acceso a todos los registros REDO online. Para obtener más información, consulte Configuración de una tarea de CDC para usar Binary Reader con una fuente de RDS para Oracle paraAWS DMS. Valor predeterminado: false Valores válidos: true/false Ejemplo: |
OraclePathPrefix |
Establezca este atributo de cadena en el valor necesario para utilizar Binary Reader para capturar los datos de cambios de Amazon RDS para Oracle como origen. Este valor especifica la raíz de Oracle predeterminada usada para obtener acceso a los registros REDO. Para obtener más información, consulte Configuración de una tarea de CDC para usar Binary Reader con una fuente de RDS para Oracle paraAWS DMS. Valor predeterminado: ninguno Valor válido: /rdsdbdata/db/ORCL_A/ Ejemplo: |
UsePathPrefix |
Establezca este atributo de cadena en el valor necesario para utilizar Binary Reader para capturar los datos de cambios de Amazon RDS para Oracle como origen. Este valor especifica el prefijo de ruta utilizado para reemplazar la raíz de Oracle predeterminada empleada para obtener acceso a los registros REDO. Para obtener más información, consulte Configuración de una tarea de CDC para usar Binary Reader con una fuente de RDS para Oracle paraAWS DMS. Valor predeterminado: ninguno Valor válido: /rdsdbdata/log/ Ejemplo: |
ReplacePathPrefix |
Establezca este atributo en true para utilizar Binary Reader para capturar los datos de Amazon RDS para Oracle como origen. Este valor indica a la instancia de DMS que reemplace la raíz de Oracle predeterminada por el valor de UsePathPrefix especificado para obtener acceso a los registros REDO. Para obtener más información, consulte Configuración de una tarea de CDC para usar Binary Reader con una fuente de RDS para Oracle paraAWS DMS.Valor predeterminado: false Valores válidos: true/false Ejemplo: |
|
Especifica el número de segundos que espera el sistema antes de reenviar una consulta. Valor predeterminado: 5 Valores válidos: números a partir de 1 Ejemplo: |
|
Especifica el ID de los registros REDO archivados. Este valor debe ser el mismo que un número en la columna dest_id de la vista v$archived_log. Si trabaja con un destino de registros REDO adicional, le recomendamos que utilice el Valor predeterminado: 1 Valores válidos: Number Ejemplo: |
|
Cuando este campo se establece en Y, AWS DMS solo obtiene acceso a los registros REDO archivados. Si los registros REDO archivados se almacenan solo en Oracle ASM, habrá que conceder a la cuenta de usuario de AWS DMS privilegios de ASM. Valor predeterminado: N Valores válidos: Y/N Ejemplo: |
|
Especifica la escala de números. Puede seleccionar una escala de hasta 38, o puede seleccionar -1 para FLOAT o -2 para VARCHAR. De forma predeterminada, el tipo de datos NUMBER se convierte a precisión 38, escala 10. Valor predeterminado: 10 Valores válidos: -2 a 38 (-2 para VARCHAR, -1 para FLOAT) Ejemplo: Seleccione una combinación de escala de precisión, -1 (FLOAT) o -2 (VARCHAR). DMS admite cualquier combinación de escala de precisión admitida por Oracle. Si la precisión es 39 o superior, seleccione -2 (VARCHAR). La NumberDataTypeScale configuración de la base de datos Oracle se utiliza únicamente para el tipo de datos NUMBER (sin la definición explícita de precisión y escala). |
|
Cuando se establece en Si una tarea está establecida en el modo LOB limitado y esta opción está establecida en Valor predeterminado: false Valores válidos: booleano Ejemplo: |
|
Cuando se establece en Valor predeterminado: false Valores válidos: booleano Ejemplo: |
|
Establecer este atributo para habilitar la replicación homogénea de espacio de tabla y crear tablas o índices existentes bajo el mismo espacio de tabla en el destino. Valor predeterminado: false Valores válidos: true/false Ejemplo: |
|
Utilice este atributo para especificar una hora en minutos que indique el retraso en la sincronización de la base de datos en espera. Si el origen es una base de datos en espera de Active Data Guard, utilice este atributo para especificar el intervalo de tiempo entre las bases de datos principal y en espera. En AWS DMS, puede crear una tarea de CDC de Oracle que utilice una instancia en espera de Active Data Guard como origen para replicar los cambios en curso. Esto elimina la necesidad de establecer conexión con una base de datos activa que podría estar en la fase de producción. Valor predeterminado: 0 Valores válidos: Number Ejemplo: Nota: Cuando utilice DMS 3.4.6, 3.4.7 y versiones posteriores, el uso de esta configuración de conexión es opcional. En las versiones más recientes de DMS 3.4.6 y 3.4.7, |
|
Especifica el nombre de una clave utilizada para el cifrado de datos transparente (TDE) de las columnas y del espacio de tabla de la base de datos de origen de Oracle. Para obtener más información sobre la configuración de este atributo y su contraseña asociada en el punto de enlace de origen de Oracle, consulte Métodos de cifrado admitidos para utilizar Oracle como origen para AWS DMS. Valor predeterminado: "" Valores válidos: String Ejemplo: |
|
Para orígenes de Oracle versión 12.1 o anteriores que se migran a destinos de PostgreSQL, utilice este atributo para convertir SDO_GEOMETRY al formato GEOJSON. De forma predeterminada, AWS DMS llama a la función personalizada Valor predeterminado: SDO2GEOJSON Valores válidos: String Ejemplo: |
|
Utilice este atributo para extraer datos una vez de una vista; no puede usarlo para una replicación continua. Al extraer datos de una vista, la vista se muestra como una tabla en el esquema de destino. Valor predeterminado: false Valores válidos: true/false Ejemplo: |
|
Defina este atributo Tenga en cuenta que esta función y mejora se introdujeron enAWS DMS la versión 3.4.7. Valor predeterminado: false Valores válidos: true/false Ejemplo: |
Tipos de datos de origen para Oracle
El punto de enlace de Oracle para AWS DMS es compatible con la mayoría de los tipos de datos de Oracle. La siguiente tabla muestra los tipos de datos de origen de Oracle que se admiten cuando se utiliza AWS DMS y el mapeo predeterminado a los tipos de datos de AWS DMS.
Con la excepción de los tipos de datos RAW LONG y LONG, al replicar de una fuente de Oracle a un destino de Oracle (una replicación homogénea), todos los tipos de datos de origen y destino serán idénticos. Sin embargo, el tipo de datos LONG se asignará a CLOB y el tipo de datos LONG RAW se asignará a BLOB.
Para obtener más información sobre cómo ver el tipo de datos que se asigna en el destino, consulte la sección del punto de enlace de destino que esté utilizando.
Para obtener más información sobre los tipos de datos de AWS DMS, consulte Tipos de datos para elAWS Database Migration Service.
Tipos de datos de Oracle |
Tipos de datos de AWS DMS |
---|---|
BINARY_FLOAT |
REAL4 |
BINARY_DOUBLE |
REAL8 |
BINARY |
BYTES |
FLOAT (P) |
Si la precisión es inferior o igual a 24, utilice REAL4. Si la precisión es superior a 24, utilice REAL8. |
NUMBER (P,S) |
Cuando la escala sea superior a 0, utilice REAL8 |
NÚMERO según el atributo de conexión |
Cuando la escala sea 0:
En el resto de casos, utilice REAL8. |
DATE |
DATETIME |
INTERVAL_YEAR TO MONTH |
STRING (con indicación year_to_month del intervalo) |
INTERVAL_DAY TO SECOND |
STRING (con indicación day_to_second del intervalo) |
TIMESTAMP |
DATETIME |
TIMESTAMP WITH TIME ZONE |
STRING (con indicación timestamp_with_timezone) |
TIMESTAMP CON ZONA HORARIA LOCAL |
STRING (con indicación timestamp_with_local_ timezone) |
CHAR |
STRING |
VARCHAR2 |
STRING |
NCHAR |
WSTRING |
NVARCHAR2 |
WSTRING |
RAW |
BYTES |
REAL |
REAL8 |
BLOB |
BLOB Para utilizar este tipo de datos con AWS DMS, será preciso habilitar el uso de los tipos de datos BLOB para una tarea en particular. AWS DMS solo es compatible con tipos de datos BLOB en tablas que incluyan una clave principal. |
CLOB |
CLOB Para utilizar este tipo de datos con AWS DMS, será preciso habilitar el uso de los tipos de datos CLOB para una tarea en particular. En la CDC, AWS DMS admite tipos de datos CLOB solo en las tablas que incluyan una clave principal. |
NCLOB |
NCLOB Para utilizar este tipo de datos con AWS DMS, será preciso habilitar el uso de los tipos de datos NCLOB para una tarea en particular. En la CDC, AWS DMS admite tipos de datos NCLOB solo en las tablas que incluyan una clave principal. |
LONG |
CLOB El tipo de datos LONG no se admite en el modo de aplicación optimizado por lotes (modoTurboStream CDC). Para usar este tipo de datosAWS DMS, habilite el uso de LOB para una tarea específica. Durante la CDC o a plena carga, soloAWS DMS admite tipos de datos LOB en tablas que tengan una clave principal. Además,AWS DMS no admite el modo LOB completo para cargar columnas LARGAS. En su lugar, puede utilizar el modo LOB limitado para migrar columnas LARGAS a un destino de Oracle. En el modo LOB limitado,AWS DMS trunca los datos en 64 KB que se establezcan en columnas LARGAS de más de 64 KB. Para obtener más información sobre la compatibilidad de los LOB en AWS DMS, consulte Configuración de la compatibilidad de LOB con bases de datos de origen en una tarea de AWS DMS |
LONG RAW |
BLOB El tipo de datos LONG RAW no se admite en el modo de aplicación optimizado por lotes (modoTurboStream CDC). Para usar este tipo de datosAWS DMS, habilite el uso de LOB para una tarea específica. Durante la CDC o a plena carga, soloAWS DMS admite tipos de datos LOB en tablas que tengan una clave principal. Además,AWS DMS no admite el modo LOB completo para cargar columnas RAW LARGAS. En su lugar, puede utilizar el modo LOB limitado para migrar columnas RAW LARGAS a un destino de Oracle. En el modo LOB limitado,AWS DMS trunca los datos en 64 KB que se establezcan en columnas RAW LARGAS de más de 64 KB. Para obtener más información sobre la compatibilidad de los LOB en AWS DMS, consulte Configuración de la compatibilidad de LOB con bases de datos de origen en una tarea de AWS DMS |
XMLTYPE |
CLOB |
SDO_GEOMETRY |
BLOB (en una migración de Oracle a Oracle) CLOB (en una migración de Oracle a PostgreSQL) |
No se admiten las tablas de Oracle que se utilizan como origen con columnas de los siguientes tipos de datos, ni tampoco se pueden replicar. Si se replican las columnas con estos tipos de datos se obtendrán una columna con el valor NULL.
-
BFILE
-
ROWID
-
REF
-
UROWID
-
Tipos de datos definidos por el usuario
-
ANYDATA
-
VARRAY
No se admiten las columnas virtuales.
Migración de tipos de datos espaciales de Oracle
Los datos espaciales identifican la información de geometría de un objeto o ubicación en el espacio. En una base de datos de Oracle, la descripción geométrica de un objeto espacial se almacena en un objeto de tipo SDO_GEOMETRY. Dentro de este objeto, la descripción geométrica se almacena en una sola fila de una sola columna de una tabla definida por el usuario.
AWS DMS admite la migración del tipo SDO_GEOMETRY de Oracle desde un origen de Oracle a un destino de Oracle o PostgreSQL.
Al migrar tipos de datos espaciales de Oracle mediante AWS DMS, tenga en cuenta estas consideraciones:
-
Al migrar a un destino de Oracle, asegúrese de transferir manualmente las entradas USER_SDO_GEOM_METADATA que incluyan información de tipos.
-
Al migrar desde un punto de enlace de origen de Oracle a un punto de enlace de destino de PostgreSQL, AWS DMS crea columnas de destino. Estas columnas contienen información de la geometría y el tipo de geografía predeterminados con una dimensión en 2D y un identificador de referencia espacial (SRID) igual a cero (0). Un ejemplo es
GEOMETRY, 2, 0
. -
Para los orígenes de Oracle versión 12.1 o anteriores que se migran a destinos de PostgreSQL, convierta los objetos
SDO_GEOMETRY
al formatoGEOJSON
mediante la funciónSDO2GEOJSON
o el atributo de conexión adicionalspatialSdo2GeoJsonFunctionName
. Para obtener más información, consulte Configuración de endpoint cuando se utiliza Oracle como fuente paraAWS DMS. -
AWS DMSadmite migraciones de columnas espaciales de Oracle únicamente para el modo LOB completo. AWS DMSno admite los modos LOB limitado o LOB en línea. Para obtener más información acerca del modo LOB, consulteConfiguración de la compatibilidad de LOB con bases de datos de origen en una tarea de AWS DMS.
ComoAWS DMS solo admite el modo LOB completo para migrar columnas espaciales de Oracle, la tabla de columnas necesita una clave principal y una clave única. Si la tabla no tiene una clave principal y una clave única, la tabla se omite de la migración.