AWS Database Migration Service · Paso 3: Configurar la base de datos de destino PostgreSQL..... 98...

179
AWS Database Migration Service Guía de la migración paso a paso Version 1/1/2016

Transcript of AWS Database Migration Service · Paso 3: Configurar la base de datos de destino PostgreSQL..... 98...

AWS Database Migration ServiceGuía de la migración paso a paso

Version 1/1/2016

AWS Database Migration ServiceGuía de la migración paso a paso

AWS Database Migration Service: Guía de la migración paso a pasoCopyright © 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

AWS Database Migration ServiceGuía de la migración paso a paso

Table of ContentsExplicación paso a paso de AWS Database Migration Service ................................................................... 1Migración de bases de datos a Amazon Web Services (AWS) ................................................................... 2

Herramientas de migración de AWS .............................................................................................. 2Explicaciones detalladas en esta guía ........................................................................................... 2

Migración de una base de datos de Oracle local a Amazon Aurora MySQL ................................................. 4Costos ...................................................................................................................................... 5Esquema general de migración .................................................................................................... 5

Paso 1: Preparar la base de datos de origen de Oracle ............................................................ 5Paso 2: Lanzar y preparar la base de datos de destino de Aurora MySQL ................................... 6Paso 3: Lanzar una instancia de replicación .......................................................................... 6Paso 4: Crear un punto de enlace de origen .......................................................................... 6Paso 5: Crear un punto de enlace de destino ......................................................................... 7Paso 6: Crear y ejecutar una tarea de migración ..................................................................... 7

Guía de la migración paso a paso ................................................................................................ 8Paso 1: Configurar la base de datos de origen de Oracle ......................................................... 9Paso 2: Configurar la base de datos de destino de Aurora ...................................................... 11Paso 3: Crear una instancia de replicación ........................................................................... 11Paso 4: Crear el punto de enlace de origen de Oracle ............................................................ 14Paso 5: Crear el punto de enlace de destino de Aurora MySQL .............................................. 16Paso 6: Crear una tarea de migración ................................................................................. 19Paso 7: Monitorizar la tarea de migración ............................................................................. 24Solución de problemas ...................................................................................................... 24

Uso de la base de datos de muestra para la migración .................................................................. 25Migración de una base de datos de Amazon RDS Oracle a Amazon Aurora MySQL .................................... 26

Costos ..................................................................................................................................... 27Requisitos previos ..................................................................................................................... 28Arquitectura de migración ........................................................................................................... 29Migración paso a paso .............................................................................................................. 30

Paso 1: Iniciar las instancias de RDS en una VPC con la plantilla de CloudFormation ................... 31Paso 2: Instalar las herramientas de SQL y AWS Schema Conversion Tool en su equipo local ....... 36Paso 3: Comprobar la conectividad de la instancia de base de datos de Oracle y crear elesquema de ejemplo ......................................................................................................... 38Paso 4: Probar la conectividad con la instancia de base de datos de Aurora MySQL .................... 42Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT) para convertir los esquemas deOracle a Aurora MySQL .................................................................................................... 44Paso 6: Validar la conversión de esquemas .......................................................................... 55Paso 7: Crear una instancia de replicación de AWS DMS ...................................................... 58Paso 8: Crear los puntos de enlace de origen y destino de AWS DMS ...................................... 59Paso 9: Crear y ejecutar la tarea de migración de AWS DMS .................................................. 62Paso 10: Comprobar que la migración de datos se realizó correctamente .................................. 65Paso 11: Eliminar los recursos de la guía ............................................................................. 67

Pasos siguientes ....................................................................................................................... 68Plantilla de AWS CloudFormation, scripts SQL y otros recursos ....................................................... 68Referencias .............................................................................................................................. 69

Migración de una base de datos de SQL Server a Amazon Aurora MySQL ................................................ 70Requisitos previos ..................................................................................................................... 70Migración paso a paso .............................................................................................................. 71

Paso 1: Instalar los controladores de SQL y AWS Schema Conversion Tool en su equipo local ...... 72Paso 2: Configurar la base de datos de origen de Microsoft SQL Server .................................... 73Paso 3: Configurar la base de datos de destino de Aurora MySQL ........................................... 74Paso 4: Utilizar AWS SCT para convertir el esquema de SQL Server a Aurora MySQL ................. 75Paso 5: Crear una instancia de replicación de AWS DMS ...................................................... 82Paso 6: Crear los puntos de enlace de origen y destino de AWS DMS ...................................... 84Paso 7: Crear y ejecutar la tarea de migración de AWS DMS .................................................. 88

Version 1/1/2016iii

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 8: Migración total a Aurora MySQL .............................................................................. 91Solución de problemas .............................................................................................................. 92

Migración de una base de datos de Oracle a PostgreSQL ...................................................................... 93Requisitos previos ..................................................................................................................... 93Migración paso a paso .............................................................................................................. 94

Paso 1: Instalar los controladores de SQL y AWS Schema Conversion Tool en su equipo local ...... 94Paso 2: Configurar la base de datos de origen de Oracle ........................................................ 95Paso 3: Configurar la base de datos de destino PostgreSQL ................................................... 98Paso 4: Utilizar AWS Schema Conversion Tool (AWS SCT) para convertir los esquemas deOracle a PostgreSQL ........................................................................................................ 98Paso 5: Crear una instancia de replicación de AWS DMS ..................................................... 106Paso 6: Crear los puntos de enlace de origen y destino de AWS DMS ..................................... 108Paso 7: Crear y ejecutar la tarea de migración de AWS DMS ................................................ 111Paso 8: Migración total a PostgreSQL ................................................................................ 114

Reversión de la migración ........................................................................................................ 115Solución de problemas ............................................................................................................. 116

Migración de un Amazon RDS para Oracle Database a Amazon Redshift ................................................ 117Requisitos previos ................................................................................................................... 117Arquitectura de migración ......................................................................................................... 118Migración paso a paso ............................................................................................................. 120

Paso 1: Iniciar las instancias de RDS en una VPC con la plantilla de CloudFormation ................. 120Paso 2: Instalar las herramientas de SQL y AWS Schema Conversion Tool en su equipo local ..... 125Paso 3: Comprobar la conectividad de la instancia de base de datos de Oracle y crear elesquema de ejemplo ....................................................................................................... 128Paso 4: Probar la conectividad a la base de datos de Amazon Redshift ................................... 132Paso 5: Utilizar AWS SCT para convertir un esquema de Oracle a Amazon Redshift .................. 133Paso 6: Validar la conversión de esquemas ........................................................................ 141Paso 7: Crear una instancia de replicación de AWS DMS ...................................................... 142Paso 8: Crear los puntos de enlace de origen y destino de AWS DMS ..................................... 143Paso 9: Crear y ejecutar la tarea de migración de AWS DMS ................................................ 146Paso 10: Comprobar que la migración de datos se realizó correctamente ................................. 150Paso 11: Eliminar los recursos de la guía ........................................................................... 152

Pasos siguientes ..................................................................................................................... 153Referencias ............................................................................................................................ 153

Migrar bases de datos compatibles con MySQL a AWS ........................................................................ 154Migración de una base de datos compatible con MySQL a Amazon Aurora MySQL ................................... 155

Migración de datos desde una base de datos MySQL externa a Amazon Aurora MySQL medianteAmazon S3 ............................................................................................................................ 155

Requisitos previos ........................................................................................................... 156Paso 1: Realizar copias de seguridad de archivos para restaurarlos como clúster de base dedatos ............................................................................................................................. 158Paso 2: Copiar archivos en un bucket de Amazon S3 ........................................................... 159Paso 3: Restaurar un clúster de base de datos de Aurora MySQL desde un bucket de S3 ........... 159

Migración de MySQL a Amazon Aurora MySQL con mysqldump .................................................... 166Migración de datos de una instancia de base de datos de Amazon RDS MySQL a un clúster de basede datos de Amazon Aurora MySQL .......................................................................................... 166

Migración de una instantánea de MySQL de RDS a Aurora MySQL ........................................ 167Historial de revisión ......................................................................................................................... 175

Version 1/1/2016iv

AWS Database Migration ServiceGuía de la migración paso a paso

Explicación paso a paso de AWSDatabase Migration Service

También puede utilizar AWS Database Migration Service (AWS DMS) para migrar datos a y desde lasbases de datos de código abierto y comerciales de uso general como, por ejemplo, Oracle, PostgreSQL,Microsoft SQL Server, Amazon Redshift, Amazon Aurora, MariaDB y MySQL. Este servicio admitemigraciones homogéneas como de Oracle a Oracle, así como migraciones heterogéneas entre diferentesplataformas de bases de datos, como de Oracle a MySQL o de MySQL a Compatibilidad de AmazonAurora con MySQL. La base de datos de origen o de destino debe estar en un servicio de AWS.

En esta guía, puede encontrar explicaciones paso a paso que revisan todo el proceso de migración dedatos de muestra a AWS:

• Migración de bases de datos a Amazon Web Services (AWS) (p. 2)• Migración de una base de datos de Oracle local a Amazon Aurora MySQL (p. 4)• Migración de una base de datos de Amazon RDS Oracle a Amazon Aurora MySQL (p. 26)• Migración de una base de datos de SQL Server a Amazon Aurora MySQL (p. 70)• Migración de una base de datos de Oracle a PostgreSQL (p. 93)• Migración de un Amazon RDS para Oracle Database a Amazon Redshift (p. 117)• Migrar bases de datos compatibles con MySQL a AWS (p. 154)• Migración de una base de datos compatible con MySQL a Amazon Aurora MySQL (p. 155)

Version 1/1/20161

AWS Database Migration ServiceGuía de la migración paso a paso

Herramientas de migración de AWS

Migración de bases de datos aAmazon Web Services (AWS)Herramientas de migración de AWS

Puede utilizar varias herramientas y servicios de AWS para migrar datos desde una base de datos externaa AWS. En función del tipo de migración de base de datos, es posible que las herramientas de migraciónnativas de su motor de base de datos también sean efectivas.

AWS Database Migration Service (AWS DMS) le ayuda a migrar las bases de datos a AWS de manerasegura y eficaz. La base de datos de origen puede permanecer totalmente operativa durante la migración,minimizando así el tiempo de inactividad de las aplicaciones que dependen de ella. AWS DMS puedemigrar los datos de Oracle a las bases de datos de código abierto y comerciales de uso general de AWS.

AWS DMS migra datos, tablas y claves primarias a la base de datos de destino. Todos los demáselementos de la base de datos no se migran. Si migra una base de datos de Oracle a Compatibilidad deAmazon Aurora con MySQL, por ejemplo, recomendamos utilizar AWS Schema Conversion Tool junto conAWS DMS.

AWS Schema Conversion Tool simplifica las migraciones de bases de datos heterogéneas al convertirautomáticamente el esquema de la base de datos de origen y la mayor parte del código personalizado,incluidas las vistas, los procedimientos almacenados y las funciones, a un formato compatible con labase de datos de destino. El código que no se puede convertir automáticamente está marcado de formaclara para que pueda convertirse manualmente. Puede utilizar esta herramienta para convertir sus basesde datos de origen de Oracle en una base de datos de destino de Amazon Aurora MySQL, MySQL oPostgreSQL tanto en Amazon RDS como en EC2.

Es importante comprender que DMS y SCT son dos herramientas distintas que cubren distintasnecesidades y que no interactúan entre sí en el proceso de migración. En cuanto a las prácticasrecomendadas en DMS, a continuación se detalla la metodología de migración para este tutorial:

• AWS DMS adopta un enfoque minimalista y crea solo los objetos necesarios para migrar de forma eficazlos datos para tablas de ejemplo con clave principal. Por lo tanto, utilizaremos DMS para cargar lastablas con datos sin claves externas ni restricciones. (También podemos utilizar la SCT para generar losscripts de tabla y crearlos en el destino antes de realizar la carga mediante DMS).

• Aprovecharemos SCT:• Para identificar los problemas, limitaciones y acciones de la conversión de esquemas• Para generar los scripts de esquema de destino, incluidas las claves externas y las limitaciones• Para convertir código, como procedimientos y vistas, del origen al destino y aplicarlo al destino

El tamaño y el tipo de migración de la base de datos de Oracle que desee realizar determinan en granmedida las herramientas a utilizar. Por ejemplo, una migración heterogénea, en la que se migra desde unabase de datos de Oracle a otro motor de base de datos en AWS, se realiza mejor mediante AWS DMS.Mientras que una migración homogénea, en la que se migra de una base de datos de Oracle a una basede datos de Oracle en AWS, se realiza mejor con las herramientas nativas de Oracle.

Explicaciones detalladas en esta guíaMigración de una base de datos de Oracle local a Amazon Aurora MySQL (p. 4)

Version 1/1/20162

AWS Database Migration ServiceGuía de la migración paso a paso

Explicaciones detalladas en esta guía

Migración de una base de datos de Amazon RDS Oracle a Amazon Aurora MySQL (p. 26)

Migración de una base de datos de SQL Server a Amazon Aurora MySQL (p. 70)

Migración de una base de datos de Oracle a PostgreSQL (p. 93)

Migración de un Amazon RDS para Oracle Database a Amazon Redshift (p. 117)

Migrar bases de datos compatibles con MySQL a AWS (p. 154)

Migración de una base de datos compatible con MySQL a Amazon Aurora MySQL (p. 155)

Version 1/1/20163

AWS Database Migration ServiceGuía de la migración paso a paso

Migración de una base de datosde Oracle local a Amazon AuroraMySQL

A continuación, encontrará un esquema general y una explicación completa paso a paso que muestra elproceso de migración de una base de datos de Oracle local (el punto de enlace de origen) a una base dedatos de Compatibilidad de Amazon Aurora con MySQL (el punto de enlace de destino) utilizando AWSDatabase Migration Service (AWS DMS) y AWS Schema Conversion Tool (AWS SCT).

AWS DMS migra los datos de la base de datos de origen de Oracle a la base de datos de destino deAurora MySQL. AWS DMS también captura los cambios en el lenguaje de manipulación de datos (DML)y el lenguaje de definición de datos (DDL) que se efectúen en la base de datos de origen y aplica dichoscambios a la base de datos de destino. De esta forma, AWS DMS ayuda a mantener las bases de datosde origen y de destino sincronizadas entre sí. Para facilitar la migración de datos, DMS crea las tablas y losíndices de clave principal en la base de datos de destino, en caso de que sea necesario.

Sin embargo, AWS DMS no migra los índices secundarios, secuencias, valores predeterminados,procedimientos almacenados, disparadores, sinónimos, vistas y otros objetos de esquema no relacionadosespecíficamente con la migración de datos. Para migrar estos objetos a la base de datos de destino deAurora MySQL, utilice AWS Schema Conversion Tool.

Se recomienda encarecidamente que siga utilizando la base de datos de muestra de Amazon. Para ver untutorial en el que se utilice la base de datos de muestra e instrucciones sobre cómo obtener una copia de labase de datos de muestra, consulte Uso de la base de datos de muestra para la migración (p. 25).

Si ha utilizado AWS DMS antes o prefiere hacer clic con el ratón para leer, le recomendamos el esquemageneral. Si necesita información detallada y desea un enfoque más prudente (o si tiene preguntas), lerecomendamos la guía paso a paso.

Tema: Migración desde Oracle local a Aurora MySQL o MySQL en Amazon RDS

Time:

Costo:

Base de datos de origen: Oracle

Base de datos de destino: Amazon Aurora MySQL/MySQL

Restricciones:

Oracle Edition: Enterprise, Standard, Express y Personal

Versión de Oracle: 10g (10.2 y posterior), 11g, 12c, (en Amazon Relational Database Service (AmazonRDS), 11g o superior.

Versión de MySQL o de la base de datos relacionada: 5.5, 5.6, 5.7, MariaDB, Amazon Aurora MySQL

Conjunto de caracteres: no es compatible con utf8mb4 actualmente

Version 1/1/20164

AWS Database Migration ServiceGuía de la migración paso a paso

Costos

CostosPuesto que AWS DMS todavía no se ha incorporado a la calculadora, consulte la siguiente tabla paraobtener una estimación de precios.

Además de la configuración en su propio PC, debe crear varios componentes de AWS para completar elproceso de migración. Estos componentes de AWS son:

Servicio de AWS Tipo Descripción

Instancia de base de datos de Amazon Aurora MySQL db.r3.large Una única zonade disponibilidad,10 GB dealmacenamiento, 1millón de E/S

Instancia de replicación de AWS DMS T2.large 50 GB dealmacenamientopara mantenerincluidos losregistros dereplicación

Transferencia de datos de AWS DMS Libre, en funciónde la cantidad dedatos transferidospara la base dedatos de muestra

 

Transferencia de datos de salida Primer GB gratuitoal mes

 

Esquema general de migraciónPara migrar datos desde Oracle a Aurora MySQL utilizando AWS DMS, siga los siguientes pasos. Si hautilizado AWS DMS antes o prefieren hacer clic con el ratón para leer, el siguiente resumen le ayudaráa iniciar la migración de forma rápida. Para obtener información detallada sobre la migración o si tienealguna pregunta, consulte la guía paso a paso.

Paso 1: Preparar la base de datos de origen de OracleAntes de utilizar AWS DMS para migrar datos desde una base de datos de origen de Oracle se requiereuna preparación. Además, recomendamos que se lleven a cabo unos pasos adicionales.

• Cuenta de AWS DMS: se recomienda crear una cuenta independiente específicamente para migrar losdatos. Esta cuenta debe disponer del conjunto de privilegios mínimos necesarios para migrar los datos.A continuación se especifican detalles relacionados con dichos privilegios. Si solo le interesa probarAWS DMS en una base de datos que no sea de producción, cualquier cuenta de DBA será suficiente.

• Registro suplementario: para capturar los cambios, debe activar el registro suplementario para poderutilizar DMS. Para activar el registro suplementario en el nivel de base de datos, ejecute el siguientecomando.

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA

Version 1/1/20165

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 2: Lanzar y preparar la base dedatos de destino de Aurora MySQL

Además, AWS DMS requiere que por cada tabla que se migre defina al menos el registro suplementarioen el nivel de la clave. AWS DMS añade automáticamente este registro suplementario para usted siincluye los siguientes parámetros de conexión adicionales para su conexión de origen.

addSupplementalLogging=Y

• Base de datos de origen: para migrar sus datos, el servidor de replicación AWS DMS necesita acceder ala base de datos de origen. Asegúrese de que sus reglas de cortafuegos permitan acceder al servidor dela replicación de AWS DMS.

Paso 2: Lanzar y preparar la base de datos de destinode Aurora MySQLA continuación, le indicamos lo que debe tener en cuenta a la hora de lanzar la instancia de AuroraMySQL:

• Para obtener los mejores resultados, le recomendamos que localice su instancia de Aurora MySQL y suinstancia de replicación en la misma VPC y, si es posible, en la misma zona de disponibilidad.

• Le recomendamos que cree una cuenta independiente con los privilegios mínimos suficientes paramigrar los datos. La cuenta de AWS DMS necesita los siguientes privilegios en todas las bases de datosa las que se migran datos.

ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT

Además, AWS DMS necesita acceso total a la base de datos awsdms_control. Esta base de datoscontiene información requerida por AWS DMS y que es específica de la migración. Para otorgar acceso,ejecute el siguiente comando.

ALL PRIVILEGES ON awsdms_control.* TO 'dms_user'

Paso 3: Lanzar una instancia de replicaciónEl servicio AWS DMS se conecta a las bases de datos de origen y de destino desde una instancia dereplicación. A continuación, le indicamos lo que debe tener en cuenta a la hora de lanzar la instancia dereplicación:

• Para obtener mejores resultados, le recomendamos que ubique su instancia de replicación en la mismaVPC y zona de disponibilidad que su base de datos de destino, en este caso Aurora MySQL.

• Si su base de datos de origen o de destino se encuentra fuera de la VPC en la que lanza su servidor dereplicación, el servidor de replicación deberá tener acceso público.

• AWS DMS puede consumir bastante memoria y CPU. Sin embargo, se puede escalar fácilmente si esnecesario. Si prevé ejecutar varias tareas en un único servidor de replicación o

• El almacenamiento predeterminado suele ser suficiente para la mayoría de migraciones.

Paso 4: Crear un punto de enlace de origenPara que AWS DMS acceda a la base de datos de origen de Oracle tendrá que crear un punto de enlacede origen. El punto de enlace de origen define toda la información necesaria para que AWS DMS se

Version 1/1/20166

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Crear un punto de enlace de destino

conecte a su base de datos de origen desde el servidor de replicación. A continuación se muestran losrequisitos para el punto de enlace de origen.

• El punto de enlace de origen debe ser accesible desde el servidor de replicación. Para permitirlo, esposible que necesite modificar las reglas del cortafuegos para incluir al servidor de replicación en la listablanca. Puede encontrar la dirección IP de su servidor de replicación en la consola de administración deAWS DMS.

• Para que AWS DMS capture los cambios, Oracle requiere que el registro suplementario esté activado.Si desea que AWS DMS active el registro suplementario por usted, añada lo siguiente a los atributos deconexión adicionales de su punto de enlace de origen de Oracle.

addSupplementalLogging=Y

Paso 5: Crear un punto de enlace de destinoPara que AWS DMS obtenga acceso a la base de datos de destino de Aurora MySQL tendrá que crear unpunto de enlace de destino. El punto de enlace de destino define toda la información necesaria para queDMS se conecte a su base de datos de Aurora MySQL.

• Su punto de enlace de destino debe ser accesible desde el servidor de replicación. Es posible que tengaque modificar los grupos de seguridad para poder acceder al punto de enlace de destino.

• Si creó la base de datos previamente en el destino, recomendamos desactivar las comprobaciones declaves externas durante toda la carga. Para hacerlo, añada lo siguiente a sus atributos adicionales deconexión.

initstmt=SET FOREIGN_KEY_CHECKS=0

Paso 6: Crear y ejecutar una tarea de migraciónUna tarea de migración le indica a AWS DMS dónde y cómo desea migrar los datos. Al crear la tarea demigración, deberá configurar los parámetros de migración de la siguiente manera.

Puntos de conexión y servidor de replicación: seleccione los puntos de enlace y el servidor de replicacióncreados anteriormente.

Migration type: en la mayoría de los casos, debería elegir migrate existing data and replication ongoingchanges. Con esta opción, AWS DMS carga los datos de origen al mismo tiempo que captura los cambiosen dichos datos. Cuando los datos están totalmente cargados, AWS DMS aplica los cambios restantes ymantiene las bases de datos de origen y de destino sincronizadas hasta que se detiene la tarea.

Target table preparation mode: si hace que AWS DMS cree sus tablas, elija drop tables on target. Si utilizaalgún otro método para crear las tablas de destino como, por ejemplo, AWS Schema Conversion Tool, elijatruncate.

LOB parameters : si simplemente está probando AWS DMS, elija include LOB columns in replication,Limited LOB mode y establezca max LOB size en 16 (que es 16 k). Para obtener más información sobreLOB, lea la información detallada en la guía paso a paso.

Enable logging: para obtener ayuda con la depuración de los problemas de migración, mantenga el registroactivado siempre.

Table mappings: al migrar de Oracle a Aurora MySQL, le recomendamos que convierta los nombresde esquemas, tablas y columnas a minúsculas. Para hacerlo, cree un mapeo de tablas personalizado.El siguiente ejemplo migra el esquema DMS_SAMPLE y convierte los nombres de esquemas, tablas ycolumnas a minúsculas.

Version 1/1/20167

AWS Database Migration ServiceGuía de la migración paso a pasoGuía de la migración paso a paso

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "6", "rule-name": "6", "rule-action": "convert-lowercase", "rule-target": "schema", "object-locator": { "schema-name": "%" } }, { "rule-type": "transformation", "rule-id": "7", "rule-name": "7", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "%", "table-name": "%" } }, { "rule-type": "transformation", "rule-id": "8", "rule-name": "8", "rule-action": "convert-lowercase", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" } } ]}

Guía de la migración paso a pasoA continuación, encontrará instrucciones paso a paso para migrar una base de datos de Oracle desdeun entorno local a Amazon Aurora MySQL. Estas instrucciones presuponen que ya ha llevado a cabo lospasos de configuración para utilizar AWS DMS explicados en Configuración para utilizar AWS DatabaseMigration Service.

Temas• Paso 1: Configurar la base de datos de origen de Oracle (p. 9)• Paso 2: Configurar la base de datos de destino de Aurora (p. 11)• Paso 3: Crear una instancia de replicación (p. 11)

Version 1/1/20168

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Configurar la base de datos de origen de Oracle

• Paso 4: Crear el punto de enlace de origen de Oracle (p. 14)• Paso 5: Crear el punto de enlace de destino de Aurora MySQL (p. 16)• Paso 6: Crear una tarea de migración (p. 19)• Paso 7: Monitorizar la tarea de migración (p. 24)• Solución de problemas (p. 24)

Paso 1: Configurar la base de datos de origen deOraclePara utilizar Oracle como origen para AWS Database Migration Service (AWS DMS), primero debeasegurarse de que MODE ARCHIVELOG esté activado para proporcionar información a LogMiner. AWSDMS utiliza LogMiner para leer información de los registros de archivo para que AWS DMS pueda capturarlos cambios.

Para que AWS DMS lea esta información, asegúrese de que los registros de archivo se conservan enel servidor de la base de datos mientras AWS DMS los necesite. Si configura su tarea para empezar acapturar los cambios de forma inmediata, solo deberá conservar los registros de archivo un poco más de laduración de las transacciones cuya ejecución sea más larga. Normalmente basta con retener los registrosde archivo durante 24 horas. Si configura su tarea para empezar desde un momento dado en el pasado,los registros de archivo deben estar disponibles desde ese momento. Para obtener más instruccionesespecíficas para activar ARCHIVELOG MODE y garantizar la retención de los registros para la base dedatos de Oracle local, consulte la documentación de Oracle.

Para capturar los cambios en los datos, AWS DMS precisa que el registro suplementario esté activadoen la base de datos de origen para AWS DMS. Debe activar el registro suplementario mínimo en el nivelde base de datos. AWS DMS también requiere que el registro de claves de identificación esté activado.Esta opción hace que la base de datos coloque todas las columnas de la clave principal de una fila en elarchivo de log REDO cada vez que se actualiza una fila que contiene una clave principal (aunque no sehaya modificado ningún valor en la clave principal). Puede configurar esta opción en el nivel de la base dedatos o de la tabla.

Si el origen de Oracle está en Amazon RDS, la base de datos tendrá el modo ARCHIVELOG MODE si, ysolo si, activa las copias de seguridad. El siguiente comando se asegurará de que se retengan los registrosde archivo en el RDS de origen durante 24 horas:

exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24);

Para configurar la base de datos de origen de Oracle

1. Ejecute el siguiente comando para activar el registro suplementario en el nivel de base de datos querequiere AWS DMS:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

For RDS:exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');

2. Utilice el siguiente comando para activar el registro suplementario de claves de identificación enel nivel de la base de datos. AWS DMS requiere el registro suplementario de claves en el nivelde la base de datos a menos que permita a AWS DMS que añada automáticamente el registrosuplementario cuando sea necesario o active el registro suplementario en el nivel de la clave en elnivel de la tabla:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

Version 1/1/20169

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Configurar la base de datos de origen de Oracle

For RDS:exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','PRIMARY KEY');

3. La base de datos de origen incurre en pequeños gastos adicionales si el registro suplementario delnivel de la clave está activado. Por lo tanto, si migra únicamente un subconjunto de tablas, es posibleque le interese activar el registro suplementario del nivel de la clave en el nivel de la tabla. Para activarel registro suplementario del nivel de la clave en el nivel de la tabla, utilice el siguiente comando.

alter table table_name add supplemental log data (PRIMARY KEY) columns;

Si una tabla no tiene una clave principal tiene dos opciones.

• Puede agregar el registro suplementario a todas las columnas implicadas en el primer índice únicode la tabla (ordenadas por nombre de índice).

• Puede agregar el registro suplementario a todas las columnas de la tabla.

Para añadir el registro suplementario a un subconjunto de columnas en una tabla, es decir, lascolumnas implicadas en un índice único, ejecute el siguiente comando.

ALTER TABLE table_name ADD SUPPLEMENTAL LOG GROUP example_log_group (ID,NAME) ALWAYS;

Para añadir el registro suplementario a todas las columnas de una tabla, ejecute el siguiente comando.

alter table table_name add supplemental log data (ALL) columns;

4. Cree o configure una cuenta de base de datos para que la use AWS DMS. Le recomendamos queutilice una cuenta con los privilegios mínimos exigidos por AWS DMS para la conexión a AWS DMS.AWS DMS requiere los siguientes privilegios.

CREATE SESSIONSELECT ANY TRANSACTIONSELECT on V_$ARCHIVED_LOGSELECT on V_$LOGSELECT on V_$LOGFILESELECT on V_$DATABASESELECT on V_$THREADSELECT on V_$PARAMETERSELECT on V_$NLS_PARAMETERSSELECT on V_$TIMEZONE_NAMESSELECT on V_$TRANSACTIONSELECT on ALL_INDEXESSELECT on ALL_OBJECTSSELECT on ALL_TABLESSELECT on ALL_USERSSELECT on ALL_CATALOGSELECT on ALL_CONSTRAINTSSELECT on ALL_CONS_COLUMNSSELECT on ALL_TAB_COLSSELECT on ALL_IND_COLUMNSSELECT on ALL_LOG_GROUPSSELECT on SYS.DBA_REGISTRYSELECT on SYS.OBJ$

Version 1/1/201610

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 2: Configurar la base de datos de destino de Aurora

SELECT on DBA_TABLESPACESSELECT on ALL_TAB_PARTITIONSSELECT on ALL_ENCRYPTED_COLUMNS* SELECT on all tables migrated

Si desea capturar y aplicar cambios (CDC), también necesitará los siguientes privilegios.

EXECUTE on DBMS_LOGMNR SELECT on V_$LOGMNR_LOGSSELECT on V_$LOGMNR_CONTENTSLOGMINING /* For Oracle 12c and higher. */* ALTER for any table being replicated (if you want DMS to add supplemental logging)

Para versiones de Oracle previas a 11.2.0.3, necesitará los siguientes privilegios. Si las vistas estánexpuestas, necesitará los siguientes privilegios.

SELECT on DBA_OBJECTS /* versions before 11.2.0.3 */SELECT on ALL_VIEWS (required if views are exposed)

Paso 2: Configurar la base de datos de destino deAuroraDe igual modo que con la base de datos de origen, es una buena idea restringir el acceso del usuariocon el que se va a conectar. También puede crear un usuario temporal que podrá eliminar después de lamigración.

CREATE USER 'dms_user'@'%' IDENTIFIED BY 'dms_user';GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON <target database(s)>.* TO 'dms_user'@'%';

AWS DMS utiliza algunas tablas de control en la base de datos awsdms_control de destino. El siguientecomando garantiza que su dms_user tenga el acceso necesario a la base de datos awsdms_control:

GRANT ALL PRIVILEGES ON awsdms_control.* TO 'dms_user'@'%';flush privileges;

Paso 3: Crear una instancia de replicaciónUna instancia de replicación de AWS DMS realiza la migración de datos real entre el origen y el destino.La instancia de replicación también almacena en caché los cambios durante la migración. La capacidadde la CPU y de la memoria de una instancia de replicación influirá en el tiempo necesario para llevar acabo la migración. Utilice el siguiente procedimiento para establecer los parámetros de una instancia dereplicación.

Version 1/1/201611

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Crear una instancia de replicación

Para crear una instancia de replicación de AWS DMS

1. Inicie sesión en la consola de administración de AWS, abra la consola de AWS DMS en https://console.aws.amazon.com/dms/ y elija Replication instances. Si está registrado como usuario de AWSIdentity and Access Management (IAM), debe disponer de los permisos adecuados para acceder aAWS DMS. Para obtener más información sobre los permisos necesarios, consulte la sección sobrepermisos de IAM necesarios para utilizar AWS DMS.

2. Elija Create replication instance.3. En la página Create replication instance especifique la información de la instancia de replicación, tal y

como se muestra a continuación.

Para este parámetro Haga lo siguiente

Nombre Si tiene previsto lanzar varias instancias de replicación ocompartir una cuenta, seleccione un nombre que le ayudea diferenciar rápidamente las diferentes instancias dereplicación.

Descripción Una buena descripción ofrece a los demás una idea depara qué se utiliza la instancia de replicación y puedeevitar accidentes.

Instance class AWS DMS puede consumir bastante memoria y CPU. Sidispone de una base de datos grande (muchas tablas)o utiliza un gran número de tipos de datos LOB, lerecomendamos configurar una instancia grande. Tal comose describe a continuación, podrá aumentar su rendimientoejecutando varias tareas. Múltiples tareas consumen másrecursos y requieren una instancia más grande. Controleel consumo de CPU y memoria a medida que ejecute laspruebas. Si descubre que está utilizando toda la capacidadde la CPU o el espacio de intercambio, podrá escalar confacilidad.

VPC Aquí puede elegir la VPC en la que se lanzará la instanciade replicación. Le recomendamos que, si es posible,seleccione la misma VPC en la base de datos de origen ode destino (o ambas). AWS DMS necesita obtener accesoa su base de datos de origen y de destino desde estaVPC. Si uno o ambos de los puntos de enlace de la basede datos están fuera de esta VPC, modifique las reglas desu cortafuegos para otorgar acceso a AWS DMS.

Varias AZ Si elije Multi-AZ, AWS DMS lanzará una instanciade replicación principal y secundaria en zonas dedisponibilidad distintas. En el caso de que se produzcaun fallo de disco catastrófico, la instancia de replicaciónprincipal cambiará automáticamente a la secundaria, paraevitar una interrupción en el servicio. En la mayoría desituaciones, si se realiza una migración, no necesitarámúltiples zonas de disponibilidad (Multi-AZ). Si la cargade datos inicial tarda mucho tiempo y necesita mantenerlas bases de datos de origen y de destino sincronizadasdurante largo tiempo, quizá podría considerar la posibilidadde ejecutar su servidor de migración en una configuraciónMulti-AZ.

