sql >> Base de Datos >  >> RDS >> Mysql

Migración de una base de datos MySQL de CloudSQL a AWS RDS

Google CloudSQL es un servicio administrado para bases de datos con soporte para MySQL y PostgreSQL. CloudSQL se puede integrar con algunos de los otros servicios de Google Cloud Platform, incluida la replicación de datos en varias zonas con conmutación por error automática. En este artículo, analizaremos la migración de una instancia de base de datos MySQL de Google CloudSQL a AWS RDS mediante el Servicio de migración de base de datos (DMS). Este artículo tiene las siguientes secciones:

  • Configuración del entorno
  • Creación de una instancia de base de datos MySQL RDS
  • Conexión a la base de datos MySQL en RDS
  • Creación de un proyecto de Google Cloud Platform
  • Crear una instancia de CloudSQL
  • Agregar una ruta para la dirección IP de la instancia de base de datos de CloudSQL a la tabla de rutas de VPC
  • Creación de una instancia de replicación de DMS
  • Agregar una red para la conectividad de la instancia de replicación a la instancia de base de datos de CloudSQL
  • Creación de puntos finales de replicación de bases de datos
  • Creación de una tarea de replicación
  • Ejecución de la tarea de replicación
  • Explorando las tablas migradas
  • Exploración de los registros de CloudWatch
  • Eliminar una migración
  • Eliminación de instancias de base de datos
  • Conclusión

Configuración del entorno

Se requiere una cuenta de facturación de Google Cloud Platform. La cuenta gratuita de Google Cloud Platform ofrece una prueba gratuita durante el primer año. También se requiere una cuenta de AWS; esto se puede crear en https://aws.amazon.com/resources/create-account/.

Creación de una instancia de base de datos MySQL RDS

Debido a que migraremos una base de datos MySQL de CloudSQL a AWS RDS, debemos crear una instancia de base de datos MySQL en RDS. Navegue a RDS en https://aws.amazon.com/rds y, en el asistente de RDS, seleccione el motor como MySQL, como se muestra en la Figura 1.


Figura 1: Selección del motor de base de datos MySQL

¿En producción? , seleccione Desarrollo/Prueba , como se muestra en la Figura 2.


Figura 2: Selección de desarrollo y prueba

En Especificar detalles de base de datos , seleccione la casilla de verificación Mostrar solo las opciones que son elegibles para el nivel gratuito de RDS , como se muestra en la Figura 3. Seleccione el Modelo de licencia como licencia pública general. Seleccione la versión del motor DB como MySQL 5.6.35. Las versiones 5.5, 5.6 y 5.7 de MySQL son compatibles con el destino DMS. Seleccione Clase de instancia de base de datos como db.t2.micro, que tiene una capacidad de 1 vCPU y 1 GB de RAM. Seleccione Implementación Multi-AZ como No. Seleccione Tipo de almacenamiento como Propósito general (SSD) y el almacenamiento asignado como 5 GB.


Figura 3: Especifique los detalles de la base de datos

En la configuración de la base de datos, especifique un identificador de instancia de base de datos (mysqldb), Nombre de usuario maestro y Contraseña maestra, como se muestra en la Figura 4. Haga clic en Siguiente paso.


Figura 4: Especificación de la configuración de la base de datos

En Configurar ajustes avanzados, seleccione una VPC, como se muestra en la Figura 5. La migración de DMS se creará en la misma VPC que la instancia de base de datos de RDS. Establezca la zona de disponibilidad como us-east-1b. Seleccione la opción para crear un nuevo grupo de seguridad. En Opciones de base de datos, especifique un Nombre de base de datos (mysqldb). Especifique un puerto de base de datos (3306) y seleccione un grupo de parámetros de base de datos.


Figura 5: Configuración de ajustes avanzados

