La base de datos MySQL y la base de datos PostgreSQL son sistemas de gestión de bases de datos relacionales (RDBMS) de código abierto clasificados en 2 y 4, respectivamente, según DBEngines.com. Ambos están implementados en C (C++ también se usa para la base de datos MySQL) y ambos brindan características similares, como compatibilidad con XML, índices secundarios, concurrencia, durabilidad y funciones definidas por el usuario. La base de datos PostgreSQL proporciona varias ventajas, algunas de las cuales son las siguientes:
- Admite tipos de datos avanzados, como matrices multidimensionales y tipos definidos por el usuario
- Expresiones de tabla comunes (CTE) y funciones de ventana han estado disponibles desde PostgreSQL 8.4, mientras que solo se agregaron a MySQL en la versión 8.0
- Admite uniones externas completas
- Admite listas de VALORES para generar una "tabla constante" que se puede usar en una consulta
- Admite funciones de devolución definidas generate_series
- Admite consultas paralelas utilizando múltiples CPU para responder consultas más rápido desde la versión 9.6
- Admite vistas materializadas
Si migra de MySQL a la base de datos PostgreSQL AWS, DMS (Servicio de migración de base de datos) proporciona un servicio administrado confiable sin tiempo de inactividad para la replicación continua de datos. En cuatro tutoriales, analizaremos la migración de una instancia de base de datos MySQL a una base de datos PostgreSQL, ambas ejecutándose en AWS Relational Database Service (RDS). Este tutorial tiene las siguientes secciones:
- Configuración del entorno
- Creación de un usuario de IAM para DMS
Configuración del entorno
El único requisito previo es una cuenta de AWS, que se puede crear en este enlace. Cree una clave de cifrado maestra de KMS para usar con DMS si aún no hay una clave maestra disponible. Se crea una clave maestra de KMS a partir de las IAM>Claves de cifrado. panel. Hemos utilizado una clave de cifrado maestra de KMS llamada "dbms" en este tutorial.
Instale la base de datos MySQL y la base de datos PostgreSQL en una máquina local para usar las aplicaciones de la interfaz del cliente para conectarse a las instancias de la base de datos MySQL y PostgreSQL en RDS.
Creación de un usuario de IAM para DMS
DMS está completamente integrado con varios otros servicios de AWS, como RDS para bases de datos, IAM para administración de acceso e identidad, KMS para cifrado de datos y CloudWatch para registro. DMS también es compatible con S3 (Simple Storage Service) como destino de una migración. En esta sección, crearemos un usuario de IAM que se usa con DMS para migrar una instancia de la base de datos MySQL a la base de datos PostgreSQL. El usuario de IAM se crea de la siguiente manera:
- Cree una política de IAM con todos los permisos y declaraciones de política necesarios.
- Cree un usuario de IAM según la política de IAM.
Para crear una política de IAM, haga clic en Crear política en el Panel de IAM, como se muestra en la Figura 1.
Figura 1: Crear política
En Crear política asistente, seleccione Crear su propia política , como se muestra en la Figura 2.
Figura 2: Selección de la opción Crear su propia póliza
En Política de revisión , especifique un Nombre de política (DMS). Luego, copie el siguiente documento de política en el Documento de política campo o región.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "*" }, { "Effect": "Allow", "Action": "s3:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ds:*", "Resource": "*" }, { "Effect": "Allow", "Action": "rds:*", "Resource": "*" }, { "Effect": "Allow", "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Effect": "Allow", "Action": "cloudwatch:*", "Resource": "*" }, { "Effect": "Allow", "Action": "aws-marketplace:*", "Resource": "*" }, { "Effect": "Allow", "Action": "logs:*", "Resource": "*" } ] }
El documento de política agrega permisos para acceder a CloudWatch para registro y RDS para bases de datos. Haga clic en Validar política y, si el mensaje es "La política es válida", haga clic en Crear política , como se muestra en la Figura 3.
Figura 3: Crear política
Si se crea la política, debería mostrarse el mensaje que se muestra en la Figura 4.
Figura 4: Se ha creado DMS
A continuación, agregue un usuario de IAM. Seleccione Usuarios en el panel de control de IAM y haga clic en Agregar usuario , como se muestra en la Figura 5.
Figura 5: Añadir usuario
Especifique un Nombre de usuario (dvohra). Luego, seleccione las dos opciones enumeradas para Tipo de acceso (ver Figura 6).
Figura 6: Adición de detalles de usuario
Seleccione la Contraseña personalizada opción para contraseña de consola , especifique una contraseña y haga clic en Siguiente:Permisos , como se muestra en la Figura 7.
Figura 7: Configuración del tipo de acceso
A continuación, establezca los permisos para el usuario. Haga clic en Adjuntar políticas existentes directamente , como se muestra en la Figura 8.
Figura 8: Adjuntar políticas existentes directamente
En el Tipo de póliza filtro, busque "DMS", que es la política creada anteriormente. Seleccione la política de DMS como se muestra en la Figura 9 y haga clic en Siguiente.
Figura 9: Selección de la política de DMS
En Revisión , la política de DMS debe aparecer como Política administrada en los Permisos resumen. Haz clic en Crear usuario , como se muestra en la Figura 10.
Figura 10: Crear usuario
Se crea el usuario de IAM (consulte la Figura 11).
Figura 11: Usuario de IAM creado
El usuario de IAM aparece en la lista de IAM>Usuarios tablero, como se muestra en la Figura 12.
Figura 12: Usuario de gestión de identidades y accesos
Para iniciar sesión como el usuario de IAM creado, haga clic en el enlace del usuario, seleccione Credenciales de seguridad y copie el enlace de inicio de sesión de la consola , como se muestra en la Figura 13.
Figura 13: Enlace de inicio de sesión de la consola
Inicie sesión como el usuario de IAM creado mediante el enlace de inicio de sesión de la consola para las secciones posteriores.
Conclusión
En este primero de cuatro tutoriales sobre cómo migrar una instancia de base de datos MySQL en RDS a una instancia de base de datos Postgres en RDS, creamos un usuario de IAM para realizar la migración.