Version 1/1/201612

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Crear una instancia de replicación

Para este parámetro Haga lo siguiente

Publicly accessible Si la base de datos de origen o de destino está fuera de laVPC donde está la instancia de replicación, deberá permitirel acceso público a su instancia de replicación.

4. En la sección Advanced, configure los siguientes parámetros y, a continuación, elija Next.

Para esta opción Haga lo siguiente

Allocated storage (GB) La capacidad de almacenamiento la consumenbásicamente los archivos de registro y las transaccionesque se almacenan en la memoria caché. En el caso de lastransacciones en la memoria caché, el almacenamientose utiliza únicamente cuando las transacciones enmemoria caché se deben escribir en el disco. Por lotanto, AWS DMS no utiliza una cantidad significativa dealmacenamiento, salvo en determinadas excepcionescomo las siguientes:

• Tablas muy grandes que conllevan una carga detransacciones importante. Cargar una tabla muygrande puede llevar su tiempo, por tanto hay másprobabilidades de que las transacciones almacenadasen la memoria caché se escriban en el disco cuando secarga una tabla de gran tamaño.

• Las tareas se configuran para detenerse antes de cargarlas transacciones en caché. En este caso, todas lastransacciones se almacenan en la memoria caché hastaque finaliza la carga completa de todas las tablas. Conesta configuración, es posible que las transacciones enla memoria caché consuman una cantidad considerablede espacio de almacenamiento.

• Tareas configuradas con tablas que se cargan enAmazon Redshift. Sin embargo, esta configuraciónno comporta problema alguno si Aurora MySQL es eldestino.

En la mayoría de los casos, la asignación dealmacenamiento es suficiente. Sin embargo, essiempre aconsejable prestar atención a las métricasrelativas al almacenamiento y ampliar la capacidad dealmacenamiento si determina que el consumo es mayor delo que se ha asignado de forma predeterminada.

Replication Subnet Group Si lo ejecuta en una configuración de múltiples zonas dedisponibilidad (Multi-AZ), necesitará al menos dos gruposde subredes.

Zona de disponibilidad Si es posible, ubique su servidor de replicación principal enla misma zona de disponibilidad que su base de datos dedestino.

VPC Security group(s) Los grupos de seguridad permiten controlar las entradasy salidas de su VPC. Con AWS DMS puede asociar uno o

Version 1/1/201613

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Crear el punto de enlace de origen de Oracle

Para esta opción Haga lo siguientevarios grupos de seguridad con la VPC desde los que selanza el servidor de replicación.

Clave maestra de KMS Con AWS DMS, todos los datos se cifran en reposomediante una clave de cifrado de KMS. De formapredeterminada, AWS DMS crea una nueva clave decifrado para su servidor de replicación. Sin embargo,puede utilizar una clave existente si lo desea.

Paso 4: Crear el punto de enlace de origen de OracleMientras se está creando la instancia de replicación, puede especificar el punto de enlace de origen deOracle con la consola de administración de AWS. Sin embargo, solo puede probar la conectividad despuésde que se haya creado la instancia de replicación, ya que se utiliza para probar la conexión.

Para especificar los puntos de enlace de la base de datos de origen o de destino a con la consolade AWS

1. En el panel de navegación de la consola de AWS DMS, elija Endpoints.2. Elija Create endpoint. Aparece la página de creación del punto de enlace de la base de datos, como

se muestra a continuación.

Version 1/1/201614

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Crear el punto de enlace de origen de Oracle

3. Especifique la información de conexión de la base de datos de origen de Oracle. La siguiente tabladescribe la configuración del origen.

Para este parámetro Haga lo siguiente

Tipo de punto de conexión Elija Source.

Endpoint Identifier Escriba un identificador para el punto de enlace de Oracle.Este identificador debe ser único dentro de una región deAWS.

Source Engine Seleccione oracle.

Server name Si la base de datos es local, escriba una dirección IP queAWS DMS pueda utilizar para conectarse a la base dedatos desde el servidor de replicación. Si la base de datosse ejecuta en Amazon Elastic Compute Cloud (AmazonEC2) o Amazon RDS, escriba el servicio de nombres dedominio (DNS) público.

Port (Puerto) Escriba el puerto para el que la base de datos escucha lasconexiones (el puerto predeterminado de Oracle es 1521).

SSL mode Elija un modo de capa de conexión segura (SSL) si deseaactivar el cifrado de conexión para este punto de enlace.En función del modo seleccionado, es posible que debaproporcionar información de certificado y de certificado deservidor.

Nombre de usuario Escriba el nombre de usuario de la cuenta de AWS. Lerecomendamos que cree una cuenta de AWS específicade su migración.

Contraseña Proporcione la contraseña para el nombre de usuarioanterior.

4. Seleccione la pestaña Advanced para fijar valores para cadenas de conexión adicionales y para laclave de cifrado.

Para esta opción Haga lo siguiente

Extra connection attributes Aquí puede añadir valores para los atributos adicionalesque controlan el comportamiento de su punto de enlace.A continuación se enumeran algunos de los atributosmás relevantes. Para ver la lista completa, consulte ladocumentación. Separe varias entradas entre sí con unpunto y coma (;).

• addSupplementalLogging: AWS DMS añadiráautomáticamente el registro suplementario si activa estaopción (addSupplementalLogging=Y).

• useLogminerReader: de forma predeterminada, AWSDMS utiliza Oracle LogMiner para capturar los datosmodificados de los registros. AWS DMS también puedeanalizar los registros con su propia tecnología. Si utilizaOracle 12c y necesita capturar los cambios en lastablas que incluyen LOB, defina esta opción como No(useLogminerReader=N).

Version 1/1/201615

AWS Database Migration ServiceGuía de la migración paso a pasoPaso 5: Crear el punto de enlace

de destino de Aurora MySQL Para esta opción Haga lo siguiente

• numberDataTypeScale: Oracle admite un tipo dedato NUMBER sin precisión ni escala. De formapredeterminada, NUMBER se convierte en unnúmero con una precisión de 38 y una escala de 10:number(38,10). Los valores válidos son de 0 a 38 o -1para FLOAT.

• archivedLogDestId: esta opción especifica el destino delos logs REDO archivados. El valor debe ser el mismoque el número de DEST_ID en la tabla $archived_log.Al trabajar con varios destinos de registro (DEST_ID),le recomendamos que especifique un identificador deubicación para los logs REDO archivados. De esta formase mejora el desempeño garantizando que accedea los registros correctos desde el principio. El valorpredeterminado para esta opción es 0.

Clave maestra de KMS Elija la clave de cifrado que se utilizará para cifrar elalmacenamiento de la replicación y la información de laconexión. Si elige (Default) aws/dms, se utilizará la claveAWS KMS predeterminada asociada con su cuenta yregión.

Antes de guardar su punto de enlace, puede probarlo. Para hacerlo, seleccione una VPC y la instanciade replicación desde la que realizar las pruebas. Como parte de la prueba, AWS DMS refresca la lista deesquemas asociados con el punto de enlace. (Los esquemas se presentan como opciones de origen alcrear una tarea con este punto de enlace de origen).

Paso 5: Crear el punto de enlace de destino de AuroraMySQLA continuación, puede proporcionar información para la base de datos de destino de Amazon AuroraMySQL mediante especificando la configuración del punto de enlace de destino. La tabla siguientedescribe la configuración del destino.

Para especificar un punto de enlace de la base de datos de destino con la consola deadministración de AWS

1. En el panel de navegación de la consola de AWS DMS, elija Endpoints.2. Elija Create endpoint. Aparece la página de creación del punto de enlace de la base de datos, como

se muestra a continuación.

Version 1/1/201616

AWS Database Migration ServiceGuía de la migración paso a pasoPaso 5: Crear el punto de enlace

de destino de Aurora MySQL

3. Especifique la información de conexión para la base de datos de destino de Aurora MySQL. La tablasiguiente describe la configuración del destino.

Para este parámetro Haga lo siguiente

Tipo de punto de conexión Elija Target.

Endpoint Identifier Escriba un identificador para el punto de enlace de AuroraMySQL. Este identificador debe ser único dentro de unaregión de AWS.

Target Engine Elija aurora.

Servername Escriba el punto de enlace de escritura para la instanciade Aurora MySQL. El punto de enlace de escritura es lainstancia principal.

Port (Puerto) Escriba el puerto asignado a la instancia.

SSL mode Elija un modo SSL si desea habilitar el cifrado deconexión para este punto de enlace. En función delmodo seleccionado, es posible que deba proporcionarinformación de certificado y de certificado de servidor.

Version 1/1/201617

AWS Database Migration ServiceGuía de la migración paso a pasoPaso 5: Crear el punto de enlace

de destino de Aurora MySQL Para este parámetro Haga lo siguiente

Nombre de usuario Escriba el nombre de usuario de la cuenta que utilice parala migración. Le recomendamos que cree una cuentaespecífica para su migración.

Contraseña Proporcione la contraseña para el nombre de usuarioanterior.

4. Seleccione la pestaña Advanced para establecer valores para cadenas de conexión adicionales y laclave de cifrado, en caso de que las necesite.

Para esta opción Haga lo siguiente

Extra connection attributes Aquí puede introducir valores para los atributosadicionales que controlan el comportamiento delpunto de enlace. A continuación se enumeranalgunos de los atributos más relevantes. Paraver la lista completa, consulte la documentación.Separe varias entradas entre sí con un punto ycoma (;).

• targetDbType: de forma predeterminada,AWS DMS crea una base de datos MySQLdiferente para cada esquema que se va amigrar. En ocasiones, es posible que deseecombinar objetos de varios esquemas enuna única base de datos. Para hacerlo,defina esta opción como specific_database(targetDbType=SPECIFIC_DATABASE).

• initstmt: puede utilizar esta opción para llamaral parámetro de conexión MySQL initstmt yaceptar todo lo que acepte mysql initstmt. Altrabajar con una base de datos de destinode Aurora MySQL, se recomienda desactivarlas comprobaciones de claves externas. Parahacerlo, utilice el parámetro initstmt como seindica a continuación:

initstmt=SET FOREIGN_KEY_CHECKS=0

Clave maestra de KMS Elija la clave de cifrado que se utilizará paracifrar el almacenamiento de la replicación y lainformación de la conexión. Si elige (Default)aws/dms, se utilizará la clave AWS KMSpredeterminada asociada con su cuenta yregión.

Antes de guardar el punto de enlace, tiene la oportunidad de probarlo. Para hacerlo, seleccione una VPC yuna instancia de replicación desde las que realizar la prueba.

Version 1/1/201618

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Crear una tarea de migración

Paso 6: Crear una tarea de migraciónAl crear una tarea de migración, le indica a AWS DMS exactamente el modo en que desea migrar susdatos. Dentro de una tarea define las tablas que le gustaría migrar, a dónde desea migrarlas y cómo legustaría migrarlas. Si está pensando en utilizar la captura de cambios y aplicar la capacidad de AWS DMS,es importante saber que las transacciones se mantienen dentro de una única tarea. En otras palabras,debe migrar todas las tablas que participan en una única transacción de forma conjunta en la misma tarea.

Con una tarea de AWS DMS, puede especificar qué esquema se va a migrar y el tipo de migración. Puedemigrar los datos existentes, migrar los datos existentes y replicar los cambios en curso o bien solo replicarlos cambios. En esta guía solo se migran los datos existentes.

Para crear una tarea de migración

1. En el panel de navegación, elija Tasks.2. Seleccione Create Task.3. En la página Create Task especifique las opciones de la tarea. La tabla siguiente describe la

configuración.

Para esta opción Haga lo siguiente

Task name Siempre se recomienda asignar un nombre descriptivo a latarea que ayude a la organización.

Task description Escriba una descripción para la tarea.

Punto de enlace de origen Seleccione su punto de enlace de origen.

Punto de enlace de destino Seleccione su punto de enlace de destino.

Instancia de replicación Seleccione una instancia de replicación en la que ejecutarla tarea. Recuerde que los puntos de enlace de origen y dedestino deben ser accesibles desde esta instancia.

Migration type Puede utilizar tres tipos de migración distintos con AWSDMS.

• Migrar los datos existentes:

Si selecciona esta opción, AWS DMS migra únicamentelos datos existentes. Los cambios en los datos de origenno se capturarán ni se aplicarán al destino. Si puedepermitirse una interrupción hasta que se complete todala carga, la migración con esta opción es fácil y sencilla.Este método también se puede usar para crear copiasde pruebas de la base de datos.

• Migrar los datos existentes y replicar los cambioscontinuos:

Con esta opción, AWS DMS captura los cambiosmientras migra los datos existentes. AWS DMS continúacapturando y aplicando los cambios incluso despuésde haber cargado gran parte de los datos masivos. Conel tiempo, las bases de datos de origen y de destino sesincronizarán, por lo que el tiempo de inactividad de lamigración será mínimo. Para ello, siga estos pasos:• Cierre la aplicación

Version 1/1/201619

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Crear una tarea de migración

Para esta opción Haga lo siguiente• Permita que el último cambio llegue al destino• Realice las tareas administrativas necesarias

como, por ejemplo, activar las claves externas y losdisparadores

• Inicie la aplicación apuntando hacia la nueva base dedatos de destino

Note

AWS DMS carga los datos masivos tablapor tabla, <n> tablas a la vez. A medida queprogresa toda la carga, AWS DMS comienzaa aplicar los cambios almacenados en cachéen las tablas de destino tan pronto como seaposible. Durante la carga masiva se viola laintegridad referencial, por lo que las clavesexternas existentes deberán desactivarse parala carga completa. Una vez completada todala carga, la base de datos de destino disponede integridad y los cambios se aplican comotransacciones.

• Replicar solo los cambios en los datos:

En algunos casos puede elegir cargar los datos masivoscon un método diferente. Por lo general, este enfoquesolo se aplica a las migraciones homogéneas.

Start task on create En la mayoría de situaciones se suele iniciar la tareainmediatamente. Aunque, en ocasiones, es posible quequiera retrasar el inicio de una tarea para, por ejemplo,cambiar los niveles de registro.

4. A continuación, defina los Advanced settings, tal y como se muestra a continuación.

Para esta opción Haga lo siguiente

Target table preparation mode AWS DMS le permite especificar cómo le gustaría que sepreparen las tablas de destino antes de la carga.

Do nothing: si selecciona esta opción, AWS DMS nopreparará las tablas. La estructura de las tablas seguiráigual y los datos existentes se quedarán en la tabla. Puedeutilizar este método para unificar los datos de variossistemas.

Drop tables on target: esta opción se suele usar si quiereque AWS DMS le cree la tabla de destino. Al seleccionaresta opción, AWS DMS borra y vuelve a crear las tablasque se van a migrar antes de la migración.

Truncate: seleccione esta opción si desea crearpreviamente algunas o todas las tablas en el sistema dedestino, quizás con AWS Schema Conversion Tool. Siselecciona esta opción, AWS DMS trunca una tabla de

Version 1/1/201620

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Crear una tarea de migración

Para esta opción Haga lo siguientedestino antes de cargarla. Si la tabla de destino no existe,AWS DMS crea la tabla para usted.

Include LOB columns in replication A veces, migrar objetos grandes (LOB) entre sistemasresulta complicado. AWS DMS ofrece una serie deopciones para ayudar a ajustar las columnas de LOB.Para saber qué y cuándo AWS DMS considera los tiposde datos como LOB, consulte la documentación de AWSDMS.

Don't include LOB columns: al migrar datos desdeuna base de datos a otra, puede aprovechar parareplantearse la manera en que quiere almacenar los LOB,especialmente en migraciones heterogéneas. Si deseahacerlo, no será necesario migrar los datos LOB.

Full LOB mode: en Full LOB mode, AWS DMS migra todoslos LOB del origen al destino sin importar el tamaño. Enesta configuración, AWS DMS no tiene información sobreel tamaño máximo de los LOB. Por lo tanto, los LOB semigran de uno en uno. El modo LOB completo puede serbastante lento.

Limited LOB mode: en Limited LOB mode, usted estableceel tamaño máximo de LOB que AWS DMS debe aceptar.Esto permite que AWS DMS reasigne previamente lamemoria y cargue los datos LOB en masa. Los LOB quesuperen el tamaño máximo se truncarán y se emitirá unaadvertencia para el archivo de registro. En Limited LOBmode conseguirá una mejora significativa del desempeñofrente a Full LOB mode. Le recomendamos que utiliceLimited LOB mode siempre que sea posible.

Note

Con Oracle, los LOB se tratan como tipos dedatos VARCHAR, siempre que sea posible. Esteenfoque significa que AWS DMS los recopilaen masa desde la base de datos, lo que essignificativamente más rápido que otros métodos.El tamaño máximo de un VARCHAR en Oracle esde 64K, por lo tanto un tamaño de LOB limitadode menos de 64K es óptimo si Oracle es la basede datos de origen.

Max LOB size (K) Cuando se configura una tarea para que se ejecute enLimited LOB mode, esta opción determina el tamañomáximo del LOB que aceptará AWS DMS. Cualquier LOBque sea superior a este valor se truncará en este valor.

Version 1/1/201621

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Crear una tarea de migración

Para esta opción Haga lo siguiente

LOB chunk size (K) Cuando se configura una tarea para utilizar Full LOBmode, AWS DMS recupera los LOB en partes. Esta opcióndetermina el tamaño de cada fragmento. Al configurar estaopción, tenga en cuenta el tamaño máximo del paquetede su configuración de red. Si el tamaño del fragmentoLOB supera el tamaño máximo permitido del paquete, esposible que vea errores de desconexión.

Custom CDC start time Este parámetro pertenece a las tareas configuradas parareplicar únicamente los cambios de datos. Le indica aAWS DMS dónde empezar a buscar cambios en el flujo decambios.

Enable logging Active siempre el registro.

5. Defina los parámetros adicionales.

Para esta opción Haga lo siguiente

Create control table(s) in targetschema

AWS DMS requiere algunas tablas de control en la basede datos de destino. De forma predeterminada, estastablas se crean en la misma base de datos que susdatos. Este parámetro le permite indicar a AWS DMS quecoloque dichos elementos en otro lugar.

Maximum number of tables to load inparallel

AWS DMS realiza una carga de tabla tras tabla con susdatos. Este parámetro le permite controlar cuántas tablascargará AWS DMS en paralelo. El valor predeterminado es8, que es óptimo en la mayoría de casos.

6. Especifique la configuración del mapeo de tablas.

Los mapeos de tablas le indican a AWS DMS qué tablas debe migrar una tarea desde el origen aldestino. Los mapeos se expresan en JSON, aunque algunos ajustes pueden hacerse mediante laconsola de administración de AWS. Los mapeos de tablas también pueden incluir transformacionescomo, por ejemplo, el cambio de nombres de tabla de mayúsculas a minúsculas.

AWS DMS genera mapeos de tablas predeterminadas para cada esquema (no del sistema) enla base de datos de origen. En la mayoría de los casos deberá personalizar su mapeo de tablas.Para personalizar su mapeo de tablas, seleccione el botón de opción personalizado. Para obtenermás información sobre cómo crear mapeos de tablas, consulte la documentación de AWS DMS. Elsiguiente mapeo de tablas realiza estas cosas:

• Incluye el esquema DMS_SAMPLE en la migración.• Excluye las tablas NFL_DATA, MLB_DATA, NAME_DATE y STADIUM_DATA.• Convierte los nombre de esquemas, tablas y columnas a minúsculas.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": {

Version 1/1/201622

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Crear una tarea de migración

"schema-name": "DMS_SAMPLE", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "MLB_DATA" }, "rule-action": "exclude" },{ "rule-type": "selection", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "NAME_DATA" }, "rule-action": "exclude" }, { "rule-type": "selection", "rule-id": "4", "rule-name": "4", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "NFL_DATA" }, "rule-action": "exclude" },

{ "rule-type": "selection", "rule-id": "5", "rule-name": "5", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "NFL_STADIUM_DATA" }, "rule-action": "exclude" },{ "rule-type": "transformation", "rule-id": "6", "rule-name": "6", "rule-action": "convert-lowercase", "rule-target": "schema", "object-locator": { "schema-name": "%" } }, { "rule-type": "transformation", "rule-id": "7", "rule-name": "7", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "%", "table-name": "%"

Version 1/1/201623

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 7: Monitorizar la tarea de migración

} }, { "rule-type": "transformation", "rule-id": "8", "rule-name": "8", "rule-action": "convert-lowercase", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" } } ]}

Paso 7: Monitorizar la tarea de migraciónTres secciones en la consola proporcionan información sobre lo que hace la tarea de migración:

• Monitorización de tareas: la pestaña Task monitoring ofrece un análisis de su rendimiento de cargacompleta, captura los cambios y aplica las latencias.

• Estadísticas de tabla: la pestaña Table Statistics proporciona información detallada sobre el númerode filas procesadas, el tipo y el número de transacciones procesadas, así como información sobre lasoperaciones DDL.

• Registros: en la pestaña Logs puede ver el archivo de registro de su tarea (si ha activado el registro).Si, por alguna razón, la tarea falla, busque errores en este archivo. También puede buscar advertenciasen el archivo. Cualquier truncado de datos en su tarea aparece como una advertencia en el archivo deregistro. Si lo necesita, puede aumentar el nivel de registro usando la interfaz de línea de comandos(CLI) de AWS.

Solución de problemasLas dos áreas donde la gente suele encontrar problemas al trabajar con Oracle como origen y AuroraMySQL como destino son: el registro suplementario y la distinción entre mayúsculas y minúsculas.

• Registro suplementario: con Oracle, para que la replicación cambie los datos, el registro suplementariodebe estar activado. Sin embargo, si activa el registro suplementario en el nivel de la base de datos, aveces hay que volver a activarlo al crear tablas nuevas. La mejor solución consiste en permitir que DMSactive el registro suplementario para usted utilizando el atributo de conexión adicional:

addSupplementalLogging=Y

• Distinción entre mayúsculas y minúsculas: Oracle no distingue entre mayúsculas y minúsculas (a menosque utilice comillas en los nombres de objeto). Sin embargo, el texto aparece en mayúsculas. Por lotanto, AWS DMS denomina los objetos de destino en mayúsculas de forma predeterminada. En lamayoría de casos, le convendría utilizar transformaciones para cambiar los nombres de esquemas,tablas y columnas a minúsculas.

Version 1/1/201624

AWS Database Migration ServiceGuía de la migración paso a paso

Uso de la base de datos de muestra para la migración

Para obtener más consejos, consulte la sección de resolución de problemas de AWS DMS en la Guía delusuario de AWS.

Para solucionar problemas específicos de Oracle, consulte la sección de resolución de problemas deOracle:

http://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.Oracle

Para solucionar problemas de Aurora MySQL, consulte la sección de resolución de problemas de MySQL:

http://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.MySQL

Uso de la base de datos de muestra para lamigración

Recomendamos que para seguir el esquema y la guía anteriores utilice la base de datos de Oracle demuestra proporcionada por Amazon. Esta base de datos imita un sencillo sistema de entradas paraeventos deportivos. Los scripts para generar la base de datos de ejemplo forman parte del archivo .tarubicado aquí: https://github.com/awslabs/aws-database-migration-samples.

Para crear la base de datos de muestra, extraiga el archivo .tar y siga las instrucciones de los archivosREADME y de instalación.

La muestra incluye aproximadamente entre 8 y 10 GB de datos. La base de datos de muestra tambiénincluye el paquete ticketManagment, que se puede utilizar para generar algunas transacciones.Para generar transacciones, inicie sesión en SQL*Plus o SQL Developer y ejecute lo siguiente comodms_sample:

SQL>exec ticketManagement.generateTicketActivity(0.01,1000);

El primer parámetro es el retraso de la transacción en segundos y el segundo es el número detransacciones a generar. El procedimiento anterior simplemente "vende entradas" a la gente. Veráactualizaciones en las tablas sporting_event_ticket y ticket_purchase_history.

En cuanto haya "vendido" algunas entradas, podrá transferirlas con el siguiente comando:

SQL>exec ticketManagement.generateTransferActivity(1,100);

El primer parámetro es el retraso de la transacción en segundos y el segundo es el númerode transacciones a generar. Este procedimiento también actualiza sporting_event_ticket yticket_purchase_history.

Version 1/1/201625

AWS Database Migration ServiceGuía de la migración paso a paso

Migración de una base de datosde Amazon RDS Oracle a AmazonAurora MySQL

En esta guía se explica la migración de bases de datos heterogéneas desde Amazon RDS Oracle aCompatibilidad de Amazon Aurora con MySQL mediante AWS Database Migration Service y AWS SchemaConversion Tool. Se trata de un ejercicio de introducción que no cubre todos los escenarios, pero leproporcionará una buena explicación de los pasos que se realizan al ejecutar una migración.

Es importante saber que AWS DMS y AWS SCT son dos herramientas diferentes y atienden a diferentesnecesidades. No interactúan entre sí en el proceso de migración. A grandes rasgos, los pasos de estamigración son los siguientes:

1. Uso de AWS SCT para:• Ejecutar el informe de conversión de Oracle a Aurora MySQL para identificar los problemas, las

limitaciones y las acciones necesarias para convertir los esquemas.• Generar los scripts de esquema y aplicarlos al destino antes de cargar los datos mediante AWS DMS.

AWS SCT realiza las conversiones de código necesarias para objetos como procedimientos y vistas.2. Identificar e implementar soluciones para los problemas que notifica AWS SCT. Por ejemplo, un tipo de

objeto Oracle Sequence que no es compatible con Amazon Aurora MySQL se puede gestionar mediantela opción auto_increment para rellenar las claves sustitutas o desarrollar una lógica para las secuenciasen la capa de la aplicación.

3. Desactivar claves externas u otras restricciones que pueden influir en la carga de datos de AWS DMS.4. AWS DMS carga los datos desde el origen al destino mediante el método Full Load. Pese a que AWS

DMS es capaz de crear objetos en el destino durante la carga, se basa en un enfoque minimalista paramigrar los datos de forma eficiente, por lo que no copia toda la estructura del esquema desde el origenal destino.

5. Tras la migración, puede realizar actividades como crear índices adicionales, habilitar claves externas yrealizar los cambios necesarios en la aplicación para que apunte a la nueva base de datos.

Esta guía utiliza una plantilla de AWS CloudFormation personalizada para crear una instancia de base dedatos de Oracle en Amazon RDS y Amazon Aurora MySQL. Después utiliza un script de comandos SQLpara instalar un esquema de ejemplo y datos en la instancia de base de datos de Oracle en Amazon RDSque se migrará a Amazon Aurora MySQL más adelante.

Para completar esta guía se necesitan dos horas aproximadamente. El costo estimado para completarlacon los recursos de AWS es de alrededor de 5,00 USD. Asegúrese de seguir las instrucciones paraeliminar los recursos al final de esta guía y evitar así cargos adicionales.

Temas• Costos (p. 27)• Requisitos previos (p. 28)• Arquitectura de migración (p. 29)• Migración paso a paso (p. 30)• Pasos siguientes (p. 68)

Version 1/1/201626

AWS Database Migration ServiceGuía de la migración paso a paso

Costos

• Plantilla de AWS CloudFormation, scripts SQL y otros recursos (p. 68)• Referencias (p. 69)

CostosPara esta guía, los recursos de Amazon Relational Database Service (Amazon RDS) se aprovisionanmediante AWS CloudFormation, así como los recursos de AWS Database Migration Service (AWS DMS).Al aprovisionarlos se generan cargos por hora en su cuenta de AWS. AWS Schema Conversion Tool noincurre en costos, ya que se ofrece como parte de AWS DMS.

Aunque solo necesitará una cantidad mínima de recursos para esta guía, algunos de estos recursos no seincluyen en la capa gratuita de AWS. Al final de esta guía encontrará una sección donde se explica cómoeliminar los recursos para evitar cargos adicionales. Elimine los recursos en cuanto haya completado eltutorial.

Para estimar el costo de ejecutar esta guía en AWS, puede utilizar la calculadora costo mensual AWS.Sin embargo, el servicio AWS DMS todavía no está incorporado en la calculadora. En la siguiente tabla sedesglosan los precios de AWS DMS y de Amazon RDS Oracle Standard Edition Two.

Servicio de AWS Tipo de instancia Almacenamiento yE/S

Instancia de base de datos de Amazon RDS Oracle, licenciaincluida (Standard Edition Two), Single AZ

db.m3.medium Single AZ,10 GB dealmacenamiento,GP2

Instancia de base de datos de Amazon Aurora MySQL db.r3.large Una única zonade disponibilidad,10 GB dealmacenamiento, 1millón de E/S

Instancia de replicación de AWS DMS t2.small 50 GB dealmacenamientopara mantenerincluidos losregistros dereplicación

Transferencia de datos de AWS DMS Gratuita. Latransferencia dedatos entre AWSDMS y las basesde datos en lasinstancias RDS enla misma zona dedisponibilidad esgratuita

 

Transferencia de datos de salida Primer GB gratuitoal mes

 

Suponiendo que ejecute esta guía durante dos horas, el precio que calculamos para el uso de los recursosde AWS es el siguiente:

Version 1/1/201627

AWS Database Migration ServiceGuía de la migración paso a paso

Requisitos previos

• Amazon Aurora MySQL +10 GB de almacenamiento calculado con la calculadora costo mensual AWSes de 1,78 USD.

• Costo estimado de Amazon RDS Oracle SE2 (licencia incluida) + 10 GB GP2 de almacenamiento segúnel sitio de precios a (0,226 USD) * 2 horas + (0,115 USD) * 10 GB es de 1,602 USD.

• Costo estimado del servicio AWS DMS de la instancia t2.small con 50 GB GP2 de almacenamientosegún el sitio de precios a (0,036 USD) * 2 horas es de 0,072 USD.

Costo total estimado de la ejecución de este proyecto = 1,78 USD +1,602 + 0,072 USD = 3,454 USD,aproximadamente 5,00 USD.

Este precio se basa en las siguientes suposiciones:

• Suponemos que la transferencia de datos total a Internet es inferior a un gigabyte. La estimación deprecios anterior supone que el precio de la transferencia de datos y de las copias de seguridad asociadoa los servicios de RDS y DMS está dentro de los límites de la capa gratuita.

• El almacenamiento consumido por la base de datos de Aurora MySQL se factura en incrementosmensuales en GB y las E/S se facturan en incrementos de solicitudes por millón.

• La transferencia de datos entre DMS y las bases de datos en las instancias RDS en la misma zona dedisponibilidad son gratuitas.

Requisitos previosLos siguientes requisitos previos también son necesarios para completar esta guía:

• Conocer Amazon RDS, las tecnologías de base de datos aplicables y SQL.• Los scripts personalizados que incluyen crear las tablas que se van a migrar y las consultas SQL para

confirmar la migración. Los scripts y consultas están disponibles en los siguientes enlaces. Cada uno delos pasos de la guía también contiene un enlace para descargar el archivo o incluye la consulta exactaen el paso.• Instrucciones SQL para crear el esquema de HR: https://dms-sbs.s3.amazonaws.com/Oracle-HR-

Schema-Build.sql.• Consultas SQL para validar los contenidos del esquema: (texto) https://dms-sbs.s3.amazonaws.com/

AWSDMSDemoStats.txt y (hoja de cálculo) https://dms-sbs.s3.amazonaws.com/AWSDMSDemoStats.xlsx.

• Plantilla de AWS CloudFormation: https://dms-sbs.s3.amazonaws.com/Oracle_Aurora_RDS_For_DMSDemo.template.

• Una cuenta de AWS con credenciales de AWS Identity and Access Management (IAM) que le permitanlanzar las instancias Amazon Relational Database Service (Amazon RDS) y AWS Database MigrationService (AWS DMS) en su región de AWS. Para obtener información sobre las credenciales de IAM,consulte la información sobre cómo crear un usuario de IAM.

• Conocimientos básicos del servicio Amazon Virtual Private Cloud (Amazon VPC) y de los grupos deseguridad. Para obtener información sobre cómo utilizar Amazon VPC con Amazon RDS, consultela información sobre Virtual Private Cloud (VPC) y Amazon RDS. Para obtener información sobre losgrupos de seguridad de Amazon RDS, consulte la información sobre grupos de seguridad de AmazonRDS.

• Conocimiento de las características compatibles y las limitaciones de AWS DMS. Para obtenerinformación sobre AWS DMS, consulte ¿Qué es AWS Database Migration Service?

• Conocimientos sobre las opciones de conversión de tipo de datos admitidas para Oracle y AmazonAurora MySQL. Para obtener información sobre los tipos de datos para Oracle como origen, consultela sección sobre uso de una base de datos de Oracle como origen para AWS Database MigrationService . Para obtener información sobre los tipos de datos para Amazon Aurora MySQL como destino,

Version 1/1/201628

AWS Database Migration ServiceGuía de la migración paso a paso

Arquitectura de migración

consulte la sección Uso de una base de datos compatible con MySQL como destino para AWS DatabaseMigration Service.

Para obtener más información sobre AWS DMS, consulte la documentación de AWS DMS.

Arquitectura de migraciónEsta guía utiliza AWS CloudFormation para crear una topología de red sencilla para la migración de basesde datos que incluya la base de datos de origen, la instancia de replicación y la base de datos de destinoen la misma VPC. Para obtener más información sobre AWS CloudFormation, consulte la documentaciónde CloudFormation.

Aprovisionamos los recursos de AWS que se necesitan para esta guía de AWS Database MigrationService (AWS DMS) a través de AWS CloudFormation. Estos recursos incluyen una VPC e instanciasAmazon Relational Database Service (Amazon RDS) para Oracle y Amazon Aurora MySQL.Aprovisionamos a través de AWS CloudFormation porque simplifica el proceso, por lo que podemosconcentrarnos en tareas relacionadas con la migración de datos. Cuando crea una pila a partir de unaplantilla de AWS CloudFormation, esta aprovisiona los siguientes recursos:

• Una VPC con CIDR (10.0.0.0/24) con dos subredes públicas en su región, DBSubnet1 en la dirección10.0.0.0/26 en la zona de disponibilidad (AZ) 1 y DBSubnet2 en la dirección 10.0.0.64/26, en AZ 12.

• Un grupo de subred de base de datos que incluye DBSubnet1 y DBSubnet2.• Oracle RDS Standard Edition Two con estas opciones de implementación:

• Licencia incluida• Configuración de Single-AZ• db.m3.medium o clase de instancia equivalente• Puerto 1521• Opción y grupos de parámetros predeterminados

• Instancia de base de datos Amazon Aurora MySQL con estas opciones de implementación:• Sin réplicas• Clase de instancia db.r3.large o equivalente• Puerto 3306• Opción y grupos de parámetros predeterminados

• Un grupo de seguridad con acceso desde un equipo o 0.0.0.0/0 (acceso desde cualquier lugar) enfunción del parámetro de entrada

Hemos diseñado la plantilla CloudFormation para que el usuario no tenga que intervenir demasiado.Aprovisiona los recursos necesarios de AWS con las configuraciones mínimas recomendadas. Sinembargo, si desea cambiar algunas de las configuraciones y parámetros, como el bloque de VPC CIDR ylos tipos de instancia de Amazon RDS, no dude en actualizar la plantilla.

Utilizaremos la consola de administración de AWS para aprovisionar los recursos de AWS DMS, como lainstancia de replicación, los puntos de enlace y las tareas. Deberá instalar herramientas de cliente, comoSQL Workbench/J y AWS Schema Conversion Tool (AWS SCT), en su equipo local para conectarse a lasinstancias de Amazon RDS.

A continuación se presenta un ejemplo de la arquitectura de migración para esta guía.

Version 1/1/201629

AWS Database Migration ServiceGuía de la migración paso a paso

Migración paso a paso

Migración paso a pasoEn las siguientes secciones, encontrará las instrucciones paso a paso para migrar la base de datos deAmazon Relational Database Service (Amazon RDS) Oracle a Amazon Aurora MySQL. Se presupone queantes de emprender estos pasos ya ha preparado la base de datos de origen tal como se describe en lassecciones anteriores.

Temas• Paso 1: Iniciar las instancias de RDS en una VPC con la plantilla de CloudFormation (p. 31)• Paso 2: Instalar las herramientas de SQL y AWS Schema Conversion Tool en su equipo

local (p. 36)• Paso 3: Comprobar la conectividad de la instancia de base de datos de Oracle y crear el esquema de

ejemplo (p. 38)• Paso 4: Probar la conectividad con la instancia de base de datos de Aurora MySQL (p. 42)• Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT) para convertir los esquemas de Oracle a