La mayoría o todas las demás configuraciones, incluido el Grupo de opciones, Habilitar autenticación de base de datos de IAM, Habilitar cifrado, Copia de seguridad y Supervisión, se pueden mantener como predeterminadas (consulte la Figura 6). Es necesario habilitar las copias de seguridad automáticas para MySQL en RDS como fuente de DMS. Haga clic en Iniciar instancia de base de datos .


Figura 6: Iniciar instancia de base de datos

Se comienza a crear una nueva instancia de base de datos, como se muestra en el mensaje de la Figura 7. Haga clic en Ver sus instancias de base de datos para ver las instancias de base de datos.


Figura 7: Se está creando su instancia de base de datos

Se inicia una nueva instancia de base de datos MySQL en RDS, como se muestra en la Figura 8.


Figura 8: Instancia de base de datos MySQL en RDS

Haga clic en el enlace Grupo de seguridad, como se muestra en la Figura 9, para modificar las reglas de entrada/salida para permitir el tráfico desde/hacia todas las direcciones IP.


Figura 9: Enlace de grupo de seguridad

Seleccione la pestaña Entrada y haga clic en el botón Editar para modificar las reglas de entrada, como se muestra en la Figura 10.


Figura 10: Modificación de reglas de entrada

En Editar reglas de entrada, establezca Tipo en Todo el tráfico, Protocolo en Todo, Intervalo de puertos en 0-65535, Origen en Cualquier lugar y haga clic en Guardar (consulte la Figura 11).


Figura 11: Editar reglas de entrada

Las reglas de entrada modificadas se muestran en la Figura 12.


Figura 12: Reglas de entrada

No es necesario modificar las reglas de salida porque ya están configuradas para permitir el tráfico a todas las direcciones IP de destino, como se muestra en la Figura 13.


Figura 13: Reglas de salida

Conexión a la base de datos MySQL en RDS

Obtenga el host de la instancia de base de datos de RDS del punto final; la dirección del host es el Endpoint con el sufijo de puerto :3306 eliminado. Conéctese a la instancia de la base de datos MySQL en RDS utilizando la dirección del host y el puerto con el siguiente comando mysql para iniciar una interfaz de línea de comandos MySQL.

mysql --host=mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com
      --port=3306 --user=dvohra --password=mysql5db

El host, el usuario y la contraseña serían diferentes para diferentes usuarios. Otorgue acceso a la cuenta de MySQL al usuario de DMS con los siguientes comandos, en los que el usuario de DMS sería diferente para diferentes usuarios.

GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE,
   SELECT ON mysqldb.* TO 'dvohra'@'%';
GRANT ALL PRIVILEGES ON awsdms_control.* TO 'dvohra'@'%';

Creación de un proyecto de Google Cloud Platform

Debe crear un proyecto de Google Cloud Platform para usar CloudSQL. Para crear un proyecto, haga clic en Crear un proyecto vacío enlace en la página Primeros pasos, como se muestra en la Figura 14.


Figura 14: Crear un proyecto vacío

En el Nuevo Proyecto asistente, especifique un Nombre del proyecto (MySQLDB) y haga clic en Crear , como se muestra en la Figura 15.


Figura 15: Nuevo Proyecto

Se crea un nuevo proyecto, como se muestra en el Tablero de la Figura 16.


Figura 16: Nuevo proyecto de Google Cloud Platform

Crear una instancia de CloudSQL

En esta sección, crearemos una instancia de CloudSQL. Navegue a la URL de CloudSQL https://cloud.google.com/sql/ en un navegador, como se muestra en la Figura 17. Haga clic en Ver consola.


Figura 17: Ver Consola

Seleccione el MySQLDB proyecto y haga clic en Crear instancia , como se muestra en la Figura 18.


Figura 18: Crear instancia

En Crear una instancia asistente, seleccione MySQL y haga clic en Siguiente , como se muestra en la Figura 19.


Figura 19: Elegir motor como MySQL