Aurora MySQL (p. 44)• Paso 6: Validar la conversión de esquemas (p. 55)• Paso 7: Crear una instancia de replicación de AWS DMS (p. 58)• Paso 8: Crear los puntos de enlace de origen y destino de AWS DMS (p. 59)• Paso 9: Crear y ejecutar la tarea de migración de AWS DMS (p. 62)• Paso 10: Comprobar que la migración de datos se realizó correctamente (p. 65)• Paso 11: Eliminar los recursos de la guía (p. 67)

Version 1/1/201630

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Iniciar las instancias de RDS enuna VPC con la plantilla de CloudFormation

Paso 1: Iniciar las instancias de RDS en una VPC conla plantilla de CloudFormationEn primer lugar, necesita aprovisionar los recursos de AWS necesarios para esta guía.

Para utilizar AWS CloudFormation con el fin de crear recursos de Amazon RDS para esta guía

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS CloudFormation enhttps://console.aws.amazon.com/cloudformation.

2. Elija Create stack.3. En la página Select Template elija Specify an Amazon S3 template URL y pegue la siguiente URL en

el cuadro de texto adyacente:

https://dms-sbs.s3.amazonaws.com/Oracle_Aurora_RDS_For_DMSDemo.template

4. Seleccione Next. En la página Specify Details proporcione los valores de los parámetros según semuestra a continuación.

Para este parámetro Haga lo siguiente

Nombre de la pila Escriba DMSdemo.

Version 1/1/201631

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Iniciar las instancias de RDS enuna VPC con la plantilla de CloudFormation

Para este parámetro Haga lo siguiente

OracleDBName Facilite un nombre único para la base de datos. El nombredebe comenzar con una letra. El valor predeterminado esORCL.

OracleDBUsername Indique el usuario administrador (DBA) para administrarla instancia de Oracle. El valor predeterminado esoraadmin.

OracleDBPassword Especifique la contraseña para el usuario administrador.

AuroraDBUsername Indique el usuario administrador (DBA) para administrarla instancia de Aurora MySQL. El valor predeterminado esauradmin.

AuroraDBPassword Especifique la contraseña para el usuario administrador.

ClientIP Especifique la dirección IP en formato CIDR (x.x.x.x/32)para el equipo local. Puede obtener la dirección IP enwhatsmyip.org. El grupo de seguridad de instancias deRDS permite entrar en esta dirección IP. Se puede teneracceso al valor predeterminado desde cualquier lugar(0.0.0.0/0), lo cual no se recomienda; en esta guía, debeutilizar su dirección IP.

Version 1/1/201632

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Iniciar las instancias de RDS enuna VPC con la plantilla de CloudFormation

5. Seleccione Next. En la página Options que se muestra a continuación, seleccione Next.

Version 1/1/201633

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Iniciar las instancias de RDS enuna VPC con la plantilla de CloudFormation

6. En la página Review, revise los detalles y, si son correctos, elija Create Stack. Puede obtener el costoestimado de la ejecución de esta plantilla de CloudFormation seleccionando Cost.

7. AWS puede tardar aproximadamente 20 minutos o más en crear la pila con instancias de AmazonRDS para Oracle y Amazon Aurora MySQL.

Version 1/1/201634

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Iniciar las instancias de RDS enuna VPC con la plantilla de CloudFormation

8. Una vez que haya creado la pila, seleccione Stack, seleccione la pila DMSdemo y, a continuación,seleccione Outputs. Registre las cadenas de conexión de JDBC, OracleJDBCConnectionString yAuroraJDBCConnectionString, para un uso posterior en esta guía con el fin de conectarse a lasinstancias de bases de datos de Oracle y Aurora MySQL.

Version 1/1/201635

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 2: Instalar las herramientas de SQL y AWSSchema Conversion Tool en su equipo local

Note

Oracle 12c SE Two License versión 12.1.0.2.v4 está disponible en todas las regiones. Sinembargo, Amazon Aurora MySQL no está disponible en todas las regiones. Amazon AuroraMySQL está disponible actualmente en las regiones de EE. UU. Este (Norte de Virginia), EE. UU.Oeste (Oregón), UE (Irlanda), Asia Pacífico (Tokio), Asia Pacífico (Mumbai), Asia Pacífico(Sídney) y Asia Pacífico (Seúl). Si intenta crear una pila en una región en la que Aurora MySQL noesté disponible, la creación generará el error Invalid DB Engine for AuroraCluster.

Paso 2: Instalar las herramientas de SQL y AWSSchema Conversion Tool en su equipo localA continuación, instale un cliente SQL y AWS Schema Conversion Tool (AWS SCT) en su equipo local.

En esta guía, suponemos que va a utilizar el cliente SQL Workbench/J para conectarse a instancias RDSpara validar la migración. Le recomendamos que se plantee el uso de otras herramientas de softwarecomo las siguientes:

• JACK DB, una interfaz web online para utilizar con bases de datos de RDS (Oracle y Aurora MySQL) através de JDBC

• DBVisualizer• Oracle SQL Developer

Version 1/1/201636

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 2: Instalar las herramientas de SQL y AWSSchema Conversion Tool en su equipo local

Para instalar el software de cliente SQL

1. Descargue SQL Workbench/J desde el sitio web de SQL Workbench/J e instálelo en su equipo local.Este cliente SQL es gratuito y de código abierto, además es independiente del sistema de gestión debases de datos.

2. Descargue el controlador JDBC de Oracle Database 12.1.0.2 (ojdbc7.jar).3. Descargue el controlador MySQL ( mysql-connector-java-5.1.39-bin.jar).4. Al utilizar SQL Workbench/J, configure los controladores JDBC para Oracle y Aurora MySQL para

poder establecer la conectividad, tal como se describe a continuación.

1. En SQL Workbench/J seleccione File y después Manage Drivers.2. En la lista de controladores seleccione Oracle.3. Seleccione el icono de abrir y, a continuación, el archivo ojdbc.jar que descargó en el paso

anterior. Seleccione Aceptar.

4. En la lista de controladores, seleccione MySQL.5. Seleccione el icono de abrir y, a continuación, el controlador JDBC para MySQL que descargó en

el paso anterior. Seleccione Aceptar.

Version 1/1/201637

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Comprobar la conectividad de la instancia debase de datos de Oracle y crear el esquema de ejemplo

A continuación, instale la herramienta de migración de esquemas de AWS y los controladores JDBCnecesarios.

Para instalar la herramienta de migración de esquemas de AWS y los controladores JDBC

1. Descargue AWS Schema Conversion Tool desde Instalación y actualización de AWS SchemaConversion Tool en la Guía del usuario de AWS Schema Conversion Tool. De forma predeterminada,la herramienta se instala en el directorio C:\Program Files\AWS Schema Conversion Tool\AWS.

2. Inicie AWS Schema Conversion Tool.3. En AWS Schema Conversion Tool elija Global Settings (Configuración global) en Settings

(Configuración).4. En Global Settings elija Driver y, a continuación, seleccione Browse para Oracle Driver Path. Busque

el controlador JDBC de Oracle y seleccione OK. A continuación, elija Browse para MySql Driver Path.Localice el controlador JDBC para MySQL y elija OK. Seleccione OK para cerrar el cuadro de diálogo.

Paso 3: Comprobar la conectividad de la instanciade base de datos de Oracle y crear el esquema deejemploDespués de crear la pila de CloudFormation, pruebe la conexión a la instancia de base de datos de Oraclemediante SQL Workbench/J y, a continuación, cree el esquema de ejemplo.

Para probar la conexión a la instancia de base de datos de Oracle con SQL Workbench/J y crearel esquema de ejemplo

1. En SQL Workbench/J seleccione File y después Connect window. Cree un nuevo perfil de conexióncon la siguiente información, tal y como se muestra a continuación

Version 1/1/201638

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Comprobar la conectividad de la instancia debase de datos de Oracle y crear el esquema de ejemplo

Para este parámetro Haga lo siguiente

New profile name Escriba RDSOracleConnection.

Controlador Elija Oracle (oracle.jdbc.OracleDriver).

URL Utilice el valor OracleJDBCConnectionString que registróal examinar la información sobre los resultados de la pilade DMSdemo en un paso anterior.

Nombre de usuario Escriba oraadmin.

Contraseña Proporcione la contraseña para el usuario administradorque ha asignado al crear la instancia de base de datos deOracle con la plantilla de AWS CloudFormation.

2. Pruebe la conexión seleccionando Test. Seleccione OK para cerrar el cuadro de diálogo y luego OKpara crear el perfil de conexión.

Note

Si la conexión no se realiza correctamente, asegúrese de que la dirección IP que asignó alcrear la plantilla de CloudFormation es aquella desde la que intenta establecer la conexión.Este problema es el más habitual cuando intenta conectarse a una instancia.

3. Cree el esquema de HR que utilizará para la migración mediante un script personalizado. El scriptSQL de AWS se encuentra en este sitio.

1. Abra el script SQL proporcionado en un editor de texto. Copie todo el script.2. En SQL Workbench/J, pegue el script de SQL en la ventana Default.wksp donde aparece

Statement 1.

Version 1/1/201639

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Comprobar la conectividad de la instancia debase de datos de Oracle y crear el esquema de ejemplo

3. Elija SQL y después Execute All.

Cuando ejecute el script, recibirá un mensaje de error en el que se indica que el usuario HR noexiste. Puede ignorar este error y ejecutar el script. El script borra el usuario antes de crearlo, loque genera el error.

4. Compruebe que los tipos de objeto y el recuento del esquema de HR se crearon correctamente. Paraello, ejecute la siguiente consulta SQL. También puede comparar los resultados de las siguientesconsultas con los resultados que se enumeran en la hoja de cálculo que proporciona AWS en estesitio.

Select OBJECT_TYPE, COUNT(*) from dba_OBJECTS where owner='HR' GROUP BY OBJECT_TYPE;

Los resultados de esta consulta deben ser similares a los siguientes:

Version 1/1/201640

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Comprobar la conectividad de la instancia debase de datos de Oracle y crear el esquema de ejemplo

OBJECT_TYPE COUNT(*) INDEX 7 PROCEDURE 2 SEQUENCE 3 TABLE 7 VIEW 1

5. Compruebe el número de restricciones en el esquema de HR mediante la ejecución de la siguienteconsulta SQL:

Select CONSTRAINT_TYPE,COUNT(*) from dba_constraints where owner='HR'

Version 1/1/201641

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Probar la conectividad con lainstancia de base de datos de Aurora MySQL

AND (CONSTRAINT_TYPE IN ('P','R')OR SEARCH_CONDITION_VC NOT LIKE '%NOT NULL%') GROUP BY CONSTRAINT_TYPE;

Los resultados de esta consulta deben ser similares a los siguientes:

CONSTRAINT_TYPE COUNT(*) R 10 P 7 C 2

6. Compruebe el número total de tablas y el número de filas de cada tabla. Para ello, ejecute la siguienteconsulta SQL:

Select table_name, num_rows from dba_tables where owner='HR' order by 1;

Los resultados de esta consulta deben ser similares a los siguientes:

TABLE_NAME NUM_ROWS COUNTRIES 25 DEPARTMENTS 27 EMPLOYEES 107 JOBS 19 JOB_HISTORY 10 LOCATIONS 23 REGIONS 4

7. Compruebe la relación en las tablas. Vea los departamentos con más de 10 empleados mediante laejecución de la siguiente consulta SQL:

Select b.department_name,count(*) from HR.Employees a,HR.departments b where a.department_id=b.department_id group by b.department_name having count(*) > 10order by 1;

Los resultados de esta consulta deben ser similares a los siguientes:

DEPARTMENT_NAME COUNT(*)Sales 34Shipping 45

Paso 4: Probar la conectividad con la instancia debase de datos de Aurora MySQLA continuación, pruebe la conexión a su instancia de base de datos de Aurora MySQL.

Version 1/1/201642

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Probar la conectividad con lainstancia de base de datos de Aurora MySQL

Para probar la conexión a su instancia de base de datos de Aurora MySQL mediante SQLWorkbench/J

1. En SQL Workbench/J seleccione File y después Connect window. Elija el icono de creación de unnuevo perfil de conexión y utilice la siguiente información: Conéctese a la instancia de base de datosde Aurora MySQL en SQL Workbench/J con la información que se muestra a continuación

Para este parámetro Haga lo siguiente

New profile name Indique RDSAuroraConnection.

Controlador Elija MySQL (com.mysql.jdbc.Driver).

URL Utilice el valor AuroraJDBCConnectionString que registróal examinar la información sobre los resultados de la pilade DMSdemo en un paso anterior.

Nombre de usuario Indique auradmin.

Contraseña Proporcione la contraseña para el usuario administradorque ha asignado al crear la instancia de base de datos deAurora MySQL con la plantilla de AWS CloudFormation.

2. Pruebe la conexión seleccionando Test. Seleccione OK para cerrar el cuadro de diálogo y luego OKpara crear el perfil de conexión.

Note

Si la conexión no se realiza correctamente, asegúrese de que la dirección IP que asignó alcrear la plantilla de CloudFormation es aquella desde la que intenta establecer la conexión.Este problema es el más habitual cuando intenta conectarse a una instancia.

Version 1/1/201643

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a Aurora MySQL

3. Inicie sesión en la instancia de Aurora MySQL con las credenciales de administrador principal.4. Compruebe la conectividad con la instancia de base de datos de Aurora MySQL. Para ello, ejecute un

comando SQL de ejemplo, como SHOW DATABASES;.

Paso 5: Utilizar AWS Schema Conversion Tool (AWSSCT) para convertir los esquemas de Oracle a AuroraMySQLAntes de migrar datos a Aurora MySQL, convierta el esquema de Oracle a un esquema de Aurora MySQL,tal como se describe a continuación.

Para convertir un esquema de Oracle a un esquema de Aurora MySQL mediante AWS SchemaConversion Tool (AWS SCT)

1. Inicie AWS Schema Conversion Tool (AWS SCT). En AWS SCT seleccione File y, a continuación, elijaNew Project. Cree un nuevo proyecto llamado DMSDemoProject. Indique la siguiente información enla ventana New Project y, a continuación, seleccione OK.

Para este parámetro Haga lo siguiente

Project Name Indique DMSDemoProject.

Ubicación Utilice la carpeta Projects predeterminada y la opciónTransactional Database (OLTP) predeterminada.

Source Database Engine Seleccione Oracle.

Target Database Engine Seleccione Amazon Aurora (MySQL Compatible).

Version 1/1/201644

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a Aurora MySQL

2. Elija Connect to Oracle. En el cuadro de diálogo Connect to Oracle escriba la información siguiente y,a continuación, elija Test Connection.

Para este parámetro Haga lo siguiente

Type Elija SID.

Server name Utilice el valor OracleJDBCConnectionString queusó para conectarse a la instancia de base dedatos de Oracle, pero elimine la información delprefijo JDBC. Un ejemplo de cadena de conexiónque se utilice con SQL Workbench/J puede ser"jdbc:oracle:thin:@do1xa4grferti8y.cqiw4tcs0mg7.us-west-2.rds.amazonaws.com:1521:ORCL". Parael Server name de AWS SCT, debe eliminar"jdbc:oracle:thin:@" y utilizar solo el nombre deservidor: "do1xa4grferti8y.cqiw4tcs0mg7.us-west-2.rds.amazonaws.com".

Server port Escriba 1521.

Oracle SID Escriba ORCL.

Nombre de usuario Escriba oraadmin.

Contraseña Proporcione la contraseña para el usuario administradorque ha asignado al crear la instancia de base de datos deOracle con la plantilla de AWS CloudFormation.

Version 1/1/201645

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a Aurora MySQL

3. Seleccione OK para cerrar la alerta y, a continuación, seleccione OK para cerrar el cuadro de diálogoy comenzar la conexión a la instancia de base de datos de Oracle. A continuación se muestra laestructura de base de datos en la instancia de base de datos de Oracle. Seleccione solo el esquemade HR.

Version 1/1/201646

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a Aurora MySQL

4. Elija Connect to Amazon Aurora. En el cuadro de diálogo Connect to Amazon Aurora escriba lainformación siguiente y, a continuación, elija Test Connection.

Para este parámetro Haga lo siguiente

Type Elija SID.

Server name Utilice el valor AuroraJDBCConnectionString que habíautilizado para conectarse a la instancia de base de datosAurora MySQL, pero quite la información del prefijo deJDBC y el sufijo del puerto. Un ejemplo de cadena deconexión que se utilice con SQL Workbench/J puede ser"jdbc:mysql://dmsdemo-auroracluster-1u1ogdfg35v.cluster-cqiw4tcs0mg7.us-west-2.rds.amazonaws.com:3306". Enel Server name de AWS SCT, elimine "jdbc:oracle:thin:@"y ":3306" y utilice únicamente el nombre de servidor:"dmsdemo-auroracluster-1u1ogdfg35v.cluster-cqiw4tcs0mg7.us-west-2.rds.amazonaws.com".

Version 1/1/201647

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a Aurora MySQL

Para este parámetro Haga lo siguiente

Server port Escriba 3306.

Nombre de usuario Indique auradmin.

Contraseña Proporcione la contraseña para el usuario administradorque ha asignado al crear la instancia de base de datos deOracle con la plantilla de AWS CloudFormation.

AWS SCT analiza el esquema de HR y crea un informe de evaluación de migración de base de datospara la conversión a Amazon Aurora MySQL.

5. Seleccione OK para cerrar la alerta y, a continuación, seleccione OK para cerrar el cuadro de diálogo ycomenzar la conexión a la instancia de base de datos de Amazon Aurora MySQL.

6. Haga clic con el botón derecho en el esquema de HR y seleccione Create Report.

Version 1/1/201648

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a Aurora MySQL

7. Compruebe el informe y los elementos de acción que sugiere. El informe describe el tipo de objetosque se pueden convertir mediante AWS SCT, junto con los posibles problemas de migración y lasmedidas para resolver estos problemas. Para esta guía, debería aparecer algo similar a lo siguiente.

Version 1/1/201649

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a Aurora MySQL

8. Guarde el informe en formato .pdf o .csv para realizar un análisis detallado y, a continuación,seleccione la pestaña Action Items. En los elementos de acción, verá dos cuestiones: 1. MySQL no escompatible con las restricciones de comprobación y 2. MySQL no admite secuencias.

En cuanto al elemento de acción número 1, SCT aprovisiona automáticamente disparadorespara simular restricciones de comprobación en la base de datos de Aurora MySQL (disparadoresemuladores). Por ejemplo, una limitación de comprobación para SAL > 0 en la tabla EMPLOYEES(en Oracle) se aplica con la ayuda de instrucciones disparadoras tipo "before" y "update" en AuroraMySQL. Si desea que esta lógica se gestione en la capa de la aplicación, podrá rechazar o actualizarlos disparadores cuando sea necesario.

En cuanto al elemento de acción número 2, existen tres objetos de secuencia en la base de datos deorigen que se utilizan para generar claves primarias para las tablas EMPLOYEES (EMPLOYEE_ID),DEPARTMENTS (DEPARTMENT_ID) y LOCATIONS (LOCATION_ID). Tal como se ha descritoanteriormente en esta guía, una alternativa al uso de secuencias para claves sustitutas en AuroraMySQL es usar la característica auto_increment. Para activar la característica auto_increment, debecambiar la configuración de SCT. Para no extendernos demasiado, los siguientes subpasos muestrancómo activar auto_increment únicamente para la columna EMPLOYEE_ID en la tabla EMPLOYEES.El mismo procedimiento se puede repetir para el resto de objetos de secuencia.

Antes de empezar, tenga en cuenta que activar la opción auto_increment requiere algunos pasosadicionales a través de SCT por los siguientes motivos:

• De forma predeterminada, SCT convierte todos los tipos de datos NUMBER (Oracle) a DECIMAL enAurora MySQL (http://docs.aws.amazon.com/dms/latest/userguide/ SchemaConversionTool/latest/userguide/CHAP_SchemaConversionTool.Reference.ConversionSupport.Oracle.html#d0e50104).

• Aurora MySQL no admite auto_increment para el tipo de datos DECIMAL. Por lo tanto, el tipo dedatos de la columna de la clave principal y de las columnas de clave externa correspondientesdeben cambiarse por uno de los tipos de datos INTEGER como INT, SMALLINT, MEDIUMINT oBIGINT como parte del esquema de conversión.

La buena noticia es que la última versión de SCT proporciona una característica Mapping Rules quese puede utilizar para lograr la transformación citada si se llevan a cabo los siguientes pasos:

1. Para la tabla EMPLOYEES, debe identificar la clave principal y las relaciones de claves externasal ejecutar la siguiente consulta en la base de datos de origen de Oracle. Tenga en cuenta que lascolumnas deben especificarse en las reglas de mapeo de SCT.

SELECT * FROM(SELECT PK.TABLE_NAME, C.COLUMN_NAME, PK.CONSTRAINT_TYPE FROM DBA_CONSTRAINTS PK, DBA_CONS_COLUMNS C WHERE PK.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND PK.OWNER = 'HR' AND PK.TABLE_NAME = 'EMPLOYEES' AND PK.CONSTRAINT_TYPE = 'P'UNION SELECT FK.TABLE_NAME, COL.COLUMN_NAME, FK.CONSTRAINT_TYPE FROM DBA_CONSTRAINTS PK, DBA_CONSTRAINTS FK, DBA_CONS_COLUMNS COL WHERE PK.CONSTRAINT_NAME = FK.R_CONSTRAINT_NAME AND FK.CONSTRAINT_TYPE = 'R' AND FK.CONSTRAINT_NAME = COL.CONSTRAINT_NAME

Version 1/1/201650

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a Aurora MySQL

AND PK.OWNER = 'HR' AND PK.TABLE_NAME = 'EMPLOYEES' AND PK.CONSTRAINT_TYPE = 'P' ) ORDER BY 3 ASC;

Los resultados de la consulta deben ser similares a los siguientes:

TABLE_NAME COLUMN_NAME CONSTRAINT_TYPEEMPLOYEES EMPLOYEE_ID PJOB_HISTORY EMPLOYEE_ID REMPLOYEES MANAGER_ID RDEPARTMENTS MANAGER_ID R

2. Seleccione Settings y después Mapping Rules.3. Especifique la regla de mapeo para las conversiones de tipos de datos para la lista de columnas

identificadas en el Paso 1. Tendrá que especificar 4 reglas, una para cada columna, tal y como sedescribe a continuación.

Para este parámetro Regla 1 Regla 2 Regla 3 Regla 4

Nombre EMP_SEQ1 EMP_SEQ2 JOB_SEQ1 DEPT_SEQ1

En SeleccioneColumn

SeleccioneColumn

SeleccioneColumn

SeleccioneColumn

Donde

(nombre de esquema) y(nombre de tabla) y (nombrede columna)

HR

EMPLOYEES

EMPLOYEE_ID

HR

EMPLOYEES

MANAGER_ID

HR

JOB_HISTORY

EMPLOYEE_ID

HR

DEPARTMENTS

MANAGER_ID

Actions SeleccioneChange datatype

SeleccioneChange datatype

SeleccioneChange datatype

SeleccioneChange datatype

Para SMALLINT SMALLINT SMALLINT SMALLINT

Tenga en cuenta que en una situación real elegiría el tipo de datos en función de sus requisitos.

Version 1/1/201651

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a Aurora MySQL

4. Elija Yes para responder a “Would you like to save Mapping Rule settings?”9. Haga clic con el botón derecho en el esquema de HR y, a continuación, seleccione Convert schema.

Version 1/1/201652

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a Aurora MySQL

10. Seleccione Yes para el mensaje de confirmación. AWS SCT convierte el esquema al formato de labase de datos de destino.

11. Elija el esquema de HR y, a continuación, seleccione Apply to database para aplicar los scripts deesquema a la instancia Aurora MySQL de destino, tal como se muestra a continuación.

Version 1/1/201653

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a Aurora MySQL

12. Elija el esquema de HR y, a continuación, seleccione Refresh from Database para actualizar desde labase de datos de destino, tal y como se muestra a continuación.

Version 1/1/201654

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Validar la conversión de esquemas

El esquema de base de datos ya se ha convertido e importado desde el origen al destino.

Paso 6: Validar la conversión de esquemasPara validar la conversión de esquemas, compare los objetos que se encuentran en las bases de datos deOracle y Aurora MySQL mediante SQL Workbench/J.

Para validar la conversión de esquemas con SQL Workbench/J

1. En SQL Workbench/J seleccione File y después Connect window. Seleccione laRDSAuroraConnection que creó en el paso anterior. Haga clic en Aceptar.

2. Ejecute el siguiente script para verificar el número de tipos de objeto y añadir al recuento el esquemade HR en la base de datos de destino de Aurora MySQL. Estos valores deben coincidir con el númerode objetos en la base de datos de origen de Oracle:

SELECT a.OBJECT_TYPE, COUNT(*)FROM(SELECT OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAMEFROM (SELECT 'TABLE' AS OBJECT_TYPE,TABLE_NAME AS OBJECT_NAME

Version 1/1/201655

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Validar la conversión de esquemas

,TABLE_SCHEMA AS OBJECT_SCHEMAFROM information_schema.TABLESwhere TABLE_TYPE='BASE TABLE'UNIONSELECT 'VIEW' AS OBJECT_TYPE,TABLE_NAME AS OBJECT_NAME,TABLE_SCHEMA AS OBJECT_SCHEMAFROM information_schema.VIEWSUNION

SELECT 'INDEX' AS OBJECT_TYPE,CONCAT (CONSTRAINT_TYPE,' : ',CONSTRAINT_NAME,' : ',TABLE_NAME) AS OBJECT_NAME,TABLE_SCHEMA AS OBJECT_SCHEMAFROM information_schema.TABLE_CONSTRAINTSwhere constraint_type='PRIMARY KEY'UNIONSELECT ROUTINE_TYPE AS OBJECT_TYPE,ROUTINE_NAME AS OBJECT_NAME,ROUTINE_SCHEMA AS OBJECT_SCHEMAFROM information_schema.ROUTINESUNIONSELECT 'TRIGGER' AS OBJECT_TYPE,CONCAT (TRIGGER_NAME,' : ',EVENT_OBJECT_SCHEMA,' : ',EVENT_OBJECT_TABLE) AS OBJECT_NAME,TRIGGER_SCHEMA AS OBJECT_SCHEMAFROM information_schema.triggers) RWHERE R.OBJECT_SCHEMA ='HR'order by 1) a GROUP BY a.OBJECT_TYPE;

El resultado de esta consulta debe ser similar al siguiente:

OBJECT_TYPE COUNT(*) INDEX 7 PROCEDURE 2 TABLE 7 TRIGGER 4 VIEW 1

A continuación, ejecute la siguiente consulta para obtener información sobre las restricciones detablas:

SELECT CONSTRAINT_TYPE,COUNT(*) FROM information_schema.TABLE_CONSTRAINTS where constraint_schema='HR' GROUP BY CONSTRAINT_TYPE;

Version 1/1/201656

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Validar la conversión de esquemas

El resultado de esta consulta debe ser similar al siguiente:

CONSTRAINT_TYPE COUNT(*) FOREIGN KEY 10 PRIMARY KEY 7

3. Realice los siguientes pasos para activar la opción auto_increment en la tabla EMPLOYEES paraemular la funcionalidad de la secuencia de la base de datos de origen de Oracle.

1. Compruebe que la reglas de mapeo para la conversión de tipo de datos se ejecutaroncorrectamente para EMPLOYEES y para las tablas dependientes mediante la ejecución de lasiguiente consulta en la base de datos de destino de Aurora MySQL.

SELECT kcu.constraint_name,kcu.column_name,col.data_type,kcu.table_schema,kcu.table_name,kcu.referenced_column_nameFROM information_schema.key_column_usage kcu,information_schema.table_constraints tc,information_schema.columns colWHERE kcu.referenced_table_schema = 'HR'AND kcu.referenced_table_name = 'EMPLOYEES'AND kcu.referenced_table_name=tc.table_nameAND kcu.referenced_table_schema=tc.table_schemaAND tc.constraint_type='PRIMARY KEY'AND col.column_name=kcu.column_nameand col.table_name=kcu.table_nameORDER BY kcu.table_name,kcu.column_name;

Los resultados de la consulta debe ser similares a los siguientes:

constraint_name column_name data_type table_schema table_name referenced_column_nameDEPT_MGR_FK MANAGER_ID Smallint HR DEPARTMENTS EMPLOYEE_IDEMP_MANAGER_FK MANAGER_ID Smallint HR EMPLOYEES EMPLOYEE_IDJHIST_EMP_FK EMPLOYEE_ID Smallint HR JOB_HISTORY EMPLOYEE_ID

2. Desactive las comprobaciones de claves externas para la tabla EMPLOYEES mediante laejecución del siguiente comando. Este paso es necesario para poder modificar la columna declave principal. Puede ignorar los mensajes de advertencia.

SET FOREIGN_KEY_CHECKS=0;

3. Modifique la columna de clave principal para activar la opción auto_increment mediante laejecución del siguiente comando:

Alter table HR.EMPLOYEES modify column employee_id smallint auto_increment;

4. Compruebe la información detallada de la columna mediante la ejecución de la siguiente consulta:

SELECT column_name, column_type,column_key,extra from information_schema.columns

Version 1/1/201657

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 7: Crear una instancia de replicación de AWS DMS

where table_name = 'EMPLOYEES' AND COLUMN_NAME='EMPLOYEE_ID';

Los resultados de la consulta debe ser similares a los siguientes:

column_name column_type column_key extraemployee_id smallint(6) PRI auto_increment

4. La siguiente tabla muestra el número de objetos esperado y si las migró AWS SCT.

Parámetro Número enOracle

Número enAmazonAuroraMySQL

Migrado porAWS SCT

Recomendación SCT

INDEX 7 7 Sí  

PROCEDURE 2 2 Sí  

SEQUENCE 3 3 Sí,mediantelas reglasde mapeo

La funcionalidad de lasecuencia se implementamediante la característicaauto_increment de AuroraMySQL.

TABLE 7 7 Sí  

VIEW 1 1 Sí  

Clave principal 10 10 Sí  

Clave externa 7 7 Sí  

Restricciones decomprobación

2 4(disparadores)

Conversiónde códigos

Aurora no admite lasrestricciones de AuroraMySQL. AWS SCT creadisparadores antes delas instrucciones inserto update para imitarlas restricciones decomprobación en lastablas que tenían dichasrestricciones.

5. Valide los resultados mencionados en la hoja de cálculo que proporciona AWS en este sitio o eldocumento de texto que proporciona AWS en este sitio.

Paso 7: Crear una instancia de replicación de AWSDMSDespués de validar la estructura de los esquemas entre las bases de datos de origen y de destino, talcomo se ha descrito antes, puede pasar a la parte fundamental de esta guía, que es la migración de datos.La siguiente ilustración muestra una vista detallada del proceso de migración.

Version 1/1/201658

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 8: Crear los puntos de enlacede origen y destino de AWS DMS

Las instancias de replicación de DMS realizan la migración de datos real entre el origen y el destino. Lainstancia de replicación también almacena en caché los registros de transacción durante la migración. Lacapacidad de la CPU y de la memoria de una instancia de replicación influirá en el tiempo necesario parallevar a cabo la migración.

Para crear una instancia de replicación de AWS DMS

1. Inicie sesión en la consola de administración de AWS, seleccione AWS DMS en https://console.aws.amazon.com/ dms/ y elija Create Migration Si se ha registrado como usuario de AWSIdentity and Access Management (IAM), debe disponer de los permisos adecuados para acceder aAWS DMS. Para obtener más información sobre los permisos necesarios, consulte la sección sobrepermisos de IAM necesarios para utilizar AWS DMS.

2. Seleccione Next para comenzar la migración de una base de datos desde la página de bienvenida dela consola.

3. En la página Create replication instance especifique la información de la instancia de replicación, tal ycomo se muestra a continuación.

Para este parámetro Haga lo siguiente

Nombre Escriba DMSdemo-repserver.

Descripción Incluya una descripción breve, como Servidor dereplicación para demostraciones de DMS.

Instance class Seleccione dms.t2.medium. Esta clase de instancia eslo suficientemente grande como para migrar un conjuntopequeño de tablas.

VPC Seleccione DMSDemoVPC, que es la VPC que creó la pilade CloudFormation.

Varias AZ Haga clic en No.

Publicly accessible Deje este elemento seleccionado.

4. En la sección Advanced, no toque los valores predeterminados y seleccione Next.

Paso 8: Crear los puntos de enlace de origen y destinode AWS DMSMientras se está creando la instancia de replicación, puede especificar los puntos de enlace de la basede datos de origen y destino con la consola de administración de AWS. Sin embargo, solo podrá probar laconectividad después de que se haya creado la instancia de replicación, porque esta instancia se utiliza enla conexión.

Version 1/1/201659

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 8: Crear los puntos de enlacede origen y destino de AWS DMS

Para especificar los puntos de enlace de la base de datos de origen o de destino a con la consolade AWS

1. Especifique la información de conexión de la base de datos de origen de Oracle y la base de datosAmazon Aurora MySQL de destino. La siguiente tabla describe la configuración del origen.

Para este parámetro Haga lo siguiente

Endpoint Identifier Escriba Orasource (el punto de enlace de Amazon RDSpara Oracle).

Source Engine Seleccione oracle.

Server name Facilite el nombre de instancia de la base de datosde Oracle. Este es el Server name que utilizó paraAWS SCT, como "do1xa4grferti8y.cqiw4tcs0mg7.us-west-2.rds.amazonaws.com".

Port (Puerto) Escriba 1521.

SSL mode Elija None.

Nombre de usuario Escriba oraadmin.

Contraseña Proporcione la contraseña para la instancia de base dedatos de Oracle.

SID Proporcione el nombre de la base de datos de Oracle.

La tabla siguiente describe la configuración del destino.

Para este parámetro Haga lo siguiente

Endpoint Identifier Escriba Aurtarget (el punto de enlace de AmazonAurora MySQL).

Target Engine Elija aurora.

Servername Facilite el nombre de instancia de la base dedatos Aurora MySQL. Este es el Server nameque utilizó para AWS SCT, como "dmsdemo-auroracluster-1u1oyqny35jwv.cluster-cqiw4tcs0mg7.us-west-2.rds.amazonaws.com".

Port (Puerto) Escriba 3306.

SSL mode Elija None.

Nombre de usuario Escriba auraadmin.

Contraseña Proporcione la contraseña para la instancia de base dedatos Aurora MySQL.

La página completada debe ser similar a la siguiente:

Version 1/1/201660

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 8: Crear los puntos de enlacede origen y destino de AWS DMS

2. Para desactivar las comprobaciones de claves externas durante la carga inicial de datos, debeagregar los siguientes comandos en la instancia de base de datos de destino Aurora MySQL. Enla sección Advanced que se muestra a continuación escriba los siguientes comandos para Extraconnection attributes: initstmt=SET FOREIGN_KEY_CHECKS=0, autocommit=1

El primer comando desactiva las comprobaciones de claves externas durante una carga y el segundocomando confirma las transacciones que ejecuta DMS.

Version 1/1/201661

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 9: Crear y ejecutar la tarea de migración de AWS DMS

3. Seleccione Siguiente.

Paso 9: Crear y ejecutar la tarea de migración de AWSDMSCon una tarea de AWS DMS, puede especificar qué esquema se va a migrar y el tipo de migración. Puedemigrar los datos existentes, migrar los datos existentes y replicar los cambios en curso o bien solo replicarlos cambios. En esta guía solo se migran los datos existentes.

Para crear una tarea de migración

1. En la página Create Task especifique las opciones de la tarea. La tabla siguiente describe laconfiguración.

Para este parámetro Haga lo siguiente

Task name Escriba migratehrschema.

Task description Escriba una descripción para la tarea.

Punto de enlace de origen Muestra orasource (el punto de enlace de Amazon RDSOracle).

Version 1/1/201662

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 9: Crear y ejecutar la tarea de migración de AWS DMS

Para este parámetro Haga lo siguiente

Punto de enlace de destino Muestra aurtarget (el punto de enlace de AmazonAurora MySQL).

Instancia de replicación Muestra DMSdemo-repserver (la instancia de replicaciónde AWS DMS que se creó en uno de los pasos anteriores).

Migration type Seleccione la opción Migrate existing data.

Start task on create Seleccione esta opción.

La página debe ser similar a la siguiente:

2. En Task Settings elija Do nothing para Target table preparation mode, porque ya ha creado las tablascon la herramienta de migración de esquemas. Dado que esta migración no contiene ningún LOB,puede dejar la configuración predeterminada de los LOB.

De forma opcional, puede seleccionar Enable logging. Si activa el registro, se le cobrarán cargosadicionales de Amazon CloudWatch por la creación de los registros de CloudWatch. En esta guía, losregistros no son necesarios.

Version 1/1/201663

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 9: Crear y ejecutar la tarea de migración de AWS DMS

3. No cambie los valores predeterminados de la configuración avanzada.4. Elija Table mappings, seleccione Default para Mapping method y, por último, elija HR para Schema to

migrate.

La sección completa debe ser similar a la siguiente:

5. Seleccione Create task. La tarea comenzará inmediatamente.

Version 1/1/201664

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 10: Comprobar que la migraciónde datos se realizó correctamente

La sección Tasks le muestra el estado de la tarea de migración.

Puede monitorear su tarea si eligió Enable logging al configurar la tarea. A continuación, puede ver lasmétricas de CloudWatch haciendo lo siguiente:

Para supervisar una tarea de migración de datos en curso

1. En el panel de navegación elija Tasks.2. Seleccione la tarea de migración (migratehrschema).3. Seleccione la pestaña Task monitoring y monitoree la tarea en curso en la pestaña.

Paso 10: Comprobar que la migración de datos serealizó correctamenteCuando la migración se complete, puede comparar los resultados de la tarea con los resultadosesperados.

Para comparar los resultados de la tarea de migración con los resultados esperados

1. En el panel de navegación elija Tasks.2. Seleccione la tarea de migración (migratehrschema).3. Seleccione la pestaña Table statistics que se muestra a continuación.

Version 1/1/201665

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 10: Comprobar que la migraciónde datos se realizó correctamente

4. Conéctese a la instancia de Amazon Aurora MySQL mediante SQL Workbench/J y, a continuación,compruebe si las tablas de la base de datos se han migrado correctamente desde Oracle a AuroraMySQL al ejecutar el script SQL que se muestra a continuación.

Show databases; Use HR;SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'HR' and TABLE_TYPE='BASE TABLE' order by 1;

Version 1/1/201666

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 11: Eliminar los recursos de la guía

5. Para verificar si el resultado de las tablas y el número de filas de la consulta anterior coincide con loque se espera de RDS Oracle, compare sus resultados con los de la hoja de cálculo proporcionadapor AWS en este sitio.

6. Ejecute la siguiente consulta para comprobar la relación en las tablas; esta consulta comprueba losdepartamentos con empleados con un valor superior a 10.

SELECT B.DEPARTMENT_NAME,COUNT(*) FROM HR.EMPLOYEES A,HR.DEPARTMENTS B WHERE A.DEPARTMENT_ID=B.DEPARTMENT_ID GROUP BY B.DEPARTMENT_NAME HAVING COUNT(*) > 10 ORDER BY 1;

El resultado de esta consulta debe ser similar al siguiente.

department_name count(*)Sales 34Shipping 45

Ahora ha completado correctamente una migración de base de datos desde una instancia de base dedatos de Amazon RDS Oracle a Amazon Aurora MySQL.

Paso 11: Eliminar los recursos de la guíaUna vez que haya completado esta guía, lleve a cabo los pasos siguientes para evitar que se le apliquenotros cargos por los recursos de AWS que utilice en la guía. Es necesario realizar los pasos por orden,porque algunos recursos no se pueden eliminar si dependen de otros recursos.

Para eliminar los recursos de AWS DMS

1. En el panel de navegación haga clic en Tasks, seleccione la tarea de migración (migratehrschema)y, a continuación, seleccione Delete.

Version 1/1/201667

AWS Database Migration ServiceGuía de la migración paso a paso

Pasos siguientes

2. En el panel de navegación seleccione Endpoints, seleccione el punto de enlace de Oracle(orasource) y, a continuación, elija Delete.

3. Elija el punto de enlace de destino de Amazon Aurora MySQL (aurtarget) y, a continuación, elijaDelete.

4. En el panel de navegación elija Replications instances, seleccione la instancia de replicación(DMSdemo-repserver) y, a continuación, elija Delete.

A continuación, es preciso que elimine la pila de AWS CloudFormation, DMSdemo.

Para eliminar la pila de AWS CloudFormation

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS CloudFormation enhttps://console.aws.amazon.com/cloudformation.

Tenga en cuenta que si está registrado como usuario de AWS Identity and Access Management (IAM),debe disponer de los permisos adecuados para acceder a AWS CloudFormation.

2. Elija su pila de CloudFormation, DMSdemo.3. En Actions seleccione Delete stack.

El estado de la pila cambia a DELETE_IN_PROGRESS mientras AWS CloudFormation limpia los recursosasociados a la pila de DMSdemo. Cuando AWS CloudFormation termina de limpiar recursos, quita la pila dela lista.

Pasos siguientesPuede explorar otras características de AWS DMS que no se incluyeron en esta guía, como, por ejemplo,las siguientes:

• La captura de datos de cambios (CDC) de AWS DMS, para la replicación de datos continuada.• Las acciones de transformación que le permiten especificar y aplicar transformaciones a la tabla o

esquema seleccionados como parte del proceso de migración.

Para obtener más información, consulte la documentación de AWS DMS.

Plantilla de AWS CloudFormation, scripts SQL yotros recursos

Puede encontrar la plantilla de AWS CloudFormation, los scripts SQL y los otros recursos que se utilizanen este guía en el sitio de AWS tal como se enumeran a continuación:

• Script SQL del esquema de Oracle• Plantilla de AWS CloudFormation• Script de validación SQL en formato de hoja de cálculo• Script de validación SQL en formato de texto• Diagrama de la arquitectura en formato .jpg o Diagrama de la arquitectura en formato .vsd• Controlador JDBC de MySQL en formato .jar• Controlador JDBC de la base de datos de Oracle 12.1.0.2 en formato de archivo .jar

Version 1/1/201668

AWS Database Migration ServiceGuía de la migración paso a paso

Referencias

ReferenciasLa documentación y esquemas de ejemplo siguientes son referencias útiles para esta guía:

• Documentación de AWS DMS• Documentación de AWS SCT• Esquemas de ejemplo de Oracle

Version 1/1/201669

AWS Database Migration ServiceGuía de la migración paso a paso

Requisitos previos

Migración de una base de datosde SQL Server a Amazon AuroraMySQL

Con este tutorial aprenderá a migrar una base de datos de Microsoft SQL Server a una base de datosCompatibilidad de Amazon Aurora con MySQL utilizando la Herramienta de conversión de esquemas deAWS (AWS SCT) y AWS Database Migration Service (AWS DMS). AWS DMS migra los datos de la basede datos de origen de SQL Server a la base de datos de destino de Aurora MySQL.

AWS DMS no migra los índices secundarios, secuencias, valores predeterminados, procedimientosalmacenados, disparadores, sinónimos, vistas y otros objetos de esquema que no están relacionadosespecíficamente con la migración de datos. Para migrar estos objetos a la base de datos Aurora MySQL dedestino, utilice AWS SCT.

Temas• Requisitos previos (p. 70)• Migración paso a paso (p. 71)• Solución de problemas (p. 92)

Requisitos previosLos siguientes requisitos previos son necesarios para completar esta guía:

• Entienda Amazon Relational Database Service (Amazon RDS), las tecnologías de base de datosaplicables y SQL.

• Cree una cuenta de AWS con las credenciales de AWS Identity and Access Management (IAM) que lepermita lanzar instancias de Amazon RDS y AWS Database Migration Service (AWS DMS) en su regiónde AWS. Para obtener información sobre las credenciales de IAM, consulte Creación de un usuario deIAM.

• Comprenda el servicio Amazon Virtual Private Cloud (Amazon VPC) y los grupos de seguridad. Paraobtener información sobre cómo utilizar Amazon VPC con Amazon RDS, consulte Amazon VirtualPrivate Cloud (VPC) y Amazon RDS. Para obtener información sobre los grupos de seguridad deAmazon RDS, consulte Grupos de seguridad de Amazon RDS.

• Comprender las características y las limitaciones compatibles de AWS DMS. Para obtener informaciónsobre AWS DMS, consulte ¿Qué es AWS Database Migration Service?

• Entienda cómo trabajar con Microsoft SQL Server como origen y Amazon Aurora MySQL como destino.Para obtener información sobre cómo trabajar con SQL Server como origen, consulte Utilizar una basede datos de Microsoft SQL Server como origen para AWS Database Migration Service. Aurora MySQLes una base de datos compatible con MySQL. Para obtener información sobre cómo trabajar con AuroraMySQL como destino, consulte Uso de una base de datos compatible con MySQL como destino paraAWS Database Migration Service.

• Comprenda las opciones de conversión de tipo de datos admitidos para SQL Server y Aurora MySQL.Para obtener información sobre los tipos de datos para SQL Server como origen, consulte Tipos dedatos de origen para Microsoft SQL Server. Para obtener información sobre los tipos de datos paraAurora MySQL; como destino, consulte Tipos de datos de destino para MySQL.

• Ajuste el host de la base de datos Aurora MySQL de destino. Las DBA deben tener constancia delperfil de carga del host de la base de datos de SQL Server de origen actual. Tenga en cuenta la CPU,

Version 1/1/201670

AWS Database Migration ServiceGuía de la migración paso a paso

Migración paso a paso

la memoria e IOPS. Con Amazon RDS puede aumentar el tamaño del host de la base de datos dedestino o reducirlo después de la migración. Si es la primera vez que va a realizar migraciones a AuroraMySQL, le recomendamos que disponga de capacidad adicional para tener en cuenta los problemas dedesempeño y las oportunidades de ajuste.

• Audite la base de datos de SQL Server de origen. Por cada esquema y todos los objetos de cadaesquema, determine si alguno de los objetos ya no se utiliza. Descarte esos objetos en la base de datosde SQL Server de origen, ya que no es necesario migrarlos si no los utiliza.

• Decida entre estas opciones de migración, migrar solo los datos existentes o migrar los datos existentesy replicar los cambios en curso.• Si solo migra datos existentes, la migración es una transferencia de datos puntual desde una base de

datos de origen de SQL Server a la base de datos de destino de Aurora MySQL. Si la base de datosde origen permanece abierta a cambios durante la migración, estos cambios deben aplicarse a la basede datos de destino una vez completada la migración.

Note

Si la base de datos de SQL Server es una base de datos Amazon RDS, la replicación no seadmite y debe utilizar la opción para migrar solo datos existentes.

• Si migra datos existentes y replica los cambios constantes, una opción es replicar los cambios de labase de datos de origen. La replicación mantiene las bases de datos de origen y destino sincronizadasentre sí durante el proceso de migración y puede reducir el tiempo de inactividad de la base de datos.Con esta opción, completa la operación de sincronización inicial y, a continuación, configura MS-REPLICATION. Esta opción requiere las ediciones Standard, Enterprise o Developer de SQL Server.Habilita MS-REPLICATION para cada instancia de SQL Server que desea utilizar como origen debase de datos.

• Si desea migrar datos existentes y replicar cambios continuos, otra opción es la captura de datosde cambio (CDC) en lugar de la replicación. Esta opción permite a AWS DMS realizar la migracióncontinua de datos. En el caso de CDC, AWS DMS utiliza tablas de CDC para permitir la migración debase de datos continua. Esta opción requiere las ediciones Enterprise o Developer de SQL Server.

Para obtener más información sobre AWS DMS, consulte la Guía del usuario de AWS DMS.

Migración paso a pasoEn los pasos siguientes se proporcionan instrucciones para migrar una base de datos de Microsoft SQLServer a una base de datos Amazon Aurora MySQL. En ellos se presupone que ya ha preparado la basede datos de origen tal y como se describe en Requisitos previos (p. 70).

Temas• Paso 1: Instalar los controladores de SQL y AWS Schema Conversion Tool en su equipo

local (p. 72)• Paso 2: Configurar la base de datos de origen de Microsoft SQL Server (p. 73)• Paso 3: Configurar la base de datos de destino de Aurora MySQL (p. 74)• Paso 4: Utilizar AWS SCT para convertir el esquema de SQL Server a Aurora MySQL (p. 75)• Paso 5: Crear una instancia de replicación de AWS DMS (p. 82)• Paso 6: Crear los puntos de enlace de origen y destino de AWS DMS (p. 84)• Paso 7: Crear y ejecutar la tarea de migración de AWS DMS (p. 88)• Paso 8: Migración total a Aurora MySQL (p. 91)

Version 1/1/201671

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Instalar los controladores de SQL y AWSSchema Conversion Tool en su equipo local

Paso 1: Instalar los controladores de SQL y AWSSchema Conversion Tool en su equipo localEn primer lugar, instale los controladores de SQL y Herramienta de conversión de esquemas de AWS(AWS SCT) en su equipo local.

Para instalar el software de cliente SQL

1. Descargue el controlador JDBC para Microsoft SQL Server.2. Descargue el controlador JDBC para Aurora MySQL. Amazon Aurora MySQL utiliza el controlador de

MySQL.3. Instale AWS SCT y los controladores JDBC necesarios.

a. Consulte Instalación y actualización de AWS Schema Conversion Tool en la Guía del usuario deAWS Schema Conversion Tool y elija el enlace correspondiente para descargar la AWS SCT.

b. Inicie AWS SCT y elija Settings, Global Settings.c. En Global Settings elija Drivers y, a continuación, elija Browse para Microsoft Sql Server Driver

Path. Localice el controlador JDBC para SQL Server y elija OK.d. Elija Browse para MySql Driver Path. Localice el controlador JDBC que ha descargado para

Aurora MySQL y elija OK.

e. Seleccione OK para cerrar el cuadro de diálogo Global Settings.

Version 1/1/201672

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 2: Configurar la base de datosde origen de Microsoft SQL Server

Paso 2: Configurar la base de datos de origen deMicrosoft SQL ServerDespués de instalar los controladores de SQL y Herramienta de conversión de esquemas de AWS, puedeconfigurar la base de datos de origen de Microsoft SQL Server con una de varias opciones, en función decómo tiene previsto migrar sus datos.

Para configurar la base de datos de origen de SQL Server

• Al configurar la base de datos de origen, puede optar por solo migrar datos existentes, migrar datosexistentes y replicar los cambios en curso o migrar datos existentes y utilizar la captura de datosde cambio (CDC) para replicar cambios continuos. Para obtener más información acerca de estasopciones, consulte Prerequisites.

• Migrar solo datos existentes

No hay pasos de configuración necesarios para la base de datos de SQL Server. Puede pasar aPaso 3: Configurar la base de datos de destino de Aurora MySQL (p. 74).

Note

Si la base de datos de SQL Server es una base de datos Amazon RDS, la replicación no seadmite y debe utilizar la opción para migrar solo datos existentes.

• Migrar datos existentes y replicar cambios continuosNote

La replicación requiere una clave principal para todas las tablas que se replican. Si lastablas no tienen claves principales definidas, considere la posibilidad de utilizar CDC en sulugar.

Para configurar MS-REPLICATION, siga los pasos que se describen a continuación:

1. En Microsoft SQL Server Management Studio, abra el menú contextual (haga clic con el botónderecho) para la carpeta Replication y, después, elija Configure Distribution.

2. En el paso Distributor, elija db_name que actúa como su propio distribuidor. SQL Server creabases de datos de distribución y un registro.

Para obtener más información, consulte la documentación de Microsoft.

Cuando se haya completado la configuración, el servidor está habilitado para la replicación. Obien se ha implementado una base de datos de distribución o ha configurado su servidor parautilizar una base de datos de distribución remota.

• Migrar datos existentes y usar captura de datos de cambio (CDC) para replicar los cambioscontinuos

Para configurar MS-CDC, siga los pasos que se describen a continuación:

1. Conéctese a SQL Server con un inicio de sesión que tenga pertenencia al rol SYSADMIN.2. Para cada base de datos que contenga datos que se van a migrar, ejecute el siguiente

comando en el contexto de la base de datos:

use [DBname]EXEC sys.sp_cdc_enable_db

3. Para cada tabla que desea configurar para migración continua, ejecute el siguiente comando:

Version 1/1/201673

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Configurar la base dedatos de destino de Aurora MySQL

EXEC sys.sp_cdc_enable_table @source_schema = N'schema_name', @source_name = N'table_name', @role_name = NULL;

Para obtener más información, consulte la documentación de Microsoft.

Note

• Si está migrando bases de datos que participan en un grupo de disponibilidad AlwaysOn, serecomienda usar la replicación para la migración. Para utilizar esta opción, debe habilitarse lapublicación y debe configurarse una base de datos de distribución para cada nodo del grupode disponibilidad AlwaysOn. Asegúrese, además, de que utiliza el nombre del agente deescucha del grupo de disponibilidad para la base de datos en lugar del nombre del servidor queactualmente aloja la base de datos del grupo de disponibilidad para el nombre del servidor dedestino. Estos requisitos se aplican a cada instancia de SQL Server en el clúster y no se debenconfigurar mediante el agente de escucha del grupo de disponibilidad.

• Si la base de datos no es compatible con MS-REPLICATION o MS-CDC (por ejemplo, siejecuta la Workgroup Edition de SQL Server), sigue siendo posible capturar algunos cambios,como por ejemplo instrucciones INSERT y DELETE, pero otras instrucciones DML, como porejemplo UPDATE y TRUNCATE TABLE no se capturarán. Por lo tanto, no se recomienda paraesta configuración una migración con replicación de datos continua y deberá considerarse en sulugar una migración puntual estática (o migraciones completas individuales repetidas).

Para obtener más información acerca del uso de MS-REPLICATION y MS-CDC, consulte Utilizar una basede datos de Microsoft SQL Server como origen para AWS Database Migration Service.

Paso 3: Configurar la base de datos de destino deAurora MySQLAWS DMS migra los datos del origen de SQL Server a un destino de Amazon Aurora MySQL. En estepaso, configurar la base de datos de destino de Aurora MySQL.

1. Cree el usuario de AWS DMS para conectarse a la base de datos de destino y conceda privilegios desuperusuario o los privilegios individuales necesarios (o para Amazon RDS, use el nombre de usuariomaestro).

De forma alternativa, puede conceder los privilegios a un usuario existente.

CREATE USER 'aurora_dms_user' IDENTIFIED BY 'password';

GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON target_database.* TO 'aurora_dms_user';

2. AWS DMS utiliza tablas de control en la base de datos de destino awsdms_control. Utilice elsiguiente comando para garantizar que el usuario tenga el acceso necesario a la base de datosawsdms_control:

GRANT ALL PRIVILEGES ON awsdms_control.* TO 'aurora_dms_user';FLUSH PRIVILEGES;

Version 1/1/201674

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS SCT para convertir elesquema de SQL Server a Aurora MySQL

Paso 4: Utilizar AWS SCT para convertir el esquemade SQL Server a Aurora MySQLAntes de migrar datos a Amazon Aurora MySQL, convierta el esquema de Microsoft SQL Server a unesquema de Aurora MySQL utilizando la Herramienta de conversión de esquemas de AWS (AWS SCT).

Para convertir un esquema de SQL Server a un esquema de Aurora MySQL

1. En AWS SCT, elija File, New Project. Cree un proyecto nuevo denominado AWS SchemaConversion Tool SQL Server to Aurora MySQL.

2. En el cuadro de diálogo New Project, escriba la siguiente información y, a continuación, elija OK.

Parámetro Descripción

Project Name Escriba AWS Schema Conversion Tool SQL Serverto Aurora MySQL.

Ubicación Utilice la carpeta Projects predeterminada y la opciónTransactional Database (OLTP) predeterminada.

Source Database Engine Elija Microsoft SQL Server.

Target Database Engine Seleccione Amazon Aurora (MySQL compatible).

3. Elija Connect to Microsoft SQL Server. En el cuadro de diálogo Connect to Microsoft SQL Serverescriba la información siguiente y, a continuación, elija Test Connection.

Version 1/1/201675

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS SCT para convertir elesquema de SQL Server a Aurora MySQL

Parámetro Descripción

Server name Escriba el nombre del servidor.

Server port Escriba el número de puerto de SQL Server. El valorpredeterminado es 1433.

Instance name Escriba el nombre de la instancia de la base de datos deSQL Server.

Nombre de usuario Escriba el nombre de usuario administrador de SQLServer.

Contraseña Especifique la contraseña para el usuario administrador.

4. Elija OK para cerrar el cuadro de alerta. A continuación, elija OK para cerrar el cuadro de diálogo ycomenzar la conexión a la instancia de base de datos de SQL Server. Se muestra la estructura debase de datos en la instancia de base de datos de SQL Server.

5. Elija Connect to Amazon Aurora (MySQL compatible). En el cuadro de diálogo Connect to AmazonAurora (MySQL compatible) escriba la información siguiente y, a continuación, elija Test Connection.

Version 1/1/201676

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS SCT para convertir elesquema de SQL Server a Aurora MySQL

Parámetro Descripción

Server name Escriba el nombre del servidor.

Server port Escriba el número de puerto de SQL Server. El valorpredeterminado es 3306.

Nombre de usuario Escriba el nombre de usuario administrador de AuroraMySQL.

Contraseña Especifique la contraseña para el usuario administrador.

6. Elija OK para cerrar el cuadro de alerta. A continuación, elija OK para cerrar el cuadro de diálogo ycomenzar la conexión a la instancia de base de datos Aurora MySQL.

7. Abra el menú contextual (haga clic con el botón derecho) del esquema que va a migrar y seleccioneConvert schema.

Version 1/1/201677

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS SCT para convertir elesquema de SQL Server a Aurora MySQL

8. Seleccione Yes para el mensaje de confirmación. AWS SCT convierte los esquemas al formato de labase de datos de destino.

Version 1/1/201678

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS SCT para convertir elesquema de SQL Server a Aurora MySQL

AWS SCT analiza el esquema y crea un informe sobre la evaluación de la migración de la base dedatos para la conversión a Aurora MySQL.

9. Elija Assessment Report View en View para comprobar el informe.

El informe se desglosa por cada tipo de objeto y por la cantidad de cambios manuales que sonnecesarios para realizar la conversión correctamente.

Version 1/1/201679

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS SCT para convertir elesquema de SQL Server a Aurora MySQL

Por lo general, los paquetes, los procedimientos y las funciones son los elementos que tienen másprobabilidades de tener problemas que deben resolverse, ya que contienen la mayor parte del códigoPL/SQL personalizado. AWS SCT también ofrece consejos para solucionar los problemas de estosobjetos.

10. Haga clic en la pestaña Action Items.

La pestaña Action Items muestra cada uno de los problemas de cada objeto que precisan atención.

Por cada problema de conversión, puede realizar una de las siguientes acciones:• Modificar los objetos en la base de datos de SQL Server de origen para que AWS SCT pueda

convertir los objetos a la base de datos Aurora MySQL de destino.

1. Modificar los objetos en la base de datos de SQL Server de origen.2. Repita los pasos anteriores para convertir el esquema y comprobar el informe de evaluación.3. Si es necesario, repita este proceso hasta que no haya problemas de conversión.

Version 1/1/201680

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS SCT para convertir elesquema de SQL Server a Aurora MySQL

4. Elija Main View en View. Abra el menú contextual (haga clic con el botón derecho) para elesquema de Aurora MySQL de destino y elija Apply to database para aplicar cambios deesquema a la base de datos Aurora MySQL y confirmar que desea aplicar los cambios delesquema.

• En lugar de modificar el esquema de origen, modifique los scripts generados por AWS SCT antesde aplicar los scripts en la base de datos Aurora MySQL de destino.

1. Elija Main View en View. Abra el menú contextual (haga clic con el botón derecho) delnombre de esquema de Aurora MySQL de destino y elija Save as SQL. A continuación, elijaun nombre y un destino para el script.

2. En el script modifique los objetos para corregir los problemas de conversión.

También puede excluir limitaciones de clave externa, disparadores e índices secundariosdel script, ya que pueden provocar problemas durante la migración. Una vez completada lamigración, puede crear estos objetos en la base de datos Aurora MySQL.

3. Ejecute el script en la base de datos Aurora MySQL de destino.

Para obtener más información, consulte Conversión de esquemas de bases de datos a Amazon RDScon AWS Schema Conversion Tool en la Guía del usuario de AWS Schema Conversion Tool.

11. (Opcional) Utilice AWS SCT para crear reglas de mapeo.

Version 1/1/201681

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Crear una instancia de replicación de AWS DMS

a. En Settings seleccione Mapping Rules.b. Cree reglas de mapeo adicionales necesarias en función de los elementos de acción.c. Guarde las reglas de mapeo.d. Elija Export script for DMS para exportar un formato JSON de todas las transformaciones que la

tarea de AWS DMS utilizará. Seleccione Save.

Paso 5: Crear una instancia de replicación de AWSDMSDespués de validar la estructura de esquema entre las bases de datos de origen y de destino, pase a laparte fundamental de esta guía, que es la migración de datos. La siguiente ilustración muestra una vistadetallada del proceso de migración.

Una instancia de replicación de AWS DMS realiza la migración de datos real entre el origen y el destino.La instancia de replicación también almacena en caché los registros de transacción durante la migración.La cantidad de CPU y la capacidad de memoria de una instancia de replicación influyen en el tiemponecesario para llevar a cabo la migración.

Para obtener información sobre las prácticas recomendadas para el uso de AWS DMS, consulte AWSDatabase Migration Service Best Practices.

Para crear una instancia de replicación de AWS DMS

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS DMS en https://console.aws.amazon.com/dms/dominio.

2. En la consola, elija Create migration. Si inicia sesión como un usuario de AWS Identity and AccessManagement (IAM), deberá disponer de los permisos adecuados para acceder a AWS DMS. Paraobtener más información acerca de los permisos necesarios, consulte la sección Permisos de IAMnecesarios para utilizar AWS DMS.

3. En la página de bienvenida, elija Next para comenzar la migración de una base de datos.4. En la página Create replication instance especifique la información de la instancia de replicación.

Parámetro Descripción

Nombre Seleccione un nombre para la instancia de replicación.Si está utilizando varios servidores de replicación ocompartiendo una cuenta, elija un nombre que le ayude adiferenciar rápidamente entre los diferentes servidores.

Descripción Escriba una breve descripción.

Instance class Seleccione el tipo de servidor de replicación que va acrear. Cada clase de tamaño y tipo de instancia tiene

Version 1/1/201682

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Crear una instancia de replicación de AWS DMS

Parámetro Descripciónuna capacidad de CPU, memoria y E/S creciente. Porlo general, las instancias t2 son para tareas de cargainferiores y las instancias c4 son para tareas de cargasuperiores y otras tareas.

VPC Elija la nube virtual privada (VPC) en la que se lanzará suinstancia de replicación. Si es posible, seleccione la mismaVPC en la que reside su base de datos de origen o dedestino (o ambas).

Varias AZ Si elige Yes, AWS DMS crea un segundo servidor dereplicación en otra zona de disponibilidad para obtener unaconmutación por error si se produce un problema con elservidor de replicación principal.

Publicly accessible Si la base de datos de origen o la de destino se encuentrafuera de la VPC en la que reside el servidor de replicación,entonces debe hacer que la política del servidor dereplicación sea accesible públicamente.

5. En la sección Advanced especifique la información siguiente.

Parámetro Descripción

Allocated storage (GB) Cantidad de almacenamiento en el servidor de replicaciónpara los logs de tareas de AWS DMS incluidos loslogs de tareas históricas. AWS DMS también utilizaalmacenamiento en disco para almacenar en cachédeterminados datos mientras los replica de la base dedatos de origen a la de destino. Además, una mayorcantidad de almacenamiento, por lo general, permitemejores IOPS en el servidor.

Replication Subnet Group Si ejecuta la operación en una configuración Multi-AZ,necesitará al menos dos grupos de subredes.

Availability zone Por lo general, el desempeño mejora si ubica su servidorde replicación principal en la misma zona de disponibilidadque su base de datos de destino.

VPC Security Group(s) Los grupos de seguridad le permiten controlar las entradasy salidas de su VPC. AWS DMS le permite asociar uno ovarios grupos de seguridad a la VPC desde la que se lanzael servidor de replicación.

Clave maestra de KMS Con AWS DMS, todos los datos se cifran en reposomediante una clave de cifrado de KMS. De formapredeterminada, AWS DMS crea una nueva clave decifrado para su servidor de replicación. Sin embargo,podría optar por utilizar una clave ya existente.

Para obtener información acerca de la clave maestra de KMS, consulte Configuración de una clave decifrado y especificación de permisos KMS.

6. Haga clic en Siguiente.

Version 1/1/201683

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Crear los puntos de enlacede origen y destino de AWS DMS

Paso 6: Crear los puntos de enlace de origen y destinode AWS DMSMientras se está creando la instancia de replicación, puede especificar los puntos de enlace de la base dedatos de origen y destino con la Consola de administración de AWS. Sin embargo, solo podrá probar laconectividad después de que se haya creado la instancia de replicación, porque esta instancia se utiliza enla conexión.

Para especificar los puntos de enlace de la base de datos de origen o de destino a con la consola

1. En la consola de AWS DMS, especifique la información de conexión de la base de datos de SQLServer de origen y la base de datos Aurora MySQL de destino. La siguiente tabla describe laconfiguración del origen.

Parámetro Descripción

Endpoint Identifier Escriba un nombre como, por ejemplo,SQLServerSource.

Source Engine Elija sqlserver.

Server name Facilite el nombre de servidor de la instancia de base dedatos SQL Server.

Port (Puerto) Escriba el número de puerto de la base de datos. El valorpredeterminado de SQL Server es 1433.

SSL mode Elija un modo SSL si desea habilitar el cifrado para eltráfico de la conexión.

Nombre de usuario Escriba el nombre del usuario que desee utilizar paraconectarse a la base de datos de origen.

Contraseña Especifique la contraseña para el usuario.

Database name Proporcione el nombre de la base de datos de SQL Server.

En la tabla siguiente se describe la configuración de origen avanzada.

Parámetro Descripción

Extra connection attributes Parámetros adicionales que puede establecer en unpunto de enlace para añadir funcionalidades o cambiarel comportamiento de AWS DMS. A continuación seenumeran algunos de los atributos más relevantes. Utiliceun punto y coma (;) para separar varias entradas.

• safeguardpolicy: cambia el comportamiento deSQL Server abriendo transacciones para evitar queel registro de la transacción se trunque mientrasAWS DMS está leyendo el registro. Los valoresválidos son EXCLUSIVE_AUTOMATIC_TRUNCATIONo RELY_ON_SQL_SERVER_REPLICATION_AGENT(predeterminado).

Version 1/1/201684

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Crear los puntos de enlacede origen y destino de AWS DMS

Parámetro Descripción• useBCPFullLoad: dirige AWS DMS para utilizar BCP

(copia masiva) para la carga de datos. Los valoresválidos son Y o N. Cuando la tabla de destino contieneuna columna de identidad que no existe en la tabla deorigen, debe desactivar el uso de BCP para cargar latabla configurando el parámetro en N.

• BCPPacketSize: si la BCP está habilitada para cargasde datos, entonces escriba el tamaño máximo delpaquete utilizado por BCP. Los valores válidos son 1 a100000 (predeterminado 16384).

• controlTablesFileGroup: especifica el grupo dearchivos que se debe utilizar para las tablas de controlque el proceso AWS DMS crea en la base de datos.

Clave maestra de KMS Escriba la clave maestra de KMS si decide cifrar elalmacenamiento de su instancia de replicación.

La tabla siguiente describe la configuración del destino.

Parámetro Descripción

Endpoint Identifier Escriba un nombre como, por ejemplo, Auroratarget.

Target Engine Elija aurora.

Server name Proporcione el nombre de servidor de la base de datosAurora MySQL para la instancia principal.

Port (Puerto) Escriba el número de puerto de la base de datos. El valorpredeterminado de Aurora MySQL es 3306.

SSL mode Elija None.

Nombre de usuario Escriba el nombre del usuario que desee utilizar paraconectarse a la base de datos de destino.

Contraseña Especifique la contraseña para el usuario.

En la tabla siguiente se describe la configuración de destino avanzada.

Version 1/1/201685

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Crear los puntos de enlacede origen y destino de AWS DMS

Parámetro Descripción

Extra connection attributes Parámetros adicionales que puede establecer en unpunto de enlace para añadir funcionalidades o cambiarel comportamiento de AWS DMS. A continuación seenumeran algunos de los atributos más relevantes. Utiliceun punto y coma para separar varias entradas.

• targetDbType: de forma predeterminada, AWS DMScrea una base de datos diferente para cada esquemaque se está migrando. Si desea combinar variosesquemas en una única base de datos, configure estaopción en targetDbType=SPECIFIC_DATABASE.

• initstmt: utilice esta opción para llamar al parámetrode conexión initstmt de MySQL y aceptar todo loque acepte el parámetro initstmt de MySQL. Para undestino de Aurora MySQL, se recomienda desactivar lascomprobaciones de claves externas configurando estaopción en initstmt=SET FOREIGN_KEY_CHECKS=0.

Clave maestra de KMS Escriba la clave maestra de KMS si decide cifrar elalmacenamiento de su instancia de replicación.

A continuación, mostramos un ejemplo de la página completada.

Version 1/1/201686

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Crear los puntos de enlacede origen y destino de AWS DMS

Para obtener información acerca de los atributos de conexión adicionales, consulte Utilizar losatributos adicionales de conexión con AWS Database Migration Service.

2. Después de crear los puntos de enlace y la instancia de replicación, pruebe las conexiones de lospuntos de enlace eligiendo Run test para los puntos de enlace de origen y de destino.

3. Elimine las restricciones y los disparadores de clave externa en la base de datos de destino.

Durante el proceso de carga completo AWS DMS no carga las tablas siguiendo un orden concreto,por lo que podría cargar datos de la tabla secundaria antes que datos de la tabla principal. Por estemotivo, es posible que se incumplan restricciones de la clave externa si están habilitadas. Además, sila base de datos de destino tiene disparadores, podrían cambiar los datos cargados por AWS DMS deforma imprevista.

ALTER TABLE 'table_name' DROP FOREIGN KEY 'fk_name'; DROP TRIGGER 'trigger_name';

4. Si elimina limitaciones de clave externa y disparadores en la base de datos de destino, genere unscript que permita limitaciones de clave externa y disparadores.

Posteriormente, cuando desee añadirlos a la base de datos que migró, solo tendrá que ejecutar estescript.

Version 1/1/201687

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 7: Crear y ejecutar la tarea de migración de AWS DMS

5. (Opcional) Elimine los índices secundarios en la base de datos de destino.

Los índices secundarios (como ocurre con todos los índices) pueden ralentizar la carga completa delos datos en las tablas porque tienen que mantenerse y actualizarse durante el proceso de carga. Silos elimina, podrá mejorar el desempeño del proceso de carga completo. Si elimina los índices, tendráque añadirlos posteriormente una vez que haya finalizado la carga completa.

ALTER TABLE 'table_name' DROP INDEX 'index_name';

6. Seleccione Siguiente.

Paso 7: Crear y ejecutar la tarea de migración de AWSDMSCon una tarea de AWS DMS, puede especificar qué esquema se va a migrar y el tipo de migración. Puedemigrar los datos existentes, migrar los datos existentes y replicar los cambios en curso o bien solo replicarlos cambios.

Para crear una tarea de migración

1. En la consola de AWS DMS, en la página Create task especifique las opciones de la tarea. La tablasiguiente describe la configuración.

Parámetro Descripción

Task name Escriba un nombre para la tarea de migración.

Task description Escriba una descripción para la tarea.

Punto de enlace de origen Muestra el punto de enlace de origen de SQL Server.

Si tiene más de un punto de enlace en la cuenta, elija elpunto de enlace correcto en la lista.

Punto de enlace de destino Muestra el punto de enlace de destino de Aurora MySQL.

Replication instance Muestra la instancia de replicación de AWS DMS.

Migration type Elija una opción.

• Migrate existing data: AWS DMS migra únicamente losdatos existentes. Los cambios en los datos de origenno se capturarán ni se aplicarán al destino. Si puedepermitirse una interrupción hasta que se completetoda la carga, entonces esta es la opción más sencilla.También puede utilizar esta opción para crear copias deprueba de la base de datos. Si la base de datos de SQLServer de origen es una base de datos Amazon RDS,debe elegir esta opción.

• Migrate existing data and replicate ongoing changes:AWS DMS captura cambios al migrar los datosexistentes. AWS DMS continúa capturando y aplicandolos cambios incluso después de haber cargado granparte de los datos masivos. Con el tiempo, las bases de

Version 1/1/201688

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 7: Crear y ejecutar la tarea de migración de AWS DMS

Parámetro Descripcióndatos de origen y de destino se sincronizan, por lo que eltiempo de inactividad es mínimo.

• Replicate data changes only: cargue los datos deforma masiva utilizando un método diferente. Por logeneral, este enfoque solo se aplica a las migracioneshomogéneas.

Start task on create En la mayoría de situaciones, debe elegir esta opción.En ocasiones, es posible que quiera retrasar el inicio deuna tarea, por ejemplo, si quiere cambiar los niveles deregistro.

La página debería tener un aspecto similar al siguiente:

2. Bajo Task settings, especifique la configuración. La tabla siguiente describe la configuración.

Parámetro Descripción

Target table preparation mode Elija una opción.

• Do nothing: AWS DMS no hace nada para prepararlas tablas. La estructura de las tablas seguirá igual ylos datos existentes permanecerán en la tabla. Puedeutilizar este método para unificar los datos de variossistemas.

• Drop tables on target: AWS DMS crea sus tablas dedestino. AWS DMS borra y vuelve a crear las tablasque se van a migrar antes de la migración. AWS DMScrea la tabla y una clave principal solo para migracionesheterogéneas.

• Truncate: AWS DMS trunca una tabla de destino antesde cargarla. Si la tabla de destino no existe, entoncesAWS DMS la crea.

Version 1/1/201689

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 7: Crear y ejecutar la tarea de migración de AWS DMS

Parámetro Descripción

Important

Si la Herramienta de conversión de esquemasde AWS ya ha creado las tablas en el destino,seleccione Do nothing o Truncate.

Include LOB columns in replication Elija una opción.

• Don't include LOB columns: no migre datos de LOB.• Full LOB mode: AWS DMS migra todos los LOB (objetos

grandes) del origen al destino sin importar el tamaño.En esta configuración, AWS DMS no tiene informaciónsobre el tamaño máximo de los LOB. Por lo tanto, losLOB se migran de uno en uno. El modo LOB completopuede ser relativamente lento.