En Elegir un tipo de instancia de MySQL , haga clic en Elegir segunda generación para seleccionar el tipo de instancia MySQL de segunda generación, como se muestra en la Figura 20. También se enumeran algunos de los beneficios del tipo de instancia de segunda generación.


Figura 20: Elegir una instancia de MySQL de segunda generación

En Crear una instancia de MySQL de segunda generación (consulte la Figura 21), especifique un ID de instancia y una contraseña raíz y seleccione una Región y Zona. Haz clic en Crear .


Figura 21: Cree una instancia de MySQL de segunda generación

Se comienza a crear una instancia de MySQL, como se muestra en la tabla Instancias en la Figura 22.


Figura 22: Instancia MySQL de CloudSQL

Agregar una ruta para la dirección IP de la instancia de base de datos de CloudSQL a la tabla de rutas de VPC

Necesitamos modificar la tabla de rutas para la VPC en la que se crean la instancia de base de datos de RDS y la migración de DMS para permitir el acceso a la dirección IP de la instancia de CloudSQL. Primero, obtenga la dirección IP de la instancia de CloudSQL desde la Consola de CloudSQL, como se muestra en la Figura 23.


Figura 23: Dirección IP de la instancia de base de datos de CloudSQL

Haga clic en la tabla de rutas enlace, como se muestra en la Figura 24, para la VPC en la que se crea la instancia de base de datos de RDS y el DMS se creará posteriormente.


Figura 24: Enlace de la tabla de rutas

Seleccione la ruta de la lista y haga clic en Editar, como se muestra en la Figura 25.


Figura 25: Ruta>Editar

Haz clic en Añadir otra ruta (ver Figura 26).


Figura 26: Añadir otra ruta

Especifique la dirección IP de la instancia de CloudSQL en Destino, como se muestra en la Figura 27.


Figura 27: Especificar el destino como la dirección IP de la instancia de CloudSQL

Seleccione el destino como puerta de enlace de Internet asociada con la VPC, como se muestra en la Figura 28. Una puerta de enlace de Internet permite la comunicación entre las instancias de una VPC e Internet.


Figura 28: Selección de Target como la puerta de enlace de Internet

Haga clic en Guardar para guardar la ruta. Se agrega una ruta, como se muestra en la Figura 29.


Figura 29: Ruta para la instancia de CloudSQL

Creación de una instancia de replicación de DMS

En esta sección, crearemos una instancia de replicación para migrar una instancia de CloudSQL a RDS. Haz clic en Crear migración. en la página de inicio del Servicio de migración de bases de datos, como se muestra en la Figura 30.


Figura 30: Crear migración

En la página de Bienvenida, haga clic en Siguiente (ver Figura 31).


Figura 31: Página de bienvenida>Siguiente

En Crear instancia de replicación página, especifique un nombre y una descripción, como se muestra en la Figura 32. Seleccione una Clase de instancia como dms.t2.medium. Seleccione la versión del motor de replicación como 2.2.1. Seleccione la misma VPC en la que se creó la instancia de base de datos de RDS. Seleccione Multi-AZ A No. Seleccione la casilla de verificación Accesible públicamente.


Figura 32: Configuración de una instancia de replicación

En Avanzado, especifique Almacenamiento asignado (50 GB), seleccione un Grupo de subred de replicación y seleccione Zona de disponibilidad igual que para la instancia de base de datos de RDS, us-east-1b, como se muestra en la Figura 33. Seleccione el Grupo de seguridad de VPC predeterminado. Seleccione la clave maestra de KMS creada para DMS.


Figura 33: Configuración de opciones avanzadas

Seleccione la configuración de mantenimiento predeterminada y haga clic en Siguiente, como se muestra en la Figura 34.


Figura 34: Instancia de replicación>Siguiente

Aparece el mensaje "Su instancia de replicación se está creando", como se muestra en la Figura 35. Los extremos de la base de datos de origen y de destino pueden configurarse solo después de que se haya creado la instancia de replicación.