• Limited LOB mode: usted establece un LOB de tamañomáximo que AWS DMS acepta. Esta opción permiteque AWS DMS asigne previamente la memoria ycargue los datos LOB en masa. Los LOB que superenel tamaño máximo de LOB se truncarán y se emitiráuna advertencia para el archivo de registro. En LimitedLOB mode conseguirá una mejora significativa deldesempeño frente a Full LOB mode. Le recomendamosque utilice Limited LOB mode siempre que sea posible.

Max LOB size (kb) Cuando se selecciona Limited LOB mode, esta opcióndetermina el tamaño máximo del LOB que aceptará AWSDMS. Cualquier LOB que sea superior a este valor setrunca en este valor.

Enable logging Le recomendamos que seleccione Enable logging. Sihabilita el registro, podrá ver todos los errores o lasadvertencias con los que se tropieza la tarea y podrásolucionarlos.

3. No cambie los valores predeterminados de la configuración avanzada.4. Si creó y exportó reglas de mapeo con AWS SCT en el último paso en Paso 4: Utilizar AWS SCT para

convertir el esquema de SQL Server a Aurora MySQL (p. 75), elija Table mappings y seleccionela pestaña JSON. A continuación, seleccione Enable JSON editing y escriba los mapeos de tabla queguardó.

Si no creó reglas de mapeo, entonces proceda con el siguiente paso.5. Seleccione Create task. La tarea comienza inmediatamente.

La sección Tasks le muestra el estado de la tarea de migración.

Version 1/1/201690

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 8: Migración total a Aurora MySQL

Si eligió Enable logging durante la configuración, puede monitorear su tarea. Puede ver a continuación lamétrica de Amazon CloudWatch.

Para supervisar una tarea de migración de datos en curso

1. En el panel de navegación elija Tasks.2. Seleccione la tarea de migración.3. Seleccione la pestaña Task monitoring y monitoree la tarea en curso en la pestaña.

Cuando se haya completado la carga completa y se apliquen los cambios guardados en la memoriacaché, la tarea se detiene por sí misma.

4. En la base de datos Aurora MySQL de destino, si deshabilitó las restricciones y los disparadores de laclave externa, habilítelos utilizando el script que guardó anteriormente.

5. En la base de datos Aurora MySQL de destino, vuelva a crear los índices secundarios si los eliminóanteriormente.

6. Si decidió utilizar AWS DMS para replicar cambios, en la consola de AWS DMS, inicie la tarea deAWS DMS eligiendo Start/Resume para la tarea.

Entre las métricas de instancia de replicación importantes para monitorear se incluyen las siguientes:

• CPU• FreeableMemory• DiskQueueDepth• CDCLatencySource• CDCLatencyTarget

La tarea de AWS DMS mantiene la base de datos Aurora MySQL de destino actualizada con loscambios que se producen en la base de datos de origen. AWS DMS mantiene todas las tablas dela tarea actualizadas hasta que llegue el momento de implementar la migración de aplicaciones. Lalatencia es de cero o casi cero cuando el destino se ponga a la altura del origen.

Para obtener más información, consulte Monitorización de tareas de AWS Database Migration Service.

Paso 8: Migración total a Aurora MySQLEjecute los pasos siguientes para mover las conexiones desde la base de datos de Microsoft SQL Server ala base de datos Amazon Aurora MySQL.

Para realizar la migración total a Aurora MySQL

1. Finalice todas las dependencias y actividades de la base de datos de SQL Server, como la ejecuciónde scripts y las conexiones cliente. Asegúrese de que se detiene el servicio de agente de SQL Server.

A continuación, la consulta no debería devolver ningún resultado aparte de la conexión:

SELECT session_id, login_name from sys.dm_exec_sessions where session_id > 50;

2. Cancele el resto de sesiones (que no sean las suyas).

KILL session_id;

Version 1/1/201691

AWS Database Migration ServiceGuía de la migración paso a paso

Solución de problemas

3. Cierre el servicio de SQL Server.4. Deje que la tarea de AWS DMS aplique los cambios finales de la base de datos de SQL Server en la

base de datos Amazon Aurora MySQL.5. En la consola de AWS DMS detenga la tarea de AWS DMS eligiendo Stop para la tarea y confirme, a

continuación, que desea detener la tarea.

Solución de problemasCuando trabaja con Microsoft SQL Server como base de datos de origen y Amazon Aurora MySQL comobase de datos de destino, las dos áreas problemáticas más habituales son la captura de datos de cambio(CDC) de SQL Server y las claves externas.

• MS-CDC: si utiliza MS-CDC con SQL Server para la migración, los errores relacionados con permisoso errores durante la captura de datos de cambio son habituales. Este tipo de errores suele producirsecuando no se ha cumplido uno de los requisitos previos. Por ejemplo, el requisito que más comúnmenteno se tiene en cuenta es el requisito previo de hacer una copia de seguridad completa de la base dedatos.

• Claves externas: durante el proceso de carga completo AWS DMS no carga las tablas siguiendo unorden concreto, por lo que podría cargar datos de la tabla secundaria antes que datos de la tablaprincipal. Por este motivo, es posible que se incumplan restricciones de la clave externa si estánhabilitadas. Debe deshabilitar las claves externas en la base de datos de destino Aurora MySQL. Puedehabilitar las claves externas en el destino después de que se haya completado la migración.

Para obtener más consejos, consulte la sección de resolución de problemas de AWS DMS en la Guía delusuario de AWS DMS.

Para solucionar problemas específicos de SQL Server, consulte la sección de resolución de problemas deSQL Server:

• Solución de problemas específicos de Microsoft SQL Server

Para solucionar problemas de Aurora MySQL, consulte la sección de resolución de problemas de AuroraMySQL y la sección de resolución de problemas de MySQL:

• Solución de problemas específicos de Amazon Aurora MySQL• Solución de problemas específicos de MySQL

Version 1/1/201692

AWS Database Migration ServiceGuía de la migración paso a paso

Requisitos previos

Migración de una base de datos deOracle a PostgreSQL

Con este tutorial aprenderá a migrar una base de datos de Oracle a una base de datos de PostgreSQLutilizando AWS Database Migration Service (AWS DMS) y AWS Schema Conversion Tool (AWS SCT).

AWS DMS migra los datos de la base de datos de origen de Oracle a la base de datos de destinoPostgreSQL. AWS DMS también captura los cambios en el lenguaje de manipulación de datos (DML)y el lenguaje de definición de datos (DDL) compatible que se producen en la base de datos de origen yaplica dichos cambios a la base de datos de destino. De esta forma, AWS DMS mantiene las bases dedatos de origen y de destino sincronizadas entre sí. Para facilitar la migración de datos, AWS SCT crea losesquemas migrados en la base de datos de destino, incluidas las tablas y los índices de clave principal enel destino si es necesario.

Sin embargo, AWS DMS no migra los índices secundarios, las secuencias, los valores predeterminados,los procedimientos almacenados, los disparadores, los sinónimos, las vistas y otros objetos de esquemano relacionados específicamente con la migración de datos. Para migrar estos objetos a la base de datosde PostgreSQL de destino, utilice AWS SCT.

Temas• Requisitos previos (p. 93)• Migración paso a paso (p. 94)• Reversión de la migración (p. 115)• Solución de problemas (p. 116)

Requisitos previosLos siguientes requisitos previos son necesarios para completar esta guía:

• Conocer Amazon Relational Database Service (Amazon RDS), las tecnologías de base de datosaplicables y SQL.

• Crear una cuenta de AWS con credenciales de AWS Identity and Access Management (IAM) que lepermitan lanzar instancias de Amazon RDS y AWS Database Migration Service (AWS DMS) en suregión de AWS. Para obtener información sobre las credenciales de IAM, consulte Creación de unusuario de IAM.

• Comprender el servicio Amazon Virtual Private Cloud (Amazon VPC) y los grupos de seguridad. Paraobtener información sobre cómo utilizar Amazon VPC con Amazon RDS, consulte Amazon VirtualPrivate Cloud (VPCs) y Amazon RDS. Para obtener información sobre los grupos de seguridad deAmazon RDS, consulte Grupos de seguridad de Amazon RDS.

• Comprender las características y las limitaciones compatibles de AWS DMS. Para obtener informaciónsobre AWS DMS, consulte ¿Qué es AWS Database Migration Service?

• Comprender las opciones de conversión de tipo de datos admitidas para Oracle y PostgreSQL. Paraobtener información sobre los tipos de datos para Oracle como origen, consulte la sección sobre usode una base de datos de Oracle como origen para AWS Database Migration Service. Para obtenerinformación sobre los tipos de datos para PostgreSQL como destino, consulte Uso de una base de datosde PostgreSQL como destino para AWS Database Migration Service.

• Ajuste el host de la base de datos de PostgreSQL de destino. Las DBA deben tener constancia del perfilde carga del host de la base de datos de Oracle de origen actual. Tenga en cuenta la CPU, la memoria e

Version 1/1/201693

AWS Database Migration ServiceGuía de la migración paso a paso

Migración paso a paso

IOPS. Con RDS puede aumentar el tamaño del host de la base de datos de destino o reducirlo despuésde la migración. Si es la primera vez que va a realizar migraciones a PostgreSQL, le recomendamos quedisponga de capacidad adicional para tener en cuenta los problemas de desempeño y las oportunidadesde ajuste.

• Audite la base de datos de Oracle de origen. Por cada esquema y todos los objetos de cada esquema,determine si alguno de los objetos ya no se utiliza. Descarte esos objetos en la base de datos de Oraclede origen, ya que no es necesario migrarlos si no los utiliza.

• Si la capacidad de carga lo permite, obtenga el tamaño máximo (kb) de cada tipo de LOB en la base dedatos de origen y conserve esta información para más tarde.

• Si es posible, mueva las columnas con BLOB, CLOB, NCLOB, LONG, LONG RAW y XMLTYPEa S3, Dynamo DB u otro almacén de datos. Al hacerlo, simplificará la base de datos de Oracle deorigen y facilitará la migración. Asimismo, reducirá los requisitos de capacidad de la base de datos dePostgreSQL de destino.

Para obtener más información acerca de AWS DMS, consulte la documentación de AWS DMS.

Migración paso a pasoEn los pasos siguientes se proporcionan instrucciones para migrar una base de datos de Oracle a unabase de datos de PostgreSQL. En ellos se presupone que ya ha preparado la base de datos de origen tal ycomo se describe en Requisitos previos (p. 93).

Temas• Paso 1: Instalar los controladores de SQL y AWS Schema Conversion Tool en su equipo

local (p. 94)• Paso 2: Configurar la base de datos de origen de Oracle (p. 95)• Paso 3: Configurar la base de datos de destino PostgreSQL (p. 98)• Paso 4: Utilizar AWS Schema Conversion Tool (AWS SCT) para convertir los esquemas de Oracle a

PostgreSQL (p. 98)• Paso 5: Crear una instancia de replicación de AWS DMS (p. 106)• Paso 6: Crear los puntos de enlace de origen y destino de AWS DMS (p. 108)• Paso 7: Crear y ejecutar la tarea de migración de AWS DMS (p. 111)• Paso 8: Migración total a PostgreSQL (p. 114)

Paso 1: Instalar los controladores de SQL y AWSSchema Conversion Tool en su equipo localInstale los controladores de SQL y AWS Schema Conversion Tool (AWS SCT) en su equipo local.

Para instalar el software de cliente SQL

1. Descargue el controlador JDBC correspondiente a su versión de base de datos de Oracle. Porejemplo, el controlador JDBC de Oracle Database 12.1.0.2 es (ojdbc7.jar).

2. Descargue el controlador PostgreSQL (postgresql-42.1.4.jar).3. Instale AWS SCT y los controladores JDBC necesarios.

a. Descargue AWS SCT desde Instalar y actualizar AWS Schema Conversion Tool en la Guía delusuario de AWS Schema Conversion Tool.

b. Iniciar AWS SCT.

Version 1/1/201694

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 2: Configurar la base de datos de origen de Oracle

c. En AWS SCT elija Global Settings en Settings.d. En Global Settings elija Driver y, a continuación, seleccione Browse para Oracle Driver Path.

Busque el controlador JDBC de Oracle y seleccione OK.e. Elija Browse para PostgreSQL Driver Path. Busque el controlador JDBC de PostgreSQL y

seleccione OK.

f. Seleccione OK para cerrar el cuadro de diálogo.

Paso 2: Configurar la base de datos de origen deOraclePara utilizar Oracle como origen para AWS Database Migration Service (AWS DMS), primero debeasegurarse de que MODE ARCHIVELOG esté activado para proporcionar información a LogMiner. AWSDMS utiliza LogMiner para leer información de los registros de archivo para que AWS DMS pueda capturarlos cambios.

Para que AWS DMS lea esta información, asegúrese de que los registros de archivo se conservan enel servidor de la base de datos mientras AWS DMS los necesite. Si configura su tarea para empezar acapturar los cambios de forma inmediata, solo deberá conservar los logs de archivo un poco más de laduración de la transacción cuya ejecución sea más larga. Normalmente basta con retener los registros dearchivo durante 24 horas. Si configura su tarea para empezar desde un momento dado en el pasado, loslogs de archivo deben estar disponibles desde ese momento. Para obtener más instrucciones específicaspara activar ARCHIVELOG MODE y garantizar la retención de los logs para la base de datos de Oraclelocal, consulte la documentación de Oracle.

Para capturar los cambios en los datos, AWS DMS precisa que el registro suplementario esté activado enla base de datos de origen. Debe activar el registro suplementario mínimo en el nivel de base de datos.AWS DMS también requiere que el registro de claves de identificación esté activado. Esta opción hace quela base de datos coloque todas las columnas de la clave principal de una fila en el archivo de log REDOcada vez que se actualiza una fila que contiene una clave principal. Este resultado se produce incluso si

Version 1/1/201695

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 2: Configurar la base de datos de origen de Oracle

ningún valor de la clave principal ha cambiado. Puede configurar esta opción en el nivel de la base dedatos o de la tabla.

Para configurar la base de datos de origen de Oracle

1. Cree o configure una cuenta de base de datos para que la use AWS DMS. Le recomendamos queutilice una cuenta con los privilegios mínimos exigidos por AWS DMS para la conexión a AWS DMS.AWS DMS requiere los siguientes privilegios.

CREATE SESSIONSELECT ANY TRANSACTIONSELECT on V_$ARCHIVED_LOGSELECT on V_$LOGSELECT on V_$LOGFILESELECT on V_$DATABASESELECT on V_$THREADSELECT on V_$PARAMETERSELECT on V_$NLS_PARAMETERSSELECT on V_$TIMEZONE_NAMESSELECT on V_$TRANSACTIONSELECT on ALL_INDEXESSELECT on ALL_OBJECTSSELECT on ALL_TABLESSELECT on ALL_USERSSELECT on ALL_CATALOGSELECT on ALL_CONSTRAINTSSELECT on ALL_CONS_COLUMNSSELECT on ALL_TAB_COLSSELECT on ALL_IND_COLUMNSSELECT on ALL_LOG_GROUPSSELECT on SYS.DBA_REGISTRYSELECT on SYS.OBJ$SELECT on DBA_TABLESPACESSELECT on ALL_TAB_PARTITIONSSELECT on ALL_ENCRYPTED_COLUMNS* SELECT on all tables migrated

Si desea capturar y aplicar cambios (CDC), también necesitará los siguientes privilegios.

EXECUTE on DBMS_LOGMNR SELECT on V_$LOGMNR_LOGSSELECT on V_$LOGMNR_CONTENTSLOGMINING /* For Oracle 12c and higher. */* ALTER for any table being replicated (if you want AWS DMS to add supplemental logging)

Para versiones de Oracle previas a 11.2.0.3, necesitará los siguientes privilegios.

SELECT on DBA_OBJECTS /* versions before 11.2.0.3 */SELECT on ALL_VIEWS (required if views are exposed)

2. Si la base de datos de Oracle es una base de datos de AWS RDS, conéctese a ella como usuarioadministrativo y ejecute el siguiente comando para garantizar que los logs de archivo se conserven enel RDS de origen durante 24 horas:

Version 1/1/201696

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 2: Configurar la base de datos de origen de Oracle

exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24);

Si el origen de Oracle es una base de datos de AWS RDS, se pondrá en ARCHIVELOG MODE si, ysolo si, activa los backups.

3. Ejecute el siguiente comando para activar el registro suplementario en el nivel de base de datos querequiere AWS DMS:• En Oracle SQL:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

• En RDS:

exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');

4. Utilice el siguiente comando para activar el registro suplementario de claves de identificación en elnivel de la base de datos. AWS DMS requiere un registro adicional de claves en el nivel de basede datos. Hay una excepción: si permite a AWS DMS que añada automáticamente el registrosuplementario cuando sea necesario o active el registro suplementario de nivel de la clave en el nivelde tabla:• En Oracle SQL:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

• En RDS:

exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','PRIMARY KEY');

La base de datos de origen incurre en pequeños gastos adicionales si el registro suplementariodel nivel de la clave está activado. Por lo tanto, si migra únicamente un subconjunto de tablas, esposible que le interese activar el registro suplementario de nivel de la clave en el nivel de la tabla.

5. Para activar el registro suplementario del nivel de la clave en el nivel de la tabla, utilice el siguientecomando.

ALTER TABLE table_name ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

Si una tabla no tiene una clave principal tiene dos opciones.

• Puede agregar el registro suplementario en todas las columnas implicadas en el primer índice únicode la tabla (ordenadas por nombre de índice).

• Puede agregar el registro suplementario a todas las columnas de la tabla.

Para añadir el registro suplementario a un subconjunto de columnas de una tabla como, por ejemplo,las columnas implicadas en un índice único, ejecute el siguiente comando.

ALTER TABLE table_name

Version 1/1/201697

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Configurar la base de datos de destino PostgreSQL

ADD SUPPLEMENTAL LOG GROUP example_log_group (column_list) ALWAYS;

Para añadir el registro suplementario a todas las columnas de una tabla, ejecute el siguiente comando.

ALTER TABLE table_name ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

6. Cree un usuario para AWS SCT.

CREATE USER oracle_sct_user IDENTIFIED BY password; GRANT CONNECT TO oracle_sct_user;GRANT SELECT_CATALOG_ROLE TO oracle_sct_user;GRANT SELECT ANY DICTIONARY TO oracle_sct_user;

Paso 3: Configurar la base de datos de destinoPostgreSQL1. Si los esquemas que va a migrar no existen en la base de datos de PostgreSQL cree los esquemas.2. Cree el usuario AWS DMS para conectarse a la base de datos de destino y conceda privilegios de

superusuario o los privilegios individuales necesarios (o use el nombre de usuario maestro para RDS).

CREATE USER postgresql_dms_user WITH PASSWORD 'password'; ALTER USER postgresql_dms_user WITH SUPERUSER;

3. Cree un usuario para AWS SCT.

CREATE USER postgresql_sct_user WITH PASSWORD 'password';

GRANT CONNECT ON DATABASE database_name TO postgresql_sct_user;GRANT USAGE ON SCHEMA schema_name TO postgresql_sct_user;GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO postgresql_sct_user;GRANT ALL ON SEQUENCES IN SCHEMA schema_name TO postgresql_sct_user;

Paso 4: Utilizar AWS Schema Conversion Tool(AWS SCT) para convertir los esquemas de Oracle aPostgreSQLAntes de migrar datos a PostgreSQL debe convertir el esquema de Oracle en un esquema de PostgreSQL.

Version 1/1/201698

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a PostgreSQL

Para convertir un esquema de Oracle en un esquema de PostgreSQL con AWS SCT

1. Iniciar AWS SCT. En AWS SCT seleccione File y, a continuación, elija New Project. Cree un nuevoproyecto denominado AWS Schema Conversion Tool Oracle to PostgreSQL. Indique lasiguiente información en la ventana New Project y, a continuación, seleccione OK.

Parámetro Descripción

Project Name Escriba AWS Schema Conversion Tool Oracle toPostgreSQL.

Ubicación Utilice la carpeta Projects predeterminada y la opciónTransactional Database (OLTP) predeterminada.

Source Database Engine Seleccione Oracle.

Target Database Engine Seleccione Amazon RDS for PostgreSQL.

2. Elija Connect to Oracle. En el cuadro de diálogo Connect to Oracle escriba la información siguiente y,a continuación, elija Test Connection.

Parámetro Descripción

Type Elija SID.

Server name Escriba el nombre del servidor.

Server port Escriba el número de puerto de Oracle. El valorpredeterminado es 1521.

Oracle SID Escriba el SID de la base de datos.

Version 1/1/201699

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a PostgreSQL

Parámetro Descripción

Nombre de usuario Escriba el nombre de usuario administrador de Oracle.

Contraseña Especifique la contraseña para el usuario administrador.

3. Seleccione OK para cerrar la alerta y, a continuación, seleccione OK para cerrar el cuadro de diálogoy comenzar la conexión a la instancia de base de datos de Oracle. A continuación se muestra laestructura de base de datos en la instancia de base de datos de Oracle.

4. Seleccione Connect to Amazon RDS for PostgreSQL. En el cuadro de diálogo Connect to AmazonPostgreSQL escriba la información siguiente y, a continuación, elija Test Connection.

Parámetro Descripción

Server name Escriba el nombre del servidor.

Server port Escriba el número de puerto de PostgreSQL. El valorpredeterminado es 5432.

Base de datos Escriba el nombre de la base de datos.

Version 1/1/2016100

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a PostgreSQL

Parámetro Descripción

Nombre de usuario Escriba el nombre de usuario administrador dePostgreSQL.

Contraseña Especifique la contraseña para el usuario administrador.

5. Seleccione OK para cerrar la alerta y, a continuación, seleccione OK para cerrar el cuadro de diálogo ycomenzar la conexión a la instancia de base de datos de PostgreSQL.

6. Abra el menú contextual (haga clic con el botón derecho) del esquema que va a migrar y seleccioneConvert schema.

Version 1/1/2016101

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a PostgreSQL

7. Seleccione Yes para el mensaje de confirmación. AWS SCT convierte los esquemas al formato de labase de datos de destino.

Version 1/1/2016102

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a PostgreSQL

AWS SCT analiza el esquema y crea un informe de evaluación de la migración de la base de datospara la conversión a PostgreSQL.

8. Seleccione Assessment Report View en View para comprobar el informe.

El informe se desglosa por cada tipo de objeto y por la cantidad de cambios manuales que sonnecesarios para realizar la conversión correctamente.

Por lo general, los paquetes, los procedimientos y las funciones son los elementos con másprobabilidades de tener problemas que deben resolverse, ya que contienen la mayor parte del códigoPL/SQL personalizado. AWS SCT también ofrece consejos para solucionar los problemas de estosobjetos.

Version 1/1/2016103

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a PostgreSQL

9. Haga clic en la pestaña Action Items.

La pestaña Action Items muestra cada uno de los problemas de cada objeto que precisan atención.

Por cada problema de conversión, puede realizar una de las siguientes acciones:• Modificar los objetos en la base de datos de Oracle de origen para que AWS SCT pueda convertir

los objetos a la base de datos de PostgreSQL de destino.

1. Modifique los objetos en la base de datos de Oracle de origen.2. Repita los pasos anteriores para convertir el esquema y comprobar el informe de evaluación.

Version 1/1/2016104

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 4: Utilizar AWS Schema Conversion Tool (AWS SCT)para convertir los esquemas de Oracle a PostgreSQL

3. Si es necesario, repita este proceso hasta que no haya problemas de conversión.4. Elija Main View en View, abra el menú contextual (haga clic con el botón derecho) del

esquema PostgreSQL de destino y elija Apply to database para aplicar los cambios deesquema en la base de datos de PostgreSQL.

• En lugar de modificar el esquema de origen, modifique los scripts generados por AWS SCT antesde aplicar los scripts en la base de datos de PostgreSQL de destino.

1. Abra el menú contextual (haga clic con el botón derecho) del nombre de esquema dePostgreSQL de destino y seleccione Save as SQL. A continuación, elija un nombre y undestino para el script.