Figura 35: Se está creando su instancia de replicación

Cuando se ha creado la instancia de replicación, aparece el mensaje "Instancia de replicación creada correctamente" (consulte la Figura 36).


Figura 36: Instancia de replicación creada con éxito

Las Instancias de replicación enumeran la nueva instancia de replicación creada, como se muestra en la Figura 37.


Figura 37: Instancias de replicación

Agregar una red para la conectividad de la instancia de replicación a la instancia de base de datos de CloudSQL

Primero, determine la dirección IP en la que se ejecuta la instancia de replicación. La dirección IP se puede obtener de la consola de la instancia de replicación, como se muestra en la Figura 38.


Figura 38: Dirección IP para instancia de replicación

Habiendo obtenido la dirección IP, a continuación agregaremos una red que consta de la dirección IP a la instancia de MySQL en CloudSQL. Haga clic en el enlace de la instancia de CloudSQL MySQL, como se muestra en la Figura 39.


Figura 39: Instancia de base de datos MySQL de CloudSQL

Haga clic en Autorización de instancia de base de datos MySQL página de detalles, como se muestra en la Figura 40.


Figura 40: Autorización

Haz clic en Añadir red (ver Figura 41).


Figura 41: Añadir red

En Nueva red , especifique un nombre de red y una dirección IP de red como la dirección IP de la instancia de replicación, como se muestra en la Figura 42, y haga clic en Listo.


Figura 42: Agregar nueva red a CloudSQL

Se agrega una nueva red, como se muestra en la Figura 43. Haga clic en Guardar para salvar la red.


Figura 43: Guardando nueva red

Aparece el mensaje "La instancia se está actualizando", como se muestra en la Figura 44.


Figura 44: La instancia se está actualizando

Cuando la instancia se ha actualizado, el ícono de la instancia indica lo mismo, como se muestra en la Figura 45.


Figura 45: Instancia actualizada

Haga clic en Descripción general (consulte la Figura 46) para mostrar la descripción general de la instancia.


Figura 46: Resumen

La nueva red se incluye en Redes autorizadas en los Detalles de la instancia página, como se muestra en la Figura 47.


Figura 47: Redes autorizadas

Creación de puntos finales de replicación de bases de datos

A continuación, crearemos los extremos de la base de datos de origen y de destino. Especifique los identificadores de punto final para las bases de datos de origen y destino. Para Motor de origen, seleccione mysql , como se muestra en la Figura 48.


Figura 48: Selección del motor de origen como mysql

Seleccione el motor de destino como mysql también, como se muestra en la Figura 49.


Figura 49: Selección del motor de destino como mysql

Para el nombre del servidor de origen, copie la dirección IPv4 de la instancia de CloudSQL, como se muestra en la Figura 50.


Figura 50: Dirección IPv4 de la instancia de CloudSQL

Para la base de datos de destino, especifique el nombre del servidor como Endpoint menos el sufijo de puerto “:3306” para la instancia de base de datos de RDS para la base de datos MySQL (consulte la Figura 51). Especifique el puerto para las bases de datos de origen y de destino como 3306. Seleccione el modo SSL como ninguno para las conexiones de origen y de destino. Especifique el nombre de usuario para la base de datos de origen como root y la contraseña establecida al crear la instancia de CloudSQL. De manera similar, configure el nombre de usuario y la contraseña para la base de datos de destino en RDS.


Figura 51: Configuración de los detalles de conexión de la base de datos de origen y de destino

Para la sección Avanzado de las bases de datos de origen y de destino, seleccione la clave maestra de KMS dms, que se creó para DMS. Haz clic en Ejecutar prueba , como se muestra en la Figura 52, para la conexión de origen. Del mismo modo, haga clic en Ejecutar prueba para la conexión de destino.


Figura 52: Ejecutar prueba

Si el resultado de la prueba es "Conexión probada con éxito" para las conexiones de la base de datos de origen y de destino, haga clic en Siguiente, como se muestra en la Figura 53.