2. En el script modifique los objetos para corregir los problemas de conversión.3. Ejecute el script en la base de datos de PostgreSQL de destino.

Para obtener más información, consulte Conversión de esquemas de bases de datos a Amazon RDScon AWS Schema Conversion Tool en la Guía del usuario de AWS Schema Conversion Tool.

10. Utilice AWS SCT para crear reglas de mapeo.

a. En Settings seleccione Mapping Rules.b. Además de las dos reglas de mapeo predeterminadas que convierten los nombres de esquemas

y de tablas en minúsculas, cree reglas de mapeo adicionales necesarias en función de loselementos de acción.

c. Guarde las reglas de mapeo.

Version 1/1/2016105

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Crear una instancia de replicación de AWS DMS

d. Haga clic en Export script for DMS para exportar un formato JSON de todas las transformacionesque la tarea AWS DMS utilizará para determinar qué objeto del origen corresponde a qué objetodel destino. Haga clic en Guardar.

Paso 5: Crear una instancia de replicación de AWSDMSDespués de validar la estructura de esquema entre las bases de datos de origen y de destino, pase a laparte fundamental de esta guía, que es la migración de datos. La siguiente ilustración muestra una vistadetallada del proceso de migración.

Una instancia de replicación de AWS DMS realiza la migración de datos real entre el origen y el destino. Lainstancia de replicación también almacena en caché los registros de transacción durante la migración. Lacapacidad de la CPU y de la memoria de una instancia de replicación influirá en el tiempo necesario parallevar a cabo la migración.

Para crear una instancia de replicación de AWS DMS

1. Inicie sesión en la consola de administración de AWS y seleccione AWS DMS en https://console.aws.amazon.com/dms/. A continuación, elija Create Migration. Si ha iniciado sesión comousuario de AWS Identity and Access Management (IAM), debe disponer de los permisos adecuadospara acceder a AWS DMS. Para obtener más información acerca de los permisos necesarios, consultela sección sobre Permisos de IAM necesarios para utilizar AWS DMS.

2. Seleccione Next para comenzar la migración de una base de datos desde la página de bienvenida dela consola.

3. En la página Create replication instance especifique la información de la instancia de replicación.

Version 1/1/2016106

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Crear una instancia de replicación de AWS DMS

Parámetro Descripción

Nombre Seleccione un nombre para la instancia de replicación. Siva a utilizar varios servidores de replicación o compartiruna cuenta, elija un nombre que le ayudará a diferenciarrápidamente entre los diferentes servidores.

Descripción Escriba una breve descripción.

Instance class Seleccione el tipo de servidor de replicación que va acrear. Cada clase de tamaño y tipo de instancia tendráuna capacidad de CPU, memoria y E/S creciente. Porlo general, las instancias t2 son para tareas de cargainferiores y las instancias c4 son para tareas de cargasuperiores y otras tareas.

VPC Elija la VPC en la que se lanzará la instancia dereplicación. Si es posible, seleccione la misma VPC enla que reside su base de datos de origen o de destino (oambas).

Varias AZ Cuando se selecciona Yes AWS DMS crea otro servidorde replicación en otra zona de disponibilidad para obteneruna conmutación por error si se produce un problema conel servidor de replicación principal.

Publicly accessible Si la base de datos de origen o la de destino se encuentrafuera de la VPC en la que reside el servidor de replicación,deberá hacer que la política del servidor de replicación seaaccesible públicamente.

4. En la sección Advanced especifique la información siguiente.

Parámetro Descripción

Allocated storage (GB) Cantidad de almacenamiento en el servidor de replicaciónpara los logs de tareas de AWS DMS incluidos loslogs de tareas históricas. AWS DMS también utilizaalmacenamiento en disco para almacenar en cachédeterminados datos mientras los replica de origen endestino. Además, una mayor cantidad de almacenamiento,por lo general, permite mejores IOPS en el servidor.

Replication Subnet Group Si ejecuta la operación en una configuración de varias AZ,necesitará al menos dos grupos de subredes.

Availability zone Por lo general, el desempeño mejora si ubica su servidorde replicación principal en la misma zona de disponibilidadque su base de datos de destino.

VPC Security Group(s) Los grupos de seguridad le permiten controlar las entradasy salidas de su VPC. Con AWS DMS puede asociar uno ovarios grupos de seguridad a la VPC desde la que se lanzael servidor de replicación.

Clave maestra de KMS Con AWS DMS, todos los datos se cifran en reposomediante una clave de cifrado de KMS. De forma

Version 1/1/2016107

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Crear los puntos de enlacede origen y destino de AWS DMS

Parámetro Descripciónpredeterminada, AWS DMS creará una nueva clave decifrado para su servidor de replicación. Sin embargo,puede optar por utilizar una clave ya existente.

Para obtener información acerca de la clave maestra de KMS, consulte Configuración de una clave decifrado y especificación de permisos KMS.

5. Haga clic en Siguiente.

Paso 6: Crear los puntos de enlace de origen y destinode AWS DMSMientras se está creando la instancia de replicación, puede especificar los puntos de enlace de la basede datos de origen y destino con la consola de administración de AWS. Sin embargo, solo podrá probar laconectividad después de que se haya creado la instancia de replicación, porque esta instancia se utiliza enla conexión.

Para especificar los puntos de enlace de la base de datos de origen y la de destino utilizando laconsola

1. Especifique la información de conexión de la base de datos de origen de Oracle y la base de datos dePostgreSQL de destino. La siguiente tabla describe la configuración del origen.

Parámetro Descripción

Endpoint Identifier Escriba un nombre como, por ejemplo, Orasource.

Source Engine Seleccione oracle.

Server name Facilite el nombre de servidor de la instancia de base dedatos de Oracle.

Port (Puerto) El puerto de la base de datos. El valor predeterminadopara Oracle es 1521.

SSL mode Elija un modo SSL si desea habilitar el cifrado para eltráfico de la conexión.

Nombre de usuario El usuario que desee utilizar para conectarse a la base dedatos de origen.

Contraseña Especifique la contraseña para el usuario.

SID Proporcione el nombre de la base de datos de Oracle.

En la tabla siguiente se describe la configuración de origen avanzada.

Parámetro Descripción

Extra connection attributes Parámetros adicionales que puede establecer en unpunto de enlace para añadir funcionalidades o cambiar elcomportamiento de AWS DMS. A continuación, indicamos

Version 1/1/2016108

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Crear los puntos de enlacede origen y destino de AWS DMS

Parámetro Descripciónalgunos de los parámetros más habituales y cómodos quepueden establecerse para la base de datos de origen deOracle. Separe varias entradas entre sí con un punto ycoma (;).

• addSupplementalLogging: este parámetro configuraautomáticamente el registro adicional cuando estáestablecido en Y.

• useLogminerReader: AWS DMS utiliza de formapredeterminada Logminer en la base de datos de Oraclepara capturar todos los cambios que se producen enla base de datos de origen. El otro modo se denominaBinary Reader. Cuando se utiliza Binary Reader enlugar de Logminer, AWS DMS copia el log REDOarchivado desde la base de datos de Oracle de origenen el servidor de replicación y lee el log completo paracapturar los cambios. La opción Binary Reader serecomienda si utiliza ASM, ya que tiene ventajas dedesempeño en comparación con Logminer en ASM. Si labase de datos de origen es 12c, la opción Binary Readeres actualmente la única manera de capturar cambiosCDC en Oracle para objetos LOB.

Para utilizar Logminer, escriba lo siguiente:

useLogminerReader=Y

Para utilizar Binary Reader, escriba lo siguiente:

useLogminerReader=N; useBfile=Y

Clave maestra de KMS Escriba la clave maestra de KMS si decide cifrar elalmacenamiento de su instancia de replicación.

Para obtener información acerca de los atributos de conexión adicionales, consulte Utilizar losatributos adicionales de conexión con AWS Database Migration Service.

La tabla siguiente describe la configuración del destino.

Parámetro Descripción

Endpoint Identifier Escriba un nombre como, por ejemplo, Postgrestarget.

Target Engine Elija postgres.

Servername Facilite el nombre de servidor de la instancia de base dedatos de PostgreSQL.

Port (Puerto) El puerto de la base de datos. El valor predeterminado dePostgreSQL es 5432.

SSL mode Elija None.

Version 1/1/2016109

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Crear los puntos de enlacede origen y destino de AWS DMS

Parámetro Descripción

Nombre de usuario El usuario que desee utilizar para conectarse a la base dedatos de destino.

Contraseña Proporcione la contraseña para la instancia de base dedatos de PostgreSQL.

A continuación, mostramos un ejemplo de la página completada.

2. Después de crear los puntos de enlace y la instancia de replicación, pruebe la conexión de cada puntode enlace seleccionando Run test para los puntos de enlace de origen y de destino.

3. Elimine las restricciones y los disparadores de clave externa en la base de datos de destino.

Durante el proceso de carga completo AWS DMS no carga las tablas siguiendo un orden concreto,por lo que es posible que cargue datos de la tabla secundarios antes que datos principales. Por este

Version 1/1/2016110

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 7: Crear y ejecutar la tarea de migración de AWS DMS

motivo, es posible que se incumplan restricciones de la clave externa si están habilitadas. Además, sila base de datos de destino tiene disparadores, los datos cargados por AWS DMS pueden cambiar deforma imprevista.

4. Si no dispone de un script, genere un script que habilite las restricciones y los disparadores de la claveexterna.

Posteriormente, cuando desee añadirlos a la base de datos que migró, solo tendrá que ejecutar estescript.

5. (Opcional) Elimine los índices secundarios en la base de datos de destino.

Los índices secundarios (al igual que ocurre con todos los índices) pueden ralentizar la cargacompleta de los datos en las tablas ya que deben mantenerse y actualizarse durante el proceso decarga. Si los elimina, podrá mejorar el desempeño del proceso de carga completo. Si elimina losíndices, tendrá que añadirlos posteriormente una vez que la carga completa haya finalizado.

6. Seleccione Siguiente.

Paso 7: Crear y ejecutar la tarea de migración de AWSDMSCon una tarea de AWS DMS, puede especificar qué esquema va a migrar y el tipo de migración. Puedemigrar los datos existentes, migrar los datos existentes y replicar los cambios en curso o bien solo replicarlos cambios. En esta guía se migran los datos existentes y se replican los cambios en curso.

Para crear una tarea de migración

1. En la página Create Task especifique las opciones de la tarea. La tabla siguiente describe laconfiguración.

Parámetro Descripción

Task name Escriba un nombre para la tarea de migración.

Task description Escriba una descripción para la tarea.

Punto de enlace de origen Muestra el punto de enlace de origen de Oracle.

Si tiene más de un punto de enlace en la cuenta, elija elpunto de enlace correcto en la lista.

Punto de enlace de destino Muestra el punto de enlace de destino de PostgreSQL.

Instancia de replicación Muestra la instancia de replicación de AWS DMS.

Migration type Seleccione la opción Migrate existing data and replicateongoing changes.

Start task on create Seleccione esta opción.

La página debe ser similar a la siguiente:

Version 1/1/2016111

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 7: Crear y ejecutar la tarea de migración de AWS DMS

2. En Task Settings elija Do nothing o Truncate para Target table preparation mode, porque ya ha creadolas tablas con AWS Schema Conversion Tool.

Si la base de datos de Oracle tiene varios LOB, en Include LOB columns in replication seleccioneFull LOB mode si quiere replicar el LOB completo para todas las tablas. Seleccione Limited LOBmode si desea replicar los LOB solo hasta un determinado tamaño. El tamaño del LOB para migrar seespecifica en Max LOB size (kb).

Le recomendamos que seleccione Enable logging. Si habilita el registro, podrá ver todos los errores olas advertencias con los que se tropieza la tarea y podrá solucionarlos.

3. No cambie los valores predeterminados de la configuración avanzada.

Version 1/1/2016112

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 7: Crear y ejecutar la tarea de migración de AWS DMS

4. Elija Table mappings y seleccione la pestaña JSON. A continuación, seleccione Enable JSON editingy especifique los mapeos de tabla que guardó en el último paso en Paso 4: Utilizar AWS SchemaConversion Tool (AWS SCT) para convertir los esquemas de Oracle a PostgreSQL (p. 98).

A continuación, mostramos un ejemplo de mapeos que convierten nombres de esquema y de tablasen minúsculas.

{ "rules": [ { "rule-type": "transformation", "rule-id": "100000", "rule-name": "Default Lowercase Table Rule", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "%", "table-name": "%" } }, { "rule-type": "transformation", "rule-id": "100001", "rule-name": "Default Lowercase Schema Rule", "rule-action": "convert-lowercase", "rule-target": "schema", "object-locator": { "schema-name": "%" } } ]}

5. Seleccione Create task. La tarea comenzará inmediatamente.

La sección Tasks le muestra el estado de la tarea de migración.

Puede monitorear su tarea si ha elegido Enable logging al configurar la tarea. A continuación, puede verlas métricas de CloudWatch haciendo lo siguiente:

Para supervisar una tarea de migración de datos en curso

1. En el panel de navegación elija Tasks.2. Seleccione la tarea de migración.3. Seleccione la pestaña Task monitoring y monitoree la tarea en curso en la pestaña.

Version 1/1/2016113

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 8: Migración total a PostgreSQL

Cuando se haya completado la carga completa y se apliquen los cambios guardados en la memoriacaché, la tarea se detendrá por sí misma.

4. En la base de datos de PostgreSQL de destino, habilite las restricciones y los disparadores de la claveexterna utilizando el script que ha guardado anteriormente.

5. En la base de datos de PostgreSQL de destino, vuelva a crear los índices secundarios si los eliminóanteriormente.

6. En la consola de AWS DMS, comience la tarea de AWS DMS haciendo clic en Start/Resume para latarea.

La tarea de AWS DMS mantiene la base de datos de PostgreSQL de destino actualizada con loscambios que se producen en la base de datos de origen. AWS DMS mantendrá todas las tablas dela tarea actualizadas hasta que llegue el momento de implementar la migración de aplicaciones. Lalatencia será de cero o casi cero cuando el destino se ponga a la altura del origen.

Paso 8: Migración total a PostgreSQLEjecute los pasos siguientes para mover las conexiones desde la base de datos de Oracle a la base dedatos de PostgreSQL.

Para realizar la migración total a PostgreSQL

1. Finalice todas las dependencias y actividades de la base de datos de Oracle, como la ejecución descripts y las conexiones cliente.

La siguiente consulta no debería devolver ningún resultado:

SELECT MACHINE, COUNT FROM V$SESSION GROUP BY MACHINE;

2. Genere una lista de las sesiones restantes y cancélelas.

SELECT SID, SERIAL#, STATUS FROM V$SESSION; ALTER SYSTEM KILL 'sid, serial_number' IMMEDIATE;

3. Apague todos los agentes de escucha de la base de datos de Oracle.4. Deje que la tarea AWS DMS aplique los cambios finales de la base de datos de Oracle en la base de

datos de PostgreSQL.

ALTER SYSTEM CHECKPOINT;

5. En la consola de AWS DMS detenga la tarea de AWS DMS haciendo clic en Stop para la tarea yconfirme que desea detener la tarea.

6. (Opcional) Configure una restauración.

Si lo desea, puede configurar una tarea de restauración por si se produce un problema quedesencadene un paro. Para ello, cree una tarea que vaya en la dirección opuesta. Dado que todas lastablas deben sincronizarse entre ambas bases de datos, solo tiene que configurar una tarea de CDC.Por lo tanto, no tiene que deshabilitar ninguna restricción de clave extranjera. Ahora que las bases dedatos de origen y destino se invierten, debe seguir las instrucciones de las secciones siguientes:

Version 1/1/2016114

AWS Database Migration ServiceGuía de la migración paso a paso

Reversión de la migración

• Using a PostgreSQL Database as a Source for AWS Database Migration Service• Using an Oracle Database as a Target for AWS Database Migration Service

a. Desactive los disparadores de la base de datos de Oracle de origen.

SELECT 'ALTER TRIGGER' || owner || '.' || trigger_name || 'DISABLE;' FROM DBA_TRIGGERS WHERE OWNER = 'schema_name';

No tiene que deshabilitar ninguna restricción de clave extranjera. Durante el proceso de CDC, lasrestricciones de la clave extranjera se actualizan en el mismo orden en el que los usuarios de laaplicación las actualizan.

b. Cree una tarea de AWS DMS solo de CDC con los puntos de enlace invertidos (base de datos depunto de enlace PostgreSQL de origen y base de datos de punto de enlace de Oracle de destino).Consulte Paso 7: Crear y ejecutar la tarea de migración de AWS DMS (p. 111).

Para la tarea de restauración, establezca Migration type en Replicate data changes only y Targettable preparation mode en Do nothing.

c. Inicie la tarea de AWS DMS que le permite insertar cambios en la base de datos de Oraclede origen original desde la base de datos de PostgreSQL nueva si es necesario efectuar unarestauración.

7. Establezca conexión con la base de datos de PostgreSQL y habilite los disparadores.

ALTER TABLE table_name ENABLE TRIGGER ALL;

8. Si configura una restauración, complete la configuración de restauración.

a. Inicie los servicios de aplicación en la base de datos de PostgreSQL de destino nueva (incluidoslos scripts, el software cliente, etc.).

b. Añada la monitorización de Cloudwatch en su base de datos de PostgreSQL nueva. ConsulteMonitoring Amazon RDS.

Reversión de la migraciónSi se producen problemas graves con la migración que no pueden resolverse de manera oportuna,puede revertir la migración. En estos pasos se presupone que ya se ha preparado para la restauración deacuerdo con lo descrito en Paso 8: Migración total a PostgreSQL (p. 114).

Para revertir la migración

1. Detenga todos los servicios de aplicaciones en la base de datos de PostgreSQL de destino.2. Deje que la tarea de AWS DMS replique los cambios restantes en la base de datos de Oracle de

origen.3. Detenga la tarea de AWS DMS de PostgreSQL a Oracle.4. Vuelva a iniciar todas las aplicaciones en la base de datos de Oracle de origen.

Version 1/1/2016115

AWS Database Migration ServiceGuía de la migración paso a paso

Solución de problemas

Solución de problemasLas dos áreas donde se producen los problemas más habituales al trabajar con Oracle como origen yPostgreSQL como destino son las siguientes: el registro suplementario y la distinción entre mayúsculas yminúsculas.

• Registro suplementario: con Oracle, para replicar los datos cambiados, el registro suplementario debeestar activado. Sin embargo, si activa el registro suplementario en el nivel de la base de datos, a veceshay que volver a activarlo cuando se crean tablas nuevas. La mejor solución consiste en permitir queAWS DMS active el registro suplementario para usted utilizando el atributo de conexión adicional:

addSupplementalLogging=Y

• Distinción entre mayúsculas y minúsculas: Oracle no distingue entre mayúsculas y minúsculas (a menosque utilice comillas en los nombres de objeto). Sin embargo, el texto aparece en mayúsculas. Por lotanto, AWS DMS denomina los objetos de destino en mayúsculas de forma predeterminada. En lamayoría de casos, le convendría utilizar transformaciones para cambiar los nombres de esquemas,tablas y columnas a minúsculas.

Para obtener más consejos, consulte la sección de resolución de problemas de AWS DMS en la Guía delusuario de AWS DMS.

Para solucionar problemas específicos de Oracle, consulte la sección de resolución de problemas deOracle:

Solución de problemas específicos de Oracle

Para solucionar problemas de PostgreSQL, consulte la sección de resolución de problemas dePostgreSQL:

Solución de problemas específicos de PostgreSQL

Version 1/1/2016116

AWS Database Migration ServiceGuía de la migración paso a paso

Requisitos previos

Migración de un Amazon RDS paraOracle Database a Amazon Redshift

Esta guía le servirá de introducción para la migración de bases de datos heterogéneas de Amazon RDS forOracle a Amazon Redshift con AWS Database Migration Service (AWS DMS) y AWS Schema ConversionTool (AWS SCT). Este ejercicio de introducción no cubre todas las situaciones, pero ofrece una buenadescripción de los pasos que se deben seguir en la migración.

Es importante saber que AWS DMS y AWS SCT son dos herramientas diferentes y atienden a diferentesnecesidades. No interactúan entre sí en el proceso de migración. A grandes rasgos, los pasos de estamigración son los siguientes:

1. Usar AWS SCT para lo siguiente:• Ejecutar el informe de conversión de Oracle a Amazon Redshift para identificar los problemas, las

limitaciones y las acciones necesarios en la conversión de esquemas.• Generar los scripts de esquema y aplicarlos al destino antes de realizar la carga de datos

mediante AWS DMS. AWS SCT realiza las conversiones de código necesarias para objetos comoprocedimientos y vistas.

2. Identificar e implementar soluciones para los problemas que notifica AWS SCT.3. Desactivar claves externas u otras restricciones que podrían influir en la carga de datos de AWS DMS.4. AWS DMS carga los datos desde el origen al destino mediante el método Full Load. Pese a que AWS

DMS es capaz de crear objetos en el destino durante la carga, se basa en un enfoque minimalista paramigrar los datos de forma eficiente por lo que no copia la totalidad de la estructura del esquema desdeel origen al destino.

5. Tras la migración, puede realizar actividades como crear índices adicionales, habilitar claves externas yrealizar los cambios necesarios en la aplicación para que apunte a la nueva base de datos.

Esta guía utiliza una plantilla de AWS CloudFormation personalizada para crear instancias de base dedatos de RDS para Oracle y Amazon Redshift. Después utiliza un script de comando de SQL para instalarun esquema de ejemplo y datos en la instancia de base de datos de Oracle RDS que se va a migrar aAmazon Redshift más adelante.

Para completar esta guía se necesitan dos horas aproximadamente. Asegúrese de seguir las instruccionespara eliminar los recursos al final de esta guía con el fin de evitar cargos adicionales.

Temas• Requisitos previos (p. 117)• Arquitectura de migración (p. 118)• Migración paso a paso (p. 120)• Pasos siguientes (p. 153)• Referencias (p. 153)

Requisitos previosLos siguientes requisitos previos también son necesarios para completar esta guía:

Version 1/1/2016117

AWS Database Migration ServiceGuía de la migración paso a paso

Arquitectura de migración

• Conocer Amazon RDS, Amazon Redshift, las tecnologías de base de datos aplicables y SQL.• Los scripts personalizados que incluyen la creación de las tablas que se van a migrar y las consultas

SQL para confirmar la migración se enumeran a continuación:• Instrucciones de SQL para generar un esquema de SH• Plantilla de AWS CloudFormation

Cada uno de los pasos de la guía también contiene un enlace para descargar el archivo relevante oincluye la consulta exacta del paso.

• Una cuenta de AWS con las credenciales de AWS Identity and Access Management (IAM) con las quepodrá iniciar instancias de RDS, AWS Database Migration Service (AWS DMS) y clústeres de AmazonRedshift en su región de AWS. Para obtener información sobre las credenciales de IAM, consulte lainformación sobre cómo crear un usuario de IAM.

• Conocimientos básicos del servicio Amazon Virtual Private Cloud (Amazon VPC) y de los grupos deseguridad. Para obtener información sobre cómo utilizar Amazon VPC con Amazon RDS, consulte lasección sobre Virtual Private Cloud (VPC) y Amazon RDS. Para obtener información sobre los gruposde seguridad de Amazon RDS, consulte la sección sobre grupos de seguridad de Amazon RDS. Paraobtener información sobre cómo utilizar Amazon Redshift en una VPC, consulte la sección sobreadministración de clústeres en Amazon Virtual Private Cloud (VPC).

• Conocimiento de las características compatibles y las limitaciones de AWS DMS. Para obtenerinformación acerca de AWS DMS, consulte la sección que explica qué es AWS Database MigrationService.

• Conocimientos sobre las opciones conversión del tipo de datos admitidas para Oracle y AmazonRedshift. Para obtener información sobre los tipos de datos para Oracle como origen, consulte la secciónsobre cómo usar una base de datos de Oracle como origen para AWS Database Migration Service. Paraobtener información sobre los tipos de datos para Amazon Redshift como destino, consulte la secciónsobre cómo usar una base de datos de Amazon Redshift como destino para AWS Database MigrationService .

Para obtener más información sobre AWS DMS, consulte la documentación de AWS DMS.

Arquitectura de migraciónEsta guía utiliza AWS CloudFormation para crear una topología de red sencilla para la migración de basesde datos que incluya la base de datos de origen, la instancia de replicación y la base de datos de destinoen la misma VPC. Para obtener más información sobre AWS CloudFormation, consulte la documentaciónde CloudFormation.

Aprovisionamos los recursos de AWS que se necesitan para esta guía de AWS DMS través de AWSCloudFormation. Estos recursos incluyen una VPC y una instancia de Amazon RDS para Oracle y unclúster de Amazon Redshift. Realizamos el aprovisionamiento a través de CloudFormation porquesimplifica el proceso, por lo que podemos concentrarnos en tareas relacionadas con la migración de datos.Cuando crea una pila a partir de una plantilla de CloudFormation, esta aprovisiona los siguientes recursos:

• Una VPC con CIDR (10.0.0.0/24) con dos subredes públicas en su región, DBSubnet1 en la dirección10.0.0.0/26 en la zona de disponibilidad (AZ) 1 y DBSubnet2 en la dirección 10.0.0.64/26, en AZ 12.

• Un grupo de subred de base de datos que incluye DBSubnet1 y DBSubnet2.• Oracle RDS Standard Edition Two con estas opciones de implementación:

• Licencia incluida• Configuración de Single-AZ• db.m3.medium o clase de instancia equivalente• Puerto 1521

Version 1/1/2016118

AWS Database Migration ServiceGuía de la migración paso a paso

Arquitectura de migración

• Opción y grupos de parámetros predeterminados• Clúster de Amazon Redshift con estas opciones de implementación:

• dc1.large• Puerto 5439• Grupo de parámetros predeterminado

• Un grupo de seguridad con acceso desde un equipo o 0.0.0.0/0 (acceso desde cualquier lugar) enfunción del parámetro de entrada

Hemos diseñado la plantilla CloudFormation para que el usuario no tenga que intervenir demasiado.Aprovisiona los recursos necesarios de AWS con las configuraciones mínimas recomendadas. Sinembargo, si desea cambiar algunas de las configuraciones y parámetros, como el bloque de VPC CIDR ylos tipos de instancia de Amazon RDS, no dude en actualizar la plantilla.

Utilizamos la consola de administración de AWS para aprovisionar los recursos de AWS DMS, como lainstancia de replicación, los puntos de enlace y las tareas. Puede instalar herramientas de cliente, comoSQL Workbench/J y AWS Schema Conversion Tool (AWS SCT) en su equipo local para conectarse a lasinstancias de Amazon RDS.

A continuación se presenta un ejemplo de la arquitectura de migración para esta guía.

Version 1/1/2016119

AWS Database Migration ServiceGuía de la migración paso a paso

Migración paso a paso

Migración paso a pasoEn las secciones siguientes, puede encontrar instrucciones paso a paso para migrar una base de datosAmazon RDS for Oracle Database a Amazon Redshift. Se presupone que antes de emprender estos pasosya ha preparado la base de datos de origen tal como se describe en las secciones anteriores.

Temas• Paso 1: Iniciar las instancias de RDS en una VPC con la plantilla de CloudFormation (p. 120)• Paso 2: Instalar las herramientas de SQL y AWS Schema Conversion Tool en su equipo

local (p. 125)• Paso 3: Comprobar la conectividad de la instancia de base de datos de Oracle y crear el esquema de

ejemplo (p. 128)• Paso 4: Probar la conectividad a la base de datos de Amazon Redshift (p. 132)• Paso 5: Utilizar AWS SCT para convertir un esquema de Oracle a Amazon Redshift (p. 133)• Paso 6: Validar la conversión de esquemas (p. 141)• Paso 7: Crear una instancia de replicación de AWS DMS (p. 142)• Paso 8: Crear los puntos de enlace de origen y destino de AWS DMS (p. 143)• Paso 9: Crear y ejecutar la tarea de migración de AWS DMS (p. 146)• Paso 10: Comprobar que la migración de datos se realizó correctamente (p. 150)• Paso 11: Eliminar los recursos de la guía (p. 152)

Paso 1: Iniciar las instancias de RDS en una VPC conla plantilla de CloudFormationEn primer lugar, necesita aprovisionar los recursos de AWS necesarios para esta guía.

Para utilizar AWS CloudFormation con el fin de crear recursos de Amazon RDS para esta guía

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS CloudFormation enhttps://console.aws.amazon.com/cloudformation.

2. Elija Create New Stack.3. En la página Select Template elija Specify an Amazon S3 template URL y pegue la siguiente URL en

el cuadro de texto adyacente:

https://dms-sbs.s3.amazonaws.com/Oracle_Redshift_For_DMSDemo.template

Version 1/1/2016120

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Iniciar las instancias de RDS enuna VPC con la plantilla de CloudFormation

4. Seleccione Next. En la página Specify Details proporcione los valores de los parámetros según semuestra a continuación.

Para este parámetro Haga lo siguiente

Nombre de la pila Escriba OracletoRedshiftDWusingDMS.

OracleDBName Facilite un nombre único para la base de datos. El nombredebe comenzar con una letra. El valor predeterminado esORCL.

Version 1/1/2016121

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Iniciar las instancias de RDS enuna VPC con la plantilla de CloudFormation

Para este parámetro Haga lo siguiente

OracleDBUsername Indique el usuario administrador (DBA) para administrarla instancia de Oracle. El valor predeterminado esoraadmin.

OracleDBPassword Especifique la contraseña para el usuario administrador. Elvalor predeterminado es oraadmin123

RedshiftDBName Facilite un nombre único para la base de datos. El nombredebe comenzar con una letra. El valor predeterminado estest.

RedshiftDBUsername Especifique la contraseña para el usuario maestro. El valorpredeterminado es Redshift#123.

ClientIP Especifique la dirección IP en formato CIDR (x.x.x.x/32)para el equipo local. Puede obtener la dirección IP enwhatsmyip.org. El grupo de seguridad de instancias deRDS permite entrar en esta dirección IP. Se puede teneracceso al valor predeterminado desde cualquier lugar(0.0.0.0/0), lo cual no se recomienda; en esta guía, debeutilizar su dirección IP.

Version 1/1/2016122

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Iniciar las instancias de RDS enuna VPC con la plantilla de CloudFormation

5. Seleccione Next. En la página Options, seleccione Next.6. En la página Review, revise los detalles y, si son correctos, elija Create.

Version 1/1/2016123

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Iniciar las instancias de RDS enuna VPC con la plantilla de CloudFormation

Version 1/1/2016124

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 2: Instalar las herramientas de SQL y AWSSchema Conversion Tool en su equipo local

7. AWS puede tardar aproximadamente 20 minutos o más en crear la pila con una instancia AmazonRDS para Oracle y un clúster de Amazon Redshift.

8. Una vez que haya creado la pila, seleccione la pila OracletoRedshiftDWusingDMS y, a continuación,seleccione la vista Outputs. Registre las cadenas de conexión de JDBC, OracleJDBCConnectionStringy RedshiftJDBCConnectionString, para utilizarlas más tarde en esta guía para conectarse a las basesde datos de Oracle y Amazon Redshift.

Paso 2: Instalar las herramientas de SQL y AWSSchema Conversion Tool en su equipo localA continuación, debe instalar un cliente SQL y AWS SCT en el equipo local.

En esta guía, suponemos que va a utilizar el cliente SQL Workbench/J para conectarse a instancias RDSpara validar la migración.

Version 1/1/2016125

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 2: Instalar las herramientas de SQL y AWSSchema Conversion Tool en su equipo local

Para instalar el software de cliente SQL

1. Descargue SQL Workbench/J desde el sitio web de SQL Workbench/J e instálelo en su equipo local.Este cliente SQL es gratuito y de código abierto, además es independiente del sistema de gestión debases de datos.

2. Descargue el controlador JDBC de Oracle Database 12.1.0.2 (ojdbc7.jar).3. Descargue el controlador de Amazon Redshift (RedshiftJDBC41-1.1.17.1017.jar).4. Cuando se utiliza SQL Workbench/J, hay que configurar controladores de JDBC para Oracle y

Amazon Redshift para poder establecer la conectividad, tal como se describe a continuación.

1. En SQL Workbench/J seleccione File y después Manage Drivers.2. En la lista de controladores seleccione Oracle.3. Seleccione el icono Open y, a continuación, el archivo ojdbc.jar que ha descargado en el paso

anterior. Seleccione Aceptar.

4. En la lista de controladores seleccione Redshift.5. Seleccione el icono Open y, a continuación, el controlador JDBC para Amazon Redshift que ha

descargado en el paso anterior. Seleccione Aceptar.

Version 1/1/2016126

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 2: Instalar las herramientas de SQL y AWSSchema Conversion Tool en su equipo local

A continuación, instale AWS SCT y los controladores de JDBC necesarios.

Para instalar AWS SCT y los controladores de JDBC necesarios

1. Descargue AWS SCT desde Instalar y actualizar AWS Schema Conversion Tool en la Guía delusuario de AWS Schema Conversion Tool.

2. Siga las instrucciones para instalar AWS SCT. De forma predeterminada, la herramienta se instala enel directorio C:\Program Files\AWS Schema Conversion Tool\AWS.

3. Iniciar AWS SCT.4. En AWS SCT elija Global Settings en Settings.5. Seleccione Settings, Global Settings, elija Drivers y, a continuación, seleccione Browse para Oracle

Driver Path. Busque el controlador JDBC de Oracle y seleccione OK.6. Elija Browse para Amazon Redshift Driver Path. Busque el controlador JDBC para Amazon Redshift y

seleccione OK. Seleccione OK para cerrar el cuadro de diálogo.

Version 1/1/2016127

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Comprobar la conectividad de la instancia debase de datos de Oracle y crear el esquema de ejemplo