Figura 53: Conexiones de prueba

Crear una tarea de replicación

En Crear tarea, especifique un nombre de tarea y una descripción de la tarea, como se muestra en la Figura 54. El punto final de origen, el punto final de destino y la instancia de replicación están codificados de forma rígida. Seleccione Tipo de migración como Migrar datos existentes. Seleccione la casilla de verificación Iniciar tarea al crear.


Figura 54: Crear tarea

En Configuración de tareas, seleccione/establezca Modo de preparación de tabla de objetivos como No hacer nada , Incluir columnas LOB en la replicación como modo LOB limitado y el tamaño máximo de LOB como 32 kb, como se muestra en la Figura 55. Seleccione Habilitar registro opción.


Figura 55: Configuración de tareas

En Asignaciones de tablas , que se muestra en la Figura 56, se debe agregar al menos una regla de selección.


Figura 56: Asignaciones de tablas

Seleccione Introducir un esquema opción en el Nombre del esquema es campo. Especifique El nombre del esquema es como mysql , como se muestra en la Figura 57. Especifique El nombre de la tabla es como innodb_index_stats. Seleccione Acción como Incluir . Haz clic en Añadir regla de selección .


Figura 57: Agregar una regla de selección

Para agregar otra regla de selección, haga clic en agregar regla de selección enlace, como se muestra en la Figura 58.


Figura 58: Añadir regla de selección

Agregue una regla de selección para incluir la tabla mysql.innodb_table_stats , como se muestra en la Figura 59.


Figura 59: Agregar una regla de selección para mysql.innodb_table_stats

Se pueden agregar reglas de selección, una para cada tabla, o usando una expresión regular comodín. A continuación, usaremos un % para agregar una regla de selección. Haga clic en añadir regla de selección , como se muestra en la Figura 60.


Figura 60: Añadir enlace de regla de selección

Especificar Esquema como mysql y especifique Nombre de la tabla como time_zone% , que representa todas las tablas que comienzan con "time_zone" (consulte la Figura 61).


Figura 61: Agregar una regla de selección para incluir todas las tablas en el esquema mysql que comienzan con time_zone

Haz clic en Crear tarea para crear una tarea, como se muestra en la Figura 62.


Figura 62: Crear tarea

Se agrega una nueva tarea con el estado Creando inicialmente, como se muestra en la Figura 63. Haga clic en Actualizar datos del servidor periódicamente para actualizar el estado de la tarea.


Figura 63: Tarea añadida con estado Creando

Cuando la tarea se ha creado y está lista para ejecutarse, el Estado pasa a ser Listo, como se muestra en la Figura 64.


Figura 64: Estado de la tarea Listo

Ejecución de la tarea de replicación

Para iniciar la instancia de replicación, haga clic en el botón Iniciar/Reanudar, como se muestra en la Figura 65.


Figura 65: Iniciar/Reanudar

El estado de la tarea pasa a ser Iniciando (ver Figura 66). Periódicamente, haga clic en Actualizar datos del servidor para actualizar el estado como se muestra en la Figura 66.


Figura 66: Estado de la tarea comenzando

El estado de la tarea pasa a ser En ejecución cuando la tarea comienza a ejecutarse. Cuando la carga completa se ha completado, el estado pasa a ser Carga completa , como se muestra en la Figura 67.


Figura 67: Carga completa

Explorando las tablas migradas

Las Tablas cargadas columna tiene un valor de 7 para las siete tablas migradas, como se muestra en la Figura 68.


Figura 68: Siete tablas migradas

Para encontrar detalles sobre las tablas migradas, seleccione Estadísticas de tabla pestaña, como se muestra en la Figura 69.


Figura 69: Estadísticas de la tabla

Se enumeran todas las tablas que se han migrado, como se muestra en la Figura 70.


Figura 70: Tablas migradas