Paso 3: Comprobar la conectividad de la instanciade base de datos de Oracle y crear el esquema deejemploDespués de crear la pila de CloudFormation, pruebe la conexión a la instancia de base de datos de Oraclemediante SQL Workbench/J y, a continuación, cree el esquema de ejemplo.

Para probar la conexión a la instancia de base de datos de Oracle con SQL Workbench/J y crearel esquema de ejemplo

1. En SQL Workbench/J seleccione File y después Connect window. Cree un nuevo perfil de conexióncon la información siguiente.

Para este parámetro Haga lo siguiente

New profile name Escriba RDSOracleConnection.

Controlador Elija Oracle (oracle.jdbc.OracleDriver).

Version 1/1/2016128

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Comprobar la conectividad de la instancia debase de datos de Oracle y crear el esquema de ejemplo

Para este parámetro Haga lo siguiente

URL Utilice el valor OracleJDBCConnectionString que registróal examinar la información sobre los resultados de la pilade DMSdemo en un paso anterior.

Nombre de usuario Escriba oraadmin.

Contraseña Escriba oraadmin123.

2. Pruebe la conexión seleccionando Test. Seleccione OK para cerrar el cuadro de diálogo y luego OKpara crear el perfil de conexión.

Version 1/1/2016129

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Comprobar la conectividad de la instancia debase de datos de Oracle y crear el esquema de ejemplo

Note

Si la conexión no se realiza correctamente, asegúrese de que la dirección IP que asignó alcrear la plantilla de CloudFormation es aquella desde la que intenta establecer la conexión.Este problema es el más habitual cuando intenta conectarse a una instancia.

3. Cree el esquema de SH que utilizará para la migración mediante un script personalizado. Elscript de SQL que proporcionó AWS se encuentra en https://dms-sbs.s3.amazonaws.com/Oraclesalesstarschema.sql.

1. Abra el script SQL proporcionado en un editor de texto. Copie todo el script.2. En SQL Workbench/J, pegue el script de SQL en la ventana Default.wksp donde aparece

Statement 1.3. Elija SQL y después Execute All.

Version 1/1/2016130

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Comprobar la conectividad de la instancia debase de datos de Oracle y crear el esquema de ejemplo

4. Compruebe que los tipos de objeto y el recuento del esquema de SH se crearon correctamente; paraello, ejecute la siguiente consulta SQL.

Select OBJECT_TYPE, COUNT(*) from dba_OBJECTS where owner='SH' GROUP BY OBJECT_TYPE;

Los resultados de esta consulta deben ser similares a los siguientes.

Version 1/1/2016131

AWS Database Migration ServiceGuía de la migración paso a pasoPaso 4: Probar la conectividad a labase de datos de Amazon Redshift

OBJECT_TYPE | COUNT(*)----------------+---------INDEX PARTITION | 40TABLE PARTITION | 8TABLE | 5INDEX | 15

5. Compruebe el número total de tablas y el número de filas de cada tabla; para ello, ejecute la siguienteconsulta SQL.

Select table_name, num_rows from dba_tables where owner='SH' order by 1;

Los resultados de esta consulta deben ser similares a los siguientes.

TABLE_NAME | NUM_ROWS-----------+---------CHANNELS | 5CUSTOMERS | 8PRODUCTS | 66PROMOTIONS | 503SALES | 553

6. Compruebe la integridad de las tablas. Compruebe el número de ventas realizadas en los diferentescanales; para ello, ejecute la siguiente consulta SQL.

Select b.channel_desc,count(*) from SH.SALES a,SH.CHANNELS b where a.channel_id=b.channel_id group by b.channel_desc order by 1;

Los resultados de esta consulta deben ser similares a los siguientes.

CHANNEL_DESC | COUNT(*)-------------+---------Direct Sales | 710Internet | 52Partners | 344

Note

Los ejemplos anteriores son representativos de las consultas de validación. Cuando lleve a cabouna migración real, debe desarrollar consultas similares para validar el esquema y la integridad delos datos.

Paso 4: Probar la conectividad a la base de datos deAmazon RedshiftA continuación, pruebe la conexión a la base de datos de Amazon Redshift.

Para probar la conectividad a la base de datos de Amazon Redshift con SQL Workbench/J

1. En SQL Workbench/J seleccione File y después Connect window. Elija el icono de creación de unnuevo perfil de conexión. Conéctese a la base de datos de Amazon Redshift en SQL Workbench/J conla información que se indica a continuación.

Version 1/1/2016132

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS SCT para convertirun esquema de Oracle a Amazon Redshift

Para este parámetro Haga lo siguiente

New profile name Escriba RedshiftConnection.

Controlador Elija Redshift(com.amazon.redshift.jdbc42.Driver).

URL Utilice el valor RedshiftJDBCConnectionString que registróal examinar la información sobre los resultados de la pilade DMSdemo en un paso anterior.

Nombre de usuario Escriba redshiftadmin.

Contraseña Escriba Redshift#123.

2. Pruebe la conexión seleccionando Test. Seleccione OK para cerrar el cuadro de diálogo y luego OKpara crear el perfil de conexión.

Note

Si la conexión no se realiza correctamente, asegúrese de que la dirección IP que asignó alcrear la plantilla de CloudFormation es aquella desde la que intenta establecer la conexión.Este problema es el más habitual cuando intenta conectarse a una instancia.

3. Compruebe la conectividad a la instancia de base de datos de Amazon Redshift; para ello, ejecute uncomando SQL de ejemplo, como select current_date;.

Paso 5: Utilizar AWS SCT para convertir un esquemade Oracle a Amazon RedshiftAntes de migrar datos a Amazon Redshift, convierta el esquema de Oracle a un esquema de AmazonRedshift, tal como se describe a continuación.

Version 1/1/2016133

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS SCT para convertirun esquema de Oracle a Amazon Redshift

Para convertir un esquema de Oracle a un esquema de Amazon Redshift con AWS SCT

1. Iniciar AWS SCT. En AWS SCT seleccione File y, a continuación, elija New Project. Cree un nuevoproyecto llamado DWSchemaMigrationDemoProject. Indique la siguiente información en la ventanaNew Project y, a continuación, seleccione OK.

Para este parámetro Haga lo siguiente

Project Name Escriba DWSchemaMigrationDemoProject.

Ubicación Utilice la carpeta Projects predeterminada y la opción DataWarehouse (OLAP) predeterminada.

Source Database Engine Elija Oracle DW.

Target Database Engine Seleccione Amazon Redshift.

2. Elija Connect to Oracle. En el cuadro de diálogo Connect to Oracle escriba la información siguiente y,a continuación, elija Test Connection.

Para este parámetro Haga lo siguiente

Type Elija SID.

Server name Utilice el valor OracleJDBCConnectionString que habíautilizado para conectarse a la instancia de base dedatos de Oracle, pero quite la información del prefijode JDBC y el sufijo del puerto y nombre de la basede datos. Por ejemplo, una cadena de conexión deejemplo que se utilice con SQL Workbench/J puede ser "jdbc:oracle:thin:@abc12345678.cqi87654abc.us-west-2.rds.amazonaws.com:1521:ORCL". Para AWSSCT Server name, debe quitar "jdbc:oracle:thin:@"y ":1521:ORCL" y utilice tan solo el nombre del

Version 1/1/2016134

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS SCT para convertirun esquema de Oracle a Amazon Redshift

Para este parámetro Haga lo siguienteservidor: "abc12345678.cqi87654abc.us-west-2.rds.amazonaws.com".

Server port Escriba 1521.

Oracle SID Escriba ORCL.

Nombre de usuario Escriba oraadmin.

Contraseña Escriba oraadmin123.

3. Seleccione OK para cerrar la alerta y, a continuación, seleccione OK para cerrar el cuadro de diálogoy comenzar la conexión a la instancia de base de datos de Oracle. La estructura de la base de datosen la instancia de base de datos de Oracle se muestra a continuación. Seleccione solo el esquema deSH.

Version 1/1/2016135

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS SCT para convertirun esquema de Oracle a Amazon Redshift

Note

Si el esquema de SH no aparece en la lista, seleccione Actions y, a continuación, seleccioneRefresh from Database.

4. Elija Connect to Amazon Redshift. En el cuadro de diálogo Connect to Amazon Redshift escriba lainformación siguiente y, a continuación, elija Test Connection.

Para este parámetro Haga lo siguiente

Type Elija SID.

Server name Utilice el valor RedshiftJDBCConnectionString que habíautilizado para conectarse al clúster de Amazon Redshift,pero quite la información del prefijo JDBC y el sufijodel puerto. Por ejemplo, una cadena de conexión deejemplo que se puede utilizar con SQL Workbench/Jpuede ser " jdbc:redshift://oracletoredshiftdwusingdms-redshiftcluster-abc123567.abc87654321.us-west-2.redshift.amazonaws.com:5439/test".Para AWS SCT Server name, elimine " jdbc:redshift://" y: 5439/test" y deje solo el nombredel servidor: "oracletoredshiftdwusingdms-

Version 1/1/2016136

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS SCT para convertirun esquema de Oracle a Amazon Redshift

Para este parámetro Haga lo siguienteredshiftcluster-abc123567.abc87654321.us-west-2.redshift.amazonaws.com"

Server port Escriba 5439.

Nombre de usuario Escriba redshiftadmin.

Contraseña Escriba Redshift#123.

AWS SCT analiza el esquema de SH y crea un informe sobre la evaluación de la migración de la basede datos para la conversión a Amazon Redshift.

5. Seleccione OK para cerrar la alerta y, a continuación, seleccione OK para cerrar el cuadro de diálogo ycomenzar la conexión a la instancia de base de datos de Amazon Redshift.

6. En la vista Oracle DW abra el menú contextual (haga clic con el botón derecho) del esquema SH yseleccione Create Report.

7. Revise el resumen del informe. Para guardar el informe, elija Save to CSV o Save to PDF.

El informe describe el tipo de objetos que se pueden convertir mediante AWS SCT, junto con losposibles problemas de migración y las medidas para resolver estos problemas. Para esta guía,debería aparecer algo similar a lo siguiente.

Version 1/1/2016137

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS SCT para convertirun esquema de Oracle a Amazon Redshift

Version 1/1/2016138

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS SCT para convertirun esquema de Oracle a Amazon Redshift

8. Haga clic en la pestaña Action Items. El informe describe el tipo de objetos que se pueden convertirmediante AWS SCT, junto con los posibles problemas de migración y las medidas para resolver estosproblemas. Para esta guía, debería aparecer algo similar a lo siguiente.

9. Abra el menú contextual (haga clic con el botón derecho) del elemento SH en la lista Schemas y, acontinuación, elija Collect Statistics. AWS SCT analiza el origen de datos para recomendar las mejoresclaves para el destino de la base de datos de Amazon Redshift. Para obtener más información,consulte la sección sobre cómo recopilar o cargar estadísticas para AWS Schema Conversion Tool.

10. Abra el menú contextual (haga clic con el botón derecho) del esquema SH y, a continuación,seleccione Convert schema.

11. Seleccione Yes para el mensaje de confirmación. AWS SCT convierte el esquema al formato de labase de datos de destino.

Version 1/1/2016139

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 5: Utilizar AWS SCT para convertirun esquema de Oracle a Amazon Redshift

Note

La selección de las claves de ordenación y las claves de distribución de Amazon Redshiftes fundamental para conseguir un rendimiento óptimo. Puede utilizar la administración declaves en AWS SCT para personalizar la selección de claves. Para esta guía, usamos losvalores predeterminados que recomienda AWS SCT. Para obtener más información, consultela sección que habla de optimizar Amazon Redshift mediante la utilización de AWS SchemaConversion Tool.

Version 1/1/2016140

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 6: Validar la conversión de esquemas

12. En la vista de Amazon Redshift abra el menú contextual (haga clic con el botón derecho) del esquemaSH y, a continuación, seleccione Apply to database para aplicar los scripts del esquema en la instanciade Amazon Redshift de destino.

13. Abra el menú contextual (haga clic con el botón derecho) del esquema SH y, a continuación,seleccione Refresh from Database para actualizar desde la base de datos de destino.

El esquema de base de datos ya se ha convertido e importado desde el origen al destino.

Paso 6: Validar la conversión de esquemasPara validar la conversión de esquemas, compare los objetos que se encuentra en las bases de datos deOracle y Amazon Redshift mediante SQL Workbench/J.

Para validar la conversión de esquemas con SQL Workbench/J

1. En SQL Workbench/J seleccione File y después Connect window. Seleccione el RedshiftConnectionque ha creado en un paso anterior. Seleccione Aceptar.

2. Ejecute el siguiente script para verificar el número de tipos de objeto y añadir al recuento el esquemade SH en la base de datos de destino de Amazon Redshift. Estos valores deben coincidir con elnúmero de objetos en la base de datos de origen de Oracle.

SELECT 'TABLE' AS OBJECT_TYPE, TABLE_NAME AS OBJECT_NAME, TABLE_SCHEMA AS OBJECT_SCHEMAFROM information_schema.TABLESWHERE TABLE_TYPE = 'BASE TABLE'AND OBJECT_SCHEMA = 'sh';

El resultado de esta consulta debe ser similar al siguiente.

object_type | object_name | object_schema------------+-------------+--------------TABLE | channels | sh TABLE | customers | sh TABLE | products | sh TABLE | promotions | sh TABLE | sales | sh

3. Compruebe las claves de ordenación y distribución que se crearon en el clúster de Amazon Redshiftcon la siguiente consulta.

set search_path to '$user', 'public', 'sh';

SELECT tablename, "column", TYPE, encoding, distkey, sortkey, "notnull"FROM pg_table_defWHERE (distkey = TRUE OR sortkey <> 0);

Los resultados de la consulta reflejan las selecciones de claves de distribución (distkey) y claves deordenación (sortkey) mediante la administración de claves de AWS SCT.

Version 1/1/2016141

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 7: Crear una instancia de replicación de AWS DMS

tablename | column | type | encoding | distkey | sortkey | notnull-----------+---------------------+-----------------------------+----------+---------+---------+--------channels | channel_id | numeric(38,18) | none | true | 1 | true customers | cust_id | numeric(38,18) | none | false | 4 | true customers | cust_gender | character(2) | none | false | 1 | true customers | cust_year_of_birth | smallint | none | false | 3 | true customers | cust_marital_status | character varying(40) | none | false | 2 | false products | prod_id | integer | none | true | 4 | true products | prod_subcategory | character varying(100) | none | false | 3 | true products | prod_category | character varying(100) | none | false | 2 | true products | prod_status | character varying(40) | none | false | 1 | true promotions | promo_id | integer | none | true | 1 | true sales | prod_id | numeric(38,18) | none | false | 4 | true sales | cust_id | numeric(38,18) | none | false | 3 | true sales | time_id | timestamp without time zone | none | true | 1 | true sales | channel_id | numeric(38,18) | none | false | 2 | true sales | promo_id | numeric(38,18) | none | false | 5 | true

Paso 7: Crear una instancia de replicación de AWSDMSDespués de validar la estructura de los esquemas entre las bases de datos de origen y de destino, talcomo se ha descrito antes, puede pasar a la parte fundamental de esta guía, que es la migración de datos.La siguiente ilustración muestra una vista detallada del proceso de migración.

Las instancias de replicación de DMS realizan la migración de datos real entre el origen y el destino. Lainstancia de replicación también almacena en caché los registros de transacción durante la migración. Lacapacidad de la CPU y de la memoria de una instancia de replicación influirá en el tiempo necesario parallevar a cabo la migración.

Version 1/1/2016142

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 8: Crear los puntos de enlacede origen y destino de AWS DMS

Para crear una instancia de replicación de AWS DMS

1. Inicie sesión en la consola de administración de AWS, abra la consola de AWS DMS en https://console.aws.amazon.com/dms/ y, a continuación, seleccione Create Migration. Si ha iniciado sesióncomo usuario de AWS Identity and Access Management (IAM), será preciso que disponga de lospermisos adecuados para tener acceso a AWS DMS. Para obtener más información sobre lospermisos necesarios, consulte la sección sobre permisos de IAM necesarios para utilizar AWS DMS.

2. Seleccione Create migration para comenzar la migración de una base de datos.3. En la página Welcome, seleccione Next.4. En la página Create replication instance especifique la información de la instancia de replicación, tal y

como se muestra a continuación.

Para este parámetro Haga lo siguiente

Nombre Escriba DMSdemo-repserver.

Descripción Incluya una descripción breve, como Servidor dereplicación para demostraciones de DMS.

Instance class Seleccione dms.t2.medium. Esta clase de instancia eslo suficientemente grande como para migrar un conjuntopequeño de tablas.

VPC Seleccione OracletoRedshiftusingDMS, que es laVPC que creó la pila de CloudFormation.

Varias AZ Haga clic en No.

Publicly accessible Deje este elemento seleccionado.

5. En la sección Advanced, no toque los valores predeterminados y seleccione Next.

Paso 8: Crear los puntos de enlace de origen y destinode AWS DMSMientras se está creando la instancia de replicación, puede especificar los puntos de enlace de la basede datos de origen y destino con la consola de administración de AWS. Sin embargo, solo podrá probar laconectividad después de que se haya creado la instancia de replicación, porque esta instancia se utiliza enla conexión.

Para especificar los puntos de enlace de la base de datos de origen o de destino a con la consolade AWS

1. Especifique la información de la conexión para la base de datos de origen de Oracle y la base dedatos de destino de Amazon Redshift. La siguiente tabla describe la configuración del origen.

Para este parámetro Haga lo siguiente

Endpoint Identifier Escriba Orasource (el punto de enlace de Amazon RDSpara Oracle).

Source Engine Seleccione oracle.

Server name Facilite el nombre de instancia de la base dedatos de Oracle. Este nombre es el valor de

Version 1/1/2016143

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 8: Crear los puntos de enlacede origen y destino de AWS DMS

Para este parámetro Haga lo siguienteServer name que utilizó para AWS SCT, como,por ejemplo, "abc123567.abc87654321.us-west-2.rds.amazonaws.com".

Port (Puerto) Escriba 1521.

SSL mode Elija None.

Nombre de usuario Escriba oraadmin.

Contraseña Escriba oraadmin123.

SID Escriba ORCL.

La tabla siguiente describe la configuración del destino.

Para este parámetro Haga lo siguiente

Endpoint Identifier Escriba Redshifttarget (el punto de enlace deAmazon Redshift).

Target Engine Elija redshift.

Servername Facilite el nombre de la instancia de la base dedatos de Amazon Redshift. Este nombre es el valorde Server name que utilizó para AWS SCT, como,por ejemplo "oracletoredshiftdwusingdms-redshiftcluster-abc123567.abc87654321.us-west-2.redshift.amazonaws.com"..

Port (Puerto) Escriba 5439.

SSL mode Elija None.

Nombre de usuario Escriba redshiftadmin.

Contraseña Escriba Redshift#123.

Database name Escriba test.

La página completada debe ser similar a la siguiente.

Version 1/1/2016144

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 8: Crear los puntos de enlacede origen y destino de AWS DMS

2. Espere a que el estado diga Replication instance created successfully.3. Para probar las conexiones de origen y de destino, seleccione Run Test para las conexiones de origen

y de destino.4. Seleccione Siguiente.

Version 1/1/2016145

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 9: Crear y ejecutar la tarea de migración de AWS DMS

Paso 9: Crear y ejecutar la tarea de migración de AWSDMSCon una tarea de AWS DMS, puede especificar qué esquema se va a migrar y el tipo de migración. Puedemigrar los datos existentes, migrar los datos existentes y replicar los cambios en curso o bien solo replicarlos cambios. En esta guía solo se migran los datos existentes.

Para crear una tarea de migración

1. En la página Create Task especifique las opciones de la tarea. La tabla siguiente describe laconfiguración.

Para este parámetro Haga lo siguiente

Task name Escriba migrateSHschema.

Instancia de replicación Muestra DMSdemo-repserver (la instancia de replicaciónde AWS DMS que se creó en uno de los pasos anteriores).

Punto de enlace de origen Muestra orasource (el punto de enlace de Amazon RDSfor Oracle).

Punto de enlace de destino Muestra redshifttarget (el punto de enlace deAmazon Redshift).

Migration type Seleccione la opción Migrate existing data.

Start task on create Seleccione esta opción.

La página debe ser similar a la siguiente.

Version 1/1/2016146

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 9: Crear y ejecutar la tarea de migración de AWS DMS

2. En la sección Task Settings, especifique la configuración tal y como se muestra en la siguiente tabla.

Para este parámetro Haga lo siguiente

Target table preparation mode Elija Do nothing.

Include LOB columns in replication Seleccione Limited LOB mode.

Max LOB size (kb) Acepte los valores predeterminados (32).

La sección debe ser similar a la siguiente.

Version 1/1/2016147

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 9: Crear y ejecutar la tarea de migración de AWS DMS

3. En la sección Selection rules, especifique la configuración tal y como se muestra en la siguiente tabla.

Para este parámetro Haga lo siguiente

Schema name is Seleccione Especificar un esquema.

Schema name is like Escriba SH%.

Table name is like Tipo %.

Acción Seleccione Incluir.

La sección debe ser similar a la siguiente:

Version 1/1/2016148

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 9: Crear y ejecutar la tarea de migración de AWS DMS

4. Elija Add selection rule.5. Seleccione Create task.

5. Seleccione Create task. La tarea comienza inmediatamente. La sección Tasks le muestra el estado de latarea de migración.

Version 1/1/2016149

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 10: Comprobar que la migraciónde datos se realizó correctamente

Paso 10: Comprobar que la migración de datos serealizó correctamenteCuando la migración se complete, puede comparar los resultados de la tarea con los resultadosesperados.

Para comparar los resultados de la tarea de migración con los resultados esperados

1. En el panel de navegación elija Tasks.2. Seleccione la tarea de migración (migrateSHschema).3. Seleccione la pestaña Table statistics que se muestra a continuación.

Version 1/1/2016150

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 10: Comprobar que la migraciónde datos se realizó correctamente

4. Conéctese a la instancia de Amazon Redshift mediante SQL Workbench/J y, a continuación,compruebe si se han migrado correctamente las tablas de la base de datos desde Oracle a AmazonRedshift; para ello, ejecute el script de SQL que se muestra a continuación.

select "table", tbl_rowsfrom svv_table_infowhereSCHEMA = 'sh'

Version 1/1/2016151

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 11: Eliminar los recursos de la guía

order by 1;

Los resultados deben ser similares a los siguientes.

table | tbl_rows-----------+---------channels | 5customers | 8products | 66promotions | 503sales | 1106

5. Para comprobar si los resultados de las tablas y el número de filas de la consulta anterior coincidencon lo que se esperaba para RDS Oracle, compare los resultados con los de los pasos anteriores.

6. Ejecute la siguiente consulta para comprobar la relación en las tablas; esta consulta comprueba losdepartamentos con empleados con un valor superior a 10.

Select b.channel_desc,count(*) from SH.SALES a,SH.CHANNELS b where a.channel_id=b.channel_id group by b.channel_desc order by 1;

El resultado de esta consulta debe ser similar al siguiente.

channel_desc | count-------------+------Direct Sales | 355Internet | 26Partners | 172

7. Compruebe la columna de codificación de compresión.

DMS utilizar una operación COPY de Amazon Redshift para cargar los datos. De formapredeterminada, el comando COPY se aplica automáticamente a la compresión cuando se realizauna carga en una tabla de destino vacía. Los datos de ejemplo en esta guía no son lo suficientementegrandes para aplicar la compresión automática. Cuando migre conjuntos de datos más grandes, conCOPY, se aplica la compresión automática.

Para obtener más información sobre la compresión automática en las tablas de Amazon Redshift,consulte la sección sobre cómo cargar tablas con compresión automática.

Para ver las codificaciones de compresión, ejecute la siguiente consulta.

SELECT *FROM pg_table_defWHERE schemaname = 'sh’;

Ahora ya ha completado correctamente la migración de una base de datos desde una instancia de labases de datos Amazon RDS for Oracle a Amazon Redshift.

Paso 11: Eliminar los recursos de la guíaUna vez que haya completado esta guía, lleve a cabo los pasos siguientes para evitar que se le apliquenotros cargos por los recursos de AWS que utilice en la guía. Es necesario realizar los pasos por orden,porque algunos recursos no se pueden eliminar si dependen de otros recursos.

Version 1/1/2016152

AWS Database Migration ServiceGuía de la migración paso a paso

Pasos siguientes

Para eliminar los recursos de AWS DMS

1. En el panel de navegación haga clic en Tasks, seleccione la tarea de migración (migratehrschema)y, a continuación, seleccione Delete.

2. En el panel de navegación seleccione Endpoints, seleccione el punto de enlace de Oracle(orasource) y, a continuación, elija Delete.

3. Seleccione el punto de enlace de destino de Amazon Redshift (redshifttarget) y, a continuación,seleccione Delete.

4. En el panel de navegación elija Replications instances, seleccione la instancia de replicación(DMSdemo-repserver) y, a continuación, elija Delete.

A continuación, es preciso que elimine la pila de AWS CloudFormation, DMSdemo.

Para eliminar la pila de AWS CloudFormation

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS CloudFormation enhttps://console.aws.amazon.com/cloudformation.

Si ha iniciado sesión como usuario de IAM, será preciso que disponga de los permisos adecuadospara tener acceso a AWS CloudFormation.

2. Seleccione la pila de CloudFormation, OracletoRedshiftDWusingDMS.3. En Actions seleccione Delete stack.

El estado de la pila cambia a DELETE_IN_PROGRESS mientras AWS CloudFormation limpia los recursosasociados a la pila de OracletoRedshiftDWusingDMS. Cuando AWS CloudFormation termina delimpiar recursos, quita la pila de la lista.

Pasos siguientesPuede explorar otras características de AWS DMS que no se incluyeron en esta guía, como, por ejemplo,las siguientes:

• La captura de datos de cambios (CDC) de AWS DMS, para la replicación de datos continuada.• Las acciones de transformación que le permiten especificar y aplicar transformaciones a la tabla o

esquema seleccionados como parte del proceso de migración.

Para obtener más información, consulte la documentación de AWS DMS.

ReferenciasLa documentación y esquemas de ejemplo siguientes son referencias útiles para esta guía:

• Documentación de AWS DMS• Documentación de AWS SCT• Documentación de Amazon Redshift• Instrucciones de SQL para generar un esquema de SH• Plantilla de AWS CloudFormation• Esquemas de ejemplo de Oracle

Version 1/1/2016153

AWS Database Migration ServiceGuía de la migración paso a paso

Migrar bases de datos compatiblescon MySQL a AWS

Amazon Web Services (AWS) ofrece varios servicios que le permiten ejecutar una base de datoscompatible con MySQL en AWS. Amazon Relational Database Service (Amazon RDS) admite bases dedatos compatibles con MySQL, incluidas MySQL, MariaDB y Amazon Aurora MySQL. AWS Elastic CloudComputing Service (EC2) proporciona plataformas para la ejecución de bases de datos compatibles conMySQL.

Migrar desde Solución

Una instancia de base dedatos de RDS MySQL

Puede migrar datos directamente a partir de una instantánea debase de datos MySQL en Amazon RDS a un clúster de base dedatos de Amazon Aurora MySQL. Para obtener más información,consulte Migración de datos de una instancia de base de datos deAmazon RDS MySQL a un clúster de base de datos de Amazon AuroraMySQL (p. 166).

Una base de datos de MySQLexterna a Amazon RDS

Si la base de datos admite espacios de tablas InnoDB o MyISAM,dispone de estas opciones para migrar los datos a un clúster de basede datos Amazon Aurora MySQL:

• Puede crear un volcado de los datos con la utilidad mysqldump y,a continuación, importar esos datos a un clúster de base de datosAmazon Aurora MySQL existente.

• Puede copiar los archivos de origen de su base de datos en unbucket de Amazon S3 (S3) y, a continuación, restablecer un clústerde base de datos Amazon Aurora MySQL a partir de dichos archivos.Esta opción puede ser bastante más rápida que migrar los datos conmysqldump.

Para obtener más información, consulte Migración de MySQL aAmazon Aurora MySQL con mysqldump (p. 166).

Una bases de datos que nosea compatible con MySQL

También puede utilizar AWS Database Migration Service (AWS DMS)para migrar datos desde una base de datos MySQL. Sin embargo, enel caso de las bases de datos muy grandes, se puede reducir bastanteel tiempo necesario para migrar los datos si se copian los archivosde origen para la base de datos y se restauran estos archivos a unainstancia de base de datos de Amazon Aurora MySQL tal y como sedescribe en Migración de datos desde una base de datos MySQLexterna a Amazon Aurora MySQL mediante Amazon S3 (p. 155).

Para obtener más información acerca de AWS DMS, consulte ¿Qué esAWS Database Migration Service?

Version 1/1/2016154

AWS Database Migration ServiceGuía de la migración paso a paso

Migración de datos desde una base de datos MySQLexterna a Amazon Aurora MySQL mediante Amazon S3

Migración de una base de datoscompatible con MySQL a AmazonAurora MySQL

Si la base de datos admite espacios de tablas InnoDB o MyISAM, dispone de estas opciones para migrarlos datos a un clúster de base de datos Amazon Aurora MySQL:

• Puede crear un volcado de los datos con la utilidad mysqldump y, a continuación, importar esos datos aun clúster de base de datos Amazon Aurora MySQL existente. Para obtener más información, consulteMigración de MySQL a Amazon Aurora MySQL con mysqldump (p. 166).

• Puede copiar los archivos de origen de la base de datos en un bucket de S3 y, a continuación, restaurarun clúster de base de datos de Amazon Aurora MySQL a partir de esos archivos. Esta opción puedeser bastante más rápida que migrar los datos con mysqldump. Para obtener más información, consulteMigración de datos desde una base de datos MySQL externa a Amazon Aurora MySQL medianteAmazon S3 (p. 155).

Migración de datos desde una base de datosMySQL externa a Amazon Aurora MySQL medianteAmazon S3

Puede copiar los archivos de origen de la base de datos MySQL de origen versión 5.5 o 5.6 en un bucketde S3 y, a continuación, restaurar un clúster de base de datos de Amazon Aurora MySQL a partir dedichos archivos.

Esta opción puede ser bastante más rápida que migrar datos mediante mysqldump, ya que mysqldumprepite todos los comandos para volver a crear el esquema y los datos de la base de datos de origen en elnuevo clúster de base de datos de Amazon Aurora MySQL. Al copiar los archivos de datos de MySQL deorigen, Amazon Aurora MySQL puede utilizar inmediatamente esos archivos como datos para el clúster debase de datos.

Note

La región Asia Pacífico (Mumbai) no admite el restablecimiento de un clúster de base de datos deAmazon Aurora MySQL a partir de los archivos de backup de un bucket de S3.

Amazon Aurora MySQL no restaura todo lo que contiene la base de datos. Debe guardar el esquema y losvalores de la base de datos correspondientes a los siguientes elementos de la base de datos MySQL oMariaDB de origen y añadirlos al clúster de base de datos Amazon Aurora MySQL restaurado una vez quelo haya creado.

• Cuentas de usuario• Funciones• Procedimientos almacenados• Información de zona horaria. Esta información se carga desde el sistema operativo local del clúster de

base de datos Amazon Aurora MySQL.

Version 1/1/2016155

AWS Database Migration ServiceGuía de la migración paso a paso

Requisitos previos

Requisitos previosAntes de copiar los datos en un bucket de S3 y restaurar un clúster de base de datos a partir de esosarchivos, debe hacer lo siguiente:

• Instale Percona XtraBackup en su servidor local.• Permita que Amazon Aurora MySQL obtenga acceso a su bucket de S3 en su nombre.

Instalación de Percona XtraBackupAmazon Aurora MySQL puede restaurar un clúster de base de datos a partir de archivos creadoscon Percona XtraBackup. Puede instalar Percona XtraBackup desde el sitio web de Percona https://www.percona.com/doc/percona-xtrabackup/2.4/installation.

Permisos necesariosPara migrar los datos de MySQL a un clúster de base de datos Amazon Aurora MySQL, se requierenvarios permisos:

• El usuario que solicita que Amazon RDS cree un nuevo clúster a partir de un bucket de S3 debe tenerpermiso para enumerar los buckets de su cuenta de AWS. Puede otorgar este permiso al usuariomediante una política de AWS Identity and Access Management (IAM).

• Amazon RDS requiere permiso para realizar acciones en su nombre y obtener acceso al bucket de S3en el que se almacenan los archivos utilizados para crear el clúster de base de datos de Amazon AuroraMySQL. Puede otorgar los permisos necesarios a Amazon RDS mediante un rol de servicio de IAM.

• El usuario que realiza la solicitud también debe tener permiso para enumerar los roles de IAM para sucuenta de AWS.

• Si el usuario que ha realizado la solicitud va a crear el rol de servicio de IAM o a solicitar que AmazonRDS lo cree (mediante la consola), entonces necesitará permiso para crear un rol de IAM para su cuentade AWS.

Por ejemplo, las siguientes políticas de IAM otorgan a un usuario el número mínimo necesario de permisospara usar la consola tanto para enumerar los roles de IAM, como para crear un rol de IAM y enumerar losbuckets de S3 para su cuenta.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "s3:ListBucket", "s3:ListObjects" ], "Resource": "*" } ]}

Además, para que un usuario pueda asociar un rol de IAM a un bucket de S3, el usuario de IAM debedisponer del permiso iam:PassRole para ese rol de IAM. Este permiso hace que un administrador puedarestringir los roles de IAM que un usuario puede asociar a buckets de S3.

Version 1/1/2016156

AWS Database Migration ServiceGuía de la migración paso a paso

Requisitos previos

Por ejemplo, la siguiente política de IAM permite a un usuario asociar el rol denominado S3Access a unbucket de S3.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowS3AccessRole", "Effect":"Allow", "Action":"iam:PassRole", "Resource":"arn:aws:iam::123456789012:role/S3Access" } ]}

Creación del rol de servicio de IAMPuede hacer que la consola de administración de Amazon RDS cree un rol por usted eligiendo la opciónCreate a New Role (se explica más adelante en este tema). Si selecciona esta opción y especifica unnombre para el nuevo rol, entonces Amazon RDS creará el rol de servicio de IAM necesario para queAmazon RDS pueda acceder a su bucket de S3 con el nombre que usted indique.

Como alternativa, puede crear el rol manualmente completando el siguiente procedimiento.

Para crear un rol de IAM para que Amazon RDS pueda acceder a S3

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

2. En el panel de navegación izquierdo, seleccione Roles.3. Elija Create New Role, especifique un valor en Role Name para el nuevo rol y, a continuación, elija

Next Step.4. En AWS Service Roles, busque Amazon RDS y elija Select.5. No seleccione una política para adjuntarla en el paso Attach Policy. En lugar de eso, elija Next Step.6. Revise la información del rol y, a continuación, seleccione Create Role.7. En la lista de roles, seleccione el nombre del rol que acaba de crear. Elija la pestaña Permissions.8. Elija Inline Policies. Puesto que el nuevo rol no tiene ninguna política asignada, se le pedirá que la

cree. Haga clic en el enlace para crear una nueva política.9. En la página Set Permissions, elija Custom Policy y después elija Select.10. Escriba un valor de Policy Name, por ejemplo S3-bucket-policy. Añada el siguiente código en

Policy Document y reemplace <bucket name> por el nombre del bucket de S3 al que desea permitirel acceso.

En el documento de la política también puede incluir un prefijo para el nombre de archivo. Si especificaun prefijo, Amazon Aurora MySQL creará el clúster de base de datos con los archivos del bucket deS3 que empiecen con dicho prefijo. Si no especifica ningún prefijo, Amazon Aurora MySQL creará elclúster de base de datos con todos los archivos del bucket de S3.

Para especificar un prefijo, sustituya <prefix> por el prefijo de sus nombres de archivo. Incluya elasterisco (*) después del prefijo. Si no desea especificar ningún prefijo, especifique únicamente unasterisco.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow",

Version 1/1/2016157

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 1: Realizar copias de seguridad de archivospara restaurarlos como clúster de base de datos

"Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::<bucket name>" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<bucket name>/<prefix>*" ] } ]}

11. Seleccione Apply Policy.

Paso 1: Realizar copias de seguridad de archivos pararestaurarlos como clúster de base de datosPara crear un backup de los archivos de la base de datos MySQL que se puedan restaurar desde S3para crear un clúster de base de datos Amazon Aurora MySQL, use la utilidad Percona Xtrabackup(innobackupex) para realizar un backup de la base de datos.

Por ejemplo, el siguiente comando crea un backup de una base de datos de MySQL y almacena losarchivos en la carpeta /s3-restore/backup.

innobackupex --user=myuser --password=<password> --no-timestamp /s3-restore/backup

Si desea comprimir su backup en un solo archivo (que se puede dividir si es necesario), puede utilizar laopción --stream para guardar el backup en uno de los siguientes formatos:

• Gzip (.gz)• tar (.tar)• Percona xbstream (.xbstream)

Por ejemplo, el siguiente comando crea una copia de seguridad de la base de datos MySQL dividida envarios archivos Gzip. Los valores de los parámetros que se muestran son para una base de datos deprueba pequeña; en su caso, debe determinar los valores de los parámetros necesarios.

innobackupex --user=myuser --password=<password> --stream=tar \ /mydata/s3-restore/backup | split -d --bytes=512000 \ - /mydata/s3-restore/backup3/backup.tar.gz

Por ejemplo, el siguiente comando crea una copia de seguridad de la base de datos MySQL dividida envarios archivos tar.

innobackupex --user=myuser --password=<password> --stream=tar \ /mydata/s3-restore/backup | split -d --bytes=512000 \ - /mydata/s3-restore/backup3/backup.tar

Version 1/1/2016158

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 2: Copiar archivos en un bucket de Amazon S3

Por ejemplo, el siguiente comando crea una copia de seguridad de la base de datos MySQL dividida envarios archivos xbstream.

innobackupex --stream=xbstream \ /mydata/s3-restore/backup | split -d --bytes=512000 \ - /mydata/s3-restore/backup/backup.xbstream

S3 limita el tamaño de un archivo cargado en un bucket a 5 terabytes (TB). Si los datos del backup de subase de datos superan los 5 TB, entonces deberá utilizar el comando split para dividir los archivos debackup en varios archivos que ocupen menos de 5 TB.

Amazon Aurora MySQL no admite backups parciales creados con Percona Xtrabackup. No puede utilizarlas opciones --include, --tables-file o --databases para crear un backup parcial al realizarbackups de los archivos de origen de su base de datos.

Para obtener más información, consulte The innobackupex Script.

Amazon Aurora MySQL consume sus archivos de backup en función del nombre de archivo. Asegúresede asignar la extensión de archivo adecuada a los archivos de backup según el formato del fichero: porejemplo, .xbstream para archivos almacenados con el formato xbstream de Percona.

Amazon Aurora MySQL consume sus archivos de backup en orden alfabético, así como según lanumeración natural. Utilice siempre la opción split al ejecutar el comando innobackupex paraasegurarse de que la escritura y la asignación de nombre de sus archivos de backup se realice en el ordencorrecto.

Paso 2: Copiar archivos en un bucket de Amazon S3Una vez realizada la copia de seguridad de la base de datos MySQL con la utilidad Percona Xtrabackup,ya podrá copiar los archivos de backup en un bucket de S3.

Para obtener más información acerca de cómo crear y cargar un archivo en un bucket de S3, consulte lasección sobre comenzar a utilizar Amazon Simple Storage Service en la Guía de introducción de AmazonS3.

Paso 3: Restaurar un clúster de base de datos deAurora MySQL desde un bucket de S3Puede restaurar los archivos de backup desde su bucket de Amazon S3 para crear un nuevo clúster debase de datos de Amazon Aurora MySQL mediante la consola de Amazon RDS.

Para restaurar un clúster de base de datos de Amazon Aurora MySQL a partir de los archivos deun bucket de S3

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

2. En el panel de RDS, elija Restore Aurora MySQL DB Cluster from S3.3. En Specify Source Backup Details, especifique lo siguiente:

Para esta opción Haga lo siguiente

Source Engine Amazon Aurora MySQL actualmente solo admite larestauración a partir de archivos de backup para el motorde base de datos mysql.

Version 1/1/2016159

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Restaurar un clúster de base de datosde Aurora MySQL desde un bucket de S3

Para esta opción Haga lo siguiente

Source Engine Version Especifique la versión de la base de datos MySQL a partirde la que se crearon los archivos de backup, por ejemplo5.6.22. Se admiten las versiones de MySQL 5.5 y 5.6.

Select S3 Bucket Seleccione el bucket de S3 donde se almacenan losarchivos de backup.

S3 Bucket Prefix (Optional) Especifique un prefijo de ruta de archivo para los archivosalmacenados en el bucket de S3. S3 Bucket Prefix esopcional. Si no especifica un prefijo, Amazon AuroraMySQL creará el clúster de base de datos con todos losarchivos de la carpeta raíz del bucket de S3. Si especificaun prefijo, Amazon Aurora MySQL creará el clúster debase de datos con los archivos del bucket de S3 dondela ruta completa para el archivo comienza con el prefijoespecificado.

Amazon Aurora MySQL no recorre otras subcarpetasde su bucket de S3 buscando archivos de backup. Solose usan los archivos de la carpeta identificados por S3Bucket Prefix. Si almacena los archivos de backup en unasubcarpeta del bucket de S3, debe especificar un prefijoque identifique la ruta completa hasta la carpeta donde sealmacenan los archivos.

Por ejemplo, si almacena los archivos de backup en unasubcarpeta de su bucket de S3 denominado backupsy dispone de varios conjuntos de archivos de backup,cada uno en su propio directorio (gzip_backup1,gzip_backup2, etc.), deberá especificar un prefijobackups/gzip_backup1 para restaurar a partir de losarchivos en la carpeta gzip_backup1.

Rol de IAM Seleccione el rol de IAM que creó para autorizar a AmazonAurora MySQL a obtener acceso a S3 en su nombre. Si noha creado un rol de IAM, puede seleccionar Create a NewRole para crear uno.

4. Seleccione Next Step.5. En la página Specify DB Details, especifique la información de su clúster de base de datos. La

siguiente tabla muestra la configuración de una instancia de base de datos.

Para esta opción Haga lo siguiente

DB Instance Class Seleccione una clase de instancia de base de datosque defina los requisitos de procesamiento y memoriapara cada instancia del clúster de base de datos. AuroraMySQL admite las clases de instancia de base de datosdb.r3.large, db.r3.xlarge, db.r3.2xlarge,db.r3.4xlarge y db.r3.8xlarge. Para obtener másinformación acerca de las opciones de la clase de instanciade base de datos, consulte la documentación de AmazonRDS.

Multi-AZ Deployment Determine si desea crear réplicas de Aurora MySQL enotras zonas de disponibilidad para permitir la conmutación

Version 1/1/2016160

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Restaurar un clúster de base de datosde Aurora MySQL desde un bucket de S3

Para esta opción Haga lo siguientepor error. Para obtener más información acerca de variaszonas de disponibilidad, consulte la documentación deAmazon RDS.

DB Instance Identifier Escriba un nombre para la instancia principal de su clústerde base de datos. Este identificador se utilizará en ladirección del punto de enlace de la instancia principal de suclúster de base de datos.

El identificador de instancias de bases de datos tiene lassiguientes limitaciones:

• Debe contener de 1 a 63 caracteres alfanuméricos oguiones.

• El primer carácter debe ser una letra.• No puede terminar con un guion ni contener dos guiones

consecutivos.• Debe ser único para todas las instancias de base de

datos por cada cuenta de AWS y por cada región.

Master Username Escriba un nombre con caracteres alfanuméricos queutilizará como nombre de usuario maestro para iniciarsesión en su clúster de base de datos. Entre los privilegiospredeterminados otorgados a la cuenta del nombre deusuario maestro se incluyen los siguientes: create,drop, references, event, alter, delete,index, insert, select, update, createtemporary tables, lock tables, trigger,create view, show view, alter routine,create routine, execute, create user,process, show databases, grant option.

Master Password Escriba una contraseña que contenga entre 8 y 41caracteres ASCII imprimibles (menos /, " y @) para sucontraseña de usuario maestro.

Una página Specify DB Details típica tiene un aspecto similar al siguiente.

Version 1/1/2016161

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Restaurar un clúster de base de datosde Aurora MySQL desde un bucket de S3

6. Confirme su contraseña maestra y, a continuación, elija Next.7. En la página Configure Advanced Settings, puede personalizar la configuración adicional para el

clúster de base de datos Aurora MySQL. La siguiente tabla muestra la configuración avanzada de unclúster de base de datos.

Para esta opción Haga lo siguiente

VPC Seleccione la VPC que alojará el clúster de base de datos.Seleccione Create a New VPC para que Amazon RDScree una VPC. Para obtener más información, consulte lasección que se ha expuesto anteriormente en este tema.

Subnet Group Seleccione el grupo de subredes de base de datos quedesea utilizar para el clúster de base de datos. SeleccioneCreate a New DB Subnet Group para que Amazon RDScree un grupo de subredes de base de datos. Para obtenermás información, consulte la sección que se ha expuestoanteriormente en este tema.

Publicly Accessible Seleccione Yes para asignar al clúster de base de datosuna dirección IP pública; de lo contrario, seleccione No.Las instancias del clúster de base de datos pueden seruna combinación de instancias de base de datos públicasy privadas. Para obtener más información sobre cómoocultar instancias desde el acceso público, consulte la documentación de Amazon RDS .

Version 1/1/2016162

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Restaurar un clúster de base de datosde Aurora MySQL desde un bucket de S3

Para esta opción Haga lo siguiente

Zona de disponibilidad Determine si desea especificar una zona de disponibilidadconcreta. Para obtener más información acerca de variaszonas de disponibilidad, consulte la documentación deAmazon RDS.

VPC Security Group(s) Seleccione uno o varios grupos de seguridad de VPC paraproteger el acceso de red al clúster de base de datos.Seleccione Create a New VPC Security Group para queAmazon RDS cree un grupo de seguridad de VPC. Paraobtener más información, consulte la sección que se haexpuesto anteriormente en este tema.

DB Cluster Identifier Escriba un nombre para el clúster de base de datosque sea exclusivo para su cuenta en la región que hayaseleccionado. Este identificador se utilizará en la direccióndel punto de enlace del clúster para su clúster de base dedatos. Para obtener más información sobre el punto deenlace del clúster, consulte la documentación de AmazonRDS .

El identificador del clúster de base de datos tiene lassiguientes limitaciones:

• Debe contener de 1 a 63 caracteres alfanuméricos oguiones.

• El primer carácter debe ser una letra.• No puede terminar con un guion ni contener dos guiones

consecutivos.• Debe ser único para todos los clústeres de base de

datos por cada cuenta de AWS y por cada región.

Database Name Escriba un nombre para la base de datos de hasta 8caracteres alfanuméricos. Si no proporciona un nombre,Amazon RDS no creará una base de datos en el clúster debase de datos que está creando.

Database Port Especifique el puerto que deben usar las aplicaciones ylas utilidades para obtener acceso a la base de datos. Losclústeres de base de datos Aurora MySQL usan el puerto3306 de MySQL de forma predeterminada. Los firewallsde algunas compañías bloquean las conexiones al puertode MySQL predeterminado. Si el firewall de su compañíabloquea el puerto predeterminado, elija otro puerto para elnuevo clúster de base de datos.

Parameter Group Seleccione un grupo de parámetros. Aurora MySQL tieneun grupo de parámetros de base de datos predeterminadoque puede utilizar. Si lo prefiere, puede crear su propiogrupo de parámetros de base de datos. Para obtener másinformación acerca de los grupos de parámetros, consultela documentación de Amazon RDS .

Version 1/1/2016163

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Restaurar un clúster de base de datosde Aurora MySQL desde un bucket de S3

Para esta opción Haga lo siguiente

Option Group Seleccione un grupo de opciones. Aurora MySQL tieneun grupo de opciones predeterminado que puede utilizar.Si lo prefiere, puede crear su propio grupo de opciones.Para obtener más información acerca de los grupos deopciones, consulte la documentación de Amazon RDS .

Enable Encryption Seleccione Yes para habilitar el cifrado en reposo para esteclúster de base de datos. Para obtener más información,consulte la documentación de Amazon RDS .

Prioridad Elija una prioridad de conmutación por error parala instancia. Si no selecciona un valor, el ajustepredeterminado es tier-1. Esta prioridad determina elorden en que se promueven las réplicas de Aurora MySQLcuando el sistema se recupera de un error en la instanciaprincipal. Para obtener más información, consulte la documentación de Amazon RDS .

Backup Retention Period Seleccione el tiempo (entre 1 y 35 días) durante el queAurora MySQL conservará las copias de backup de la basede datos. Las copias de backup se pueden utilizar para lasrestauraciones a un momento dado (PITR) de la base dedatos con una precisión de segundos.

Enable Enhanced Monitoring Elija Yes para habilitar la recopilación de métricas entiempo real para el sistema operativo en el que se ejecutasu clúster de base de datos. Para obtener más información,consulte la documentación de Amazon RDS .

Granularity Esta opción solo está disponible si Enable EnhancedMonitoring se ha definido como Yes. Defina el intervalo, ensegundos, entre las horas a las que deben recopilarse lasmétricas para su clúster de base de datos.

Auto Minor Version Upgrade seleccione Yes si desea habilitar su clúster de base dedatos de Aurora MySQL para recibir actualizaciones de lasversiones secundarias del motor de base de datos MySQLautomáticamente cuando estén disponibles.

La opción Auto Minor Version Upgrade solo es válida paralas actualizaciones de las versiones secundarias del motorde MySQL para el clúster de base de datos Amazon AuroraMySQL. No tiene validez para los parches periódicos quese utilizan para mantener la estabilidad del sistema.

Maintenance Window Seleccione el intervalo de tiempo semanal durante el quese puede llevar a cabo el mantenimiento del sistema.

Una página Configure Advanced Settings típica tiene un aspecto similar al siguiente.

Version 1/1/2016164

AWS Database Migration ServiceGuía de la migración paso a paso

Paso 3: Restaurar un clúster de base de datosde Aurora MySQL desde un bucket de S3

Version 1/1/2016165

AWS Database Migration ServiceGuía de la migración paso a pasoMigración de MySQL a AmazonAurora MySQL con mysqldump

8. Elija Launch DB Instance para lanzar la instancia de base de datos Aurora MySQL y, a continuación,seleccione Close para cerrar el asistente.

En la consola de Amazon RDS, la nueva instancia de base de datos aparece en la lista de instanciasde base de datos. La instancia de la base de datos tendrá el estado creating hasta que se cree lainstancia y esté lista para el uso. Cuando el estado cambie a available, podrá conectarse a la instanciaprincipal de su clúster de base de datos. Dependiendo de la clase de instancia de base de datos y delalmacenamiento asignado, es posible que la nueva instancia tarde varios minutos en estar disponible.

Para ver el clúster que acaba de crear, elija la vista Clusters en la consola de Amazon RDS. Paraobtener más información, consulte la documentación de Amazon RDS .

Anote el puerto y el punto de enlace del clúster. Utilice el punto de enlace y el puerto del clúster en suscadenas de conexión JDBC y ODBC para cualquier aplicación que realice operaciones de lectura oescritura.

Migración de MySQL a Amazon Aurora MySQL conmysqldump

Puede crear un volcado de los datos con la utilidad mysqldump y, a continuación, importar esos datos a unclúster de base de datos Amazon Aurora MySQL existente.

Dado que Amazon Aurora MySQL es una base de datos compatible con MySQL, puede usar la utilidadmysqldump para copiar datos de la base de datos MySQL o MariaDB en un clúster de base de datos deAmazon Aurora MySQL.

Migración de datos de una instancia de base dedatos de Amazon RDS MySQL a un clúster de basede datos de Amazon Aurora MySQL

Puede migrar (copiar) los datos a un clúster de base de datos de Amazon Aurora MySQL desde unainstantánea de Amazon RDS, tal y como se describe a continuación.

Version 1/1/2016166

AWS Database Migration ServiceGuía de la migración paso a pasoMigración de una instantánea deMySQL de RDS a Aurora MySQL

Note

Dado que Amazon Aurora MySQL es compatible con MySQL, puede migrar datos desde la basede datos MySQL configurando la replicación entre la base de datos MySQL y un clúster de basede datos Amazon Aurora MySQL. Es recomendable utilizar la versión 5.5 o posterior de la base dedatos de MySQL.

Migración de una instantánea de MySQL de RDS aAurora MySQLPuede migrar una instantánea de base de datos de una instancia de base de datos MySQL de AmazonRDS para crear un clúster de base de datos Aurora MySQL. El nuevo clúster de base de datos se rellenacon los datos de la instancia de base de datos de Amazon RDS MySQL original. La instantánea de basede datos debe haberse obtenido a partir de una instancia de base de datos de Amazon RDS que ejecuteMySQL 5.6.

Puede migrar una instantánea de base de datos manual o automatizada. Una vez que haya creado elclúster de base de datos, podrá crear réplicas de Aurora MySQL opcionales.

Los pasos generales que debe realizar son los siguientes:

1. Determine la cantidad de espacio que desea aprovisionar para el clúster de base de datos de AmazonAurora MySQL. Para obtener más información, consulte la documentación de Amazon RDS.

2. Utilice la consola para crear el snapshot en la región en la que se encuentra la instancia de AmazonRDS MySQL 5.6

3. Si la instantánea de base de datos no se encuentra en la misma región que su clúster de base dedatos, utilice la consola de Amazon RDS para copiar la instantánea de base de datos a esa región.Para obtener más información acerca de cómo copiar una instantánea de base de datos, consulte la documentación de Amazon RDS .

4. Utilice la consola para migrar la instantánea de base de datos y crear un clúster de base de datos deAmazon Aurora MySQL con las mismas bases de datos que la instancia de base de datos original deMySQL 5.6.

Warning

Amazon RDS limita cada cuenta de AWS a una copia del snapshot en cada región en unmomento dado.

¿Cuánto espacio necesito?Al migrar una instantánea de una instancia de base de datos MySQL a un clúster de base de datos AuroraMySQL, Aurora MySQL utiliza un volumen de Amazon Elastic Block Store (Amazon EBS) para formatearlos datos de la instantánea antes de migrarlos. En algunos casos, se necesita espacio adicional paraformatear los datos para la migración. Cuando migre los datos a su clúster de base de datos, tenga encuenta las siguientes directrices y limitaciones:

• Aunque Amazon Aurora MySQL es compatible con un almacenamiento de hasta 64 TB, el proceso demigrar una instantánea a un clúster de base de datos de Aurora MySQL está limitado por el tamaño delvolumen de EBS de la instantánea. Por lo tanto, el tamaño máximo de un snapshot que se puede migrares de 6 TB.

• Las tablas que no son MyISAM y no están comprimidas pueden alcanzar un tamaño de 6 TB. Si tienetablas MyISAM, Aurora MySQL deberá utilizar espacio adicional en el volumen para convertir las tablascon el fin de que sean compatibles con Aurora MySQL. Si hay tablas comprimidas, Aurora MySQLtendrá que utilizar espacio adicional en el volumen para ampliar esas tablas antes de almacenarlas en el

Version 1/1/2016167

AWS Database Migration ServiceGuía de la migración paso a pasoMigración de una instantánea deMySQL de RDS a Aurora MySQL

volumen del clúster de Aurora MySQL. Debido a este requisito de espacio adicional, debe asegurarse deque ninguna de las tablas MyISAM y de las tablas comprimidas que se van a migrar desde su instanciade base de datos MySQL tiene un tamaño superior a 3 TB.

Reducción de la cantidad de espacio necesario para migrar datosa Amazon Aurora MySQLEs posible que le interese modificar su esquema de base de datos antes de migrar a Amazon AuroraMySQL. Esta modificación puede ser útil en los siguientes casos:

• Si desea acelerar el proceso de migración.• Si no está seguro de cuánto espacio necesita aprovisionar.• Si ha intentado migrar los datos y la migración ha generado un error por falta de espacio aprovisionado.

Puede realizar los siguientes cambios para mejorar el proceso de migración de una base de datos aAmazon Aurora MySQL.

Important

Asegúrese de realizar estas actualizaciones en una instancia de base de datos nueva restauradaa partir de un snapshot de una base de datos de producción y no a partir de una instancia deproducción. A continuación, puede migrar los datos de la instantánea de la nueva instanciade base de datos al clúster de base de datos de Amazon Aurora MySQL para evitar lasinterrupciones de servicio en la base de datos de producción.

Tipo de tabla Limitación o pauta

Tablas MyISAM Amazon Aurora MySQL solo admite tablas InnoDB. Si hay tablasMyISAM en la base de datos, tendrá que convertirlas antes demigrarlas a Amazon Aurora MySQL. El proceso de conversión requieremás espacio para la conversión de MyISAM a InnoDB durante elprocedimiento de migración.

Para reducir el riesgo de quedarse sin espacio o para acelerar elproceso de migración, convierta todas sus tablas MyISAM en tablasInnoDB antes de migrarlas. El tamaño de la tabla InnoDB resultanteequivale al tamaño requerido por Amazon Aurora MySQL para esatabla. Para convertir una tabla MyISAM a InnoDB, ejecute el siguientecomando:

alter table <schema>.<table_name> engine=innodb,algorithm=copy;

Tablas comprimidas Amazon Aurora MySQL no admite tablas comprimidas (es decir, tablascreadas con ROW_FORMAT=COMPRESSED).

Para reducir el riesgo de quedarse sin espacio o para acelerar elproceso de migración, amplíe las tablas comprimidas mediantela configuración de ROW_FORMAT DEFAULT, COMPACT, DYNAMICo REDUNDANT. Para obtener más información, consulte https://dev.mysql.com/doc/refman/5.6/en/innodb-row-format.html.

Puede utilizar el siguiente script de SQL en su instancia de base de datos de MySQL para obtener una listade las tablas MyISAM o comprimidas de su base de datos.

Version 1/1/2016168

AWS Database Migration ServiceGuía de la migración paso a pasoMigración de una instantánea deMySQL de RDS a Aurora MySQL

-- This script examines a MySQL database for conditions that will block-- migrating the database into an Amazon Aurora MySQL DB.-- It needs to be run from an account that has read permission for the-- INFORMATION_SCHEMA database.

-- Verify that this is a supported version of MySQL.

select msg as `==> Checking current version of MySQL.`from ( select 'This script should be run on MySQL version 5.6. ' + 'Earlier versions are not supported.' as msg, cast(substring_index(version(), '.', 1) as unsigned) * 100 + cast(substring_index(substring_index(version(), '.', 2), '.', -1) as unsigned) as major_minor ) as Twhere major_minor <> 506;

-- List MyISAM and compressed tables. Include the table size.

select concat(TABLE_SCHEMA, '.', TABLE_NAME) as `==> MyISAM or Compressed Tables`,round(((data_length + index_length) / 1024 / 1024), 2) "Approx size (MB)"from INFORMATION_SCHEMA.TABLESwhere ENGINE <> 'InnoDB' and ( -- User tables TABLE_SCHEMA not in ('mysql', 'performance_schema', 'information_schema') or -- Non-standard system tables ( TABLE_SCHEMA = 'mysql' and TABLE_NAME not in ( 'columns_priv', 'db', 'event', 'func', 'general_log', 'help_category', 'help_keyword', 'help_relation', 'help_topic', 'host', 'ndb_binlog_index', 'plugin', 'proc', 'procs_priv', 'proxies_priv', 'servers', 'slow_log', 'tables_priv', 'time_zone', 'time_zone_leap_second', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'user' ) ) ) or ( -- Compressed tables ROW_FORMAT = 'Compressed' );

El script genera una salida similar a la del siguiente ejemplo. El ejemplo muestra dos tablas que sedeben convertir de MyISAM a InnoDB. La salida también incluye el tamaño aproximado de cada tabla enmegabytes (MB).

+---------------------------------+------------------+| ==> MyISAM or Compressed Tables | Approx size (MB) |+---------------------------------+------------------+| test.name_table | 2102.25 || test.my_table | 65.25 |+---------------------------------+------------------+

Version 1/1/2016169

AWS Database Migration ServiceGuía de la migración paso a pasoMigración de una instantánea deMySQL de RDS a Aurora MySQL

2 rows in set (0.01 sec)

Migración de una instantánea de base de datos con la consolaPuede migrar una instantánea de base de datos de una instancia de base de datos MySQL de AmazonRDS para crear un clúster de base de datos Aurora MySQL. El nuevo clúster de base de datos se rellenarácon los datos de la instancia de base de datos de Amazon RDS MySQL original. La instantánea de basede datos debe haberse creado a partir de una instancia de base de datos de Amazon RDS que ejecuteMySQL 5.6 y no debe estar cifrada. Para obtener más información acerca de cómo crear una instantáneade base de datos, consulte la documentación de Amazon RDS.

Si la instantánea de base de datos no se encuentra en la región de AWS en la que desea ubicar sus datos,utilice la consola de Amazon RDS para copiar la instantánea de base de datos en esa región. Para obtenermás información acerca de cómo copiar una instantánea de base de datos, consulte la documentación deAmazon RDS.

Al migrar la instantánea de base de datos con la consola, esta realiza las acciones necesarias para creartanto el clúster de base de datos como la instancia principal.

También puede elegir que el nuevo clúster de base de datos Aurora MySQL se cifre "en reposo" medianteuna clave de cifrado de AWS Key Management Service (AWS KMS). Esta opción solo está disponible paralas instantáneas de base de datos no cifradas.

Para migrar una instantánea de base de datos de MySQL 5.6 con la consola

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

2. Elija Snapshots.3. En la página Snapshots, elija la instantánea que desea migrar a un clúster de base de datos Aurora

MySQL.4. Elija Migrate Database.

Version 1/1/2016170

AWS Database Migration ServiceGuía de la migración paso a pasoMigración de una instantánea deMySQL de RDS a Aurora MySQL

5. Defina los siguientes valores en la página Migrate Database:

• DB Instance Class: seleccione una clase de instancia de base de datos que tenga elalmacenamiento y la capacidad requeridos para la base de datos, por ejemplo db.r3.large. Losvolúmenes de clúster de Aurora MySQL aumentarán automáticamente a medida que se incrementela cantidad de datos de la base de datos, hasta un tamaño máximo de 64 terabytes (TB). Por lotanto, solo tiene que seleccionar una clase de instancia de base de datos que se adapte a susnecesidades actuales de almacenamiento.

• DB Instance Identifier: escriba un nombre para el clúster de base de datos que sea único para sucuenta en la región que ha seleccionado. Este identificador se utiliza en las direcciones de puntode enlace para las instancias del clúster de base de datos. Puede optar por añadir al nombreinformación como la región y el motor de base de datos que ha seleccionado, por ejemplo aurora-clúster1.

El identificador de instancias de bases de datos tiene las siguientes limitaciones:• Debe contener de 1 a 63 caracteres alfanuméricos o guiones.• El primer carácter debe ser una letra.• No puede terminar con un guion ni contener dos guiones consecutivos.• Debe ser único para todas las instancias de base de datos por cada cuenta de AWS y por región

de AWS.• VPC: si ya dispone de una VPC, puede utilizarla con su clúster de base de datos de Amazon Aurora

MySQL si selecciona el identificador de la VPC; por ejemplo, vpc-a464d1c1. Para obtener másinformación sobre el uso de una VPC existente, consulte la documentación de Amazon RDS.

De lo contrario, puede optar por hacer que Amazon RDS cree una VPC seleccionando Create a newVPC.

Version 1/1/2016171

AWS Database Migration ServiceGuía de la migración paso a pasoMigración de una instantánea deMySQL de RDS a Aurora MySQL

• Subnet Group: si dispone de un grupo de subred, puede utilizarlo con su clúster de base de datosde Amazon Aurora MySQL eligiendo el identificador del grupo; por ejemplo, gs-subnet-group1.

De lo contrario, puede optar por hacer que Amazon RDS cree un grupo de subredes seleccionandoCreate a new subnet group.

• Publicly Accessible: seleccione No para especificar que solo pueden obtener acceso a las instanciasde su clúster de base de datos los recursos que se encuentran dentro de su VPC. Seleccione Yespara especificar que los recursos de la red pública pueden obtener acceso a las instancias de suclúster de base de datos. El valor predeterminado es Yes.

Note

No es necesario que su clúster de base de datos de producción esté en una subredpública, ya que solo los servidores de su aplicación necesitarán acceso a su clúster debase de datos. Si su clúster de base de datos no necesita estar en una subred pública,defina Publicly Accessible como No.

• Availability Zone: seleccione la zona de disponibilidad para alojar la instancia principal del clústerde base de datos Aurora MySQL. Para hacer que Amazon RDS elija una zona de disponibilidad,seleccione No Preference.

• Database Port: indique el puerto predeterminado que se utilizará al conectar a instancias del clústerde base de datos. El valor predeterminado es 3306.

Note

Es posible que se encuentre detrás de un firewall de una compañía que no permite elacceso a los puertos predeterminados, como el puerto predeterminado de MySQL, el 3306.En este caso, proporcione un valor de puerto permitido por el firewall corporativo. Recuerdeel valor del puerto cuando se conecte más adelante al clúster de base de datos AuroraMySQL.

• Enable Encryption: elija Yes para que el nuevo clúster de base de datos Aurora MySQL se cifre "enreposo". Si elige Yes, se le pedirá que elija una clave de cifrado de AWS KMS como valor de MasterKey.

• Auto Minor Version Upgrade: seleccione Yes si desea habilitar su clúster de base de datos deAurora MySQL para recibir automáticamente actualizaciones de las versiones secundarias del motorde base de datos MySQL cuando estén disponibles.

La opción Auto Minor Version Upgrade solo es válida para las actualizaciones de las versionessecundarias del motor de MySQL para el clúster de base de datos Amazon Aurora MySQL. No tienevalidez para los parches periódicos que se utilizan para mantener la estabilidad del sistema.

Version 1/1/2016172

AWS Database Migration ServiceGuía de la migración paso a pasoMigración de una instantánea deMySQL de RDS a Aurora MySQL

Version 1/1/2016173

AWS Database Migration ServiceGuía de la migración paso a pasoMigración de una instantánea deMySQL de RDS a Aurora MySQL

6. Elija Migrate para migrar la instantánea de base de datos.7. Elija Instances y, a continuación, seleccione el icono de flecha para mostrar la información detallada

del clúster de base de datos y monitorizar el progreso de la migración. En la página de detalles,encontrará el punto de enlace del clúster que se utiliza para conectar a la instancia principal del clústerde base de datos. Para obtener más información sobre la conexión a un clúster de base de datos deAmazon Aurora MySQL, consulte la documentación de Amazon RDS.

Version 1/1/2016174

AWS Database Migration ServiceGuía de la migración paso a paso

Historial de revisiónEn la siguiente tabla, se describen los cambios importantes que se han realizado en la documentacióndesde la última versión de la guía de la migración paso a paso de AWS Database Migration Service.

• Versión de la API: 20160101• Última actualización de la documentación: 30 de agosto de 2017

Cambio Descripción Fecha

Se ha añadido la guía demigración de Microsoft SQLServer a Aurora

Se ha añadido la guía demigración de una base de datosMicrosoft SQL Server a AmazonAurora con compatibilidadMySQL.

30 de agosto de 2017

Se ha añadido la guía demigración de Oracle aPostgreSQL

Se ha añadido la guía demigración de bases de datosOracle a PostgreSQL.

18 de agosto de 2017

Se añadió la guía de migraciónlocal de Oracle a Amazon Aurora

Se añadió la guía de migraciónde bases de datos locales deOracle a Amazon Aurora.

17 de noviembre de 2016

Version 1/1/2016175