Exploración de los registros de CloudWatch

Para explorar los registros de CloudWatch, haga clic en el enlace de Registros. pestaña (ver Figura 71).


Figura 71: Enlace de registros

Los registros de CloudWatch enumeran una entrada de registro para cada tabla migrada, como se muestra en la Figura 72. Cuando se han migrado todas las tablas que se configuraron mediante las reglas de selección y transformación, se agrega la entrada de registro "Todas las tablas están cargadas".


Figura 72: Registros de CloudWatch

Cuando se han cargado todas las tablas, aparece una entrada de registro Gestión de tareas finalizada se agrega, como se muestra en la Figura 73.


Figura 73: Gestión de tareas finalizada

Eliminar una migración

Para eliminar una migración, la secuencia es inversa a la de crear una migración.

  1. Eliminar la(s) tarea(s) de migración.
  2. Elimine los extremos de la base de datos.
  3. Elimine la instancia de replicación.

Para eliminar la tarea, seleccione la tarea y haga clic en Eliminar, como se muestra en la Figura 74.


Figura 74: Tarea>Eliminar

En el cuadro de diálogo Eliminar tarea, haga clic en Eliminar, como se muestra en la Figura 75.


Figura 75: Cuadro de diálogo de confirmación de eliminación de tareas

El estado de la tarea pasa a ser Eliminando (ver Figura 76).


Figura 76: Eliminación de tareas

Para eliminar los puntos finales, seleccione los puntos finales y haga clic en Eliminar, como se muestra en la Figura 77.


Figura 77: Puntos finales>Eliminar

En Eliminar punto final cuadro de diálogo de confirmación, haga clic en Eliminar, como se muestra en la Figura 78.


Figura 78: Cuadro de diálogo de confirmación de eliminación de punto final

El estado de los puntos finales pasa a ser Eliminando, como se muestra en la Figura 79.


Figura 79: Eliminación de puntos finales

Para eliminar una instancia de replicación, seleccione la instancia de replicación y haga clic en Eliminar, como se muestra en la Figura 80.


Figura 80: Instancias de replicación>Eliminar

En Eliminar instancia de replicación cuadro de diálogo de confirmación, haga clic en Eliminar (consulte la Figura 81).


Figura 81: Diálogo de confirmación Eliminar instancia de replicación

El estado de la instancia de replicación pasa a ser Eliminando, como se muestra en la Figura 82.


Figura 82: Eliminación de instancia de replicación

Eliminación de instancias de base de datos

A continuación, elimine las bases de datos de origen y de destino. Para eliminar la base de datos de destino, que es una base de datos MySQL en RDS, seleccione la instancia de la base de datos en la tabla Todas las instancias y haga clic en Acciones de la instancia>Eliminar, como se muestra en la Figura 83.


Figura 83: Acciones de instancia>Eliminar

En Eliminar instancia de base de datos, seleccione la opción para no crear una instantánea final y seleccione la casilla de confirmación y haga clic en Eliminar, como se muestra en la Figura 84.


Figura 84: Cuadro de diálogo Eliminar instancia de base de datos

La instancia de base de datos de RDS comienza a eliminarse, como lo indica el estado Eliminando en la Figura 85.


Figura 85: Eliminación de instancias de base de datos de RDS

Para eliminar la instancia de base de datos de CloudSQL, haga clic con el botón derecho en mysql icono de administración de instancias de base de datos y seleccione Eliminar (consulte la Figura 86).


Figura 86: CloudSQL mysql>Eliminar

En ¿Eliminar instancia? cuadro de diálogo de confirmación, especifique el nombre de la instancia en el campo provisto para confirmar que la instancia se eliminará y haga clic en Eliminar, como se muestra en la Figura 87.


Figura 87: Diálogo de confirmación de eliminación de instancia

Conclusión

En este artículo, analizamos la migración de MySQL en CloudSQL a AWS RDS mediante AWS Database Migration Service.