Tutorial: Migración de RDS PostgreSQL a Azure Database for PostgreSQL en línea mediante DMS
Importante
Se recomienda usar el nuevo servicio de migración en Azure Database for PostgreSQL para una experiencia de migración más simplificada y eficaz. Este servicio simplifica el proceso al admitir una variedad de entornos de origen, lo que garantiza una transición sin complicaciones a Azure Database for PostgreSQL.
Puede utilizar Azure Database Migration Service para migrar bases de datos de una instancia de PostgreSQL de RDS a Azure Database for PostgreSQL mientras la base de datos de origen permanece en línea durante la migración. En otras palabras, la migración se puede completar con un tiempo de inactividad mínimo para la aplicación. En este tutorial, va a migrar la base de datos de ejemplo DVD Rental
de una instancia de PostgreSQL 9.6 de RDS a Azure Database for PostgreSQL mediante la actividad de migración en línea de Azure Database Migration Service.
En este tutorial, aprenderá a:
- Migre el esquema de ejemplo mediante la utilidad pg_dump.
- Crear una instancia de Azure Database Migration Service.
- Crear un proyecto de migración mediante Azure Database Migration Service.
- Ejecutar la migración.
- Supervisar la migración
- Realizar la migración total.
El uso de Azure Database Migration Service para realizar una migración en línea requiere la creación de una instancia basada en el plan de tarifa Premium. Para más información, consulte la página de precios de Azure Database Migration Service. El disco se cifra para impedir el robo de datos durante el proceso de migración.
Importante
Para disfrutar de una experiencia de migración óptima, Microsoft recomienda crear una instancia de Azure Database Migration Service en la misma región de Azure que la base de datos de destino. Si los datos se transfieren entre diferentes regiones o ubicaciones geográficas, el proceso de migración puede verse afectado y pueden producirse errores.
Sugerencia
En Azure Database Migration Service, puede migrar las bases de datos sin conexión o mientras están en línea. Con una migración sin conexión, el tiempo de inactividad de la aplicación se inicia cuando comienza la migración. Para limitar el tiempo de inactividad al tiempo necesario para la transición al nuevo entorno cuando finalice la migración, use una migración en línea. Se recomienda probar una migración sin conexión para determinar si el tiempo de inactividad es aceptable. Si el tiempo de inactividad esperado no es aceptable, realice una migración en línea.
En este artículo se describe cómo realizar una migración en línea de una instancia local de PostgreSQL a Azure Database for PostgreSQL.
Prerrequisitos
Para completar este tutorial, necesita:
Descargue e instale PostgreSQL community edition 9.5, 9.6 o 10. La versión del servidor PostgreSQL Server de origen debe ser la 9.5.11, 9.6.7, 10 o una posterior. Para más información, consulte el artículo acerca de las versiones de base de datos admitidas de PostgreSQL.
La versión de Azure Database for PostgreSQL de destino debe ser igual o posterior a la versión de RDS PostgreSQL. Por ejemplo, RDS PostgreSQL 9.6 solo puede migrarse a Azure Database for PostgreSQL 9.6, 10 u 11, pero no a Azure Database for PostgreSQL 9.5.
Creación de una instancia de Azure Database for PostgreSQL: servidor flexible.
Cree una instancia de Azure Virtual Network para Azure Database Migration Service mediante el modelo de implementación de Azure Resource Manager, que proporciona conectividad de sitio a sitio a los servidores de origen local mediante ExpressRoute o VPN. Para más información sobre la creación de una red virtual, consulte la documentación de Virtual Networky, especialmente, los artículos de inicio rápido con detalles paso a paso.
Asegúrese de que las reglas del grupo de seguridad de red de la red virtual no bloquean el puerto de salida 443 de ServiceTag para ServiceBus, Storage y AzureMonitor. Para más información sobre el filtrado del tráfico con grupos de seguridad de red para redes virtuales, vea el artículo Filtrado del tráfico de red con grupos de seguridad de red.
Configurar su Firewall de Windows para acceder al motor de base de datos.
Abra el Firewall de Windows para permitir que Azure Database Migration Service tenga acceso al servidor PostgreSQL de origen que, de manera predeterminada, es el puerto TCP 5432.
Cuando se usa un dispositivo de firewall frente a las bases de datos de origen, puede que sea necesario agregar reglas de firewall para permitir que Azure Database Migration Service acceda a las bases de datos de origen para realizar la migración.
Cree una regla de firewall en el nivel de servidor para que Azure Database for PostgreSQL permita a Azure Database Migration Service tener acceso a las bases de datos de destino. Proporcione el rango de subred de la red virtual que se usa para Azure Database Migration Service.
Configuración de AWS RDS PostgreSQL para la replicación
Para crear un nuevo grupo de parámetros, siga las instrucciones proporcionadas por AWS en el artículo Trabajo con los grupos de parámetros de base de datos.
Use el nombre de usuario maestro para conectarse al origen de Azure Database Migration Service. Si usa una cuenta distinta de la cuenta de usuario maestro, la cuenta debe contar con los roles rds_superuser y rds_replication. El rol rds_replication concede permisos para administrar ranuras lógicas y transmitir datos mediante ranuras lógicas.
Cree un nuevo grupo de parámetros con la siguiente configuración:
Establezca el parámetro
rds.logical_replication
en el grupo de parámetros de base de datos en1
.max_wal_senders
= [número de tareas simultáneas]. El parámetromax_wal_senders
establece el número de tareas simultáneas que se pueden ejecutar. Configuración recomendada:10
.max_replication_slots
= [número de ranuras]. Configuración recomendada:5
.
Asocie el grupo de parámetros que creó a la instancia de PostgreSQL de RDS.
Migración del esquema
Extraiga el esquema de la base de datos de origen y aplíquelo a la base de datos de destino para completar la migración de todos los objetos de base de datos como esquemas de tabla, índices y procedimientos almacenados.
La forma más fácil de migrar solo el esquema es usar pg_dump con la opción -s. Para obtener más información, consulte los ejemplos en el tutorial de Postgres pg_dump.
pg_dump -O -h hostname -U db_username -d db_name -s > your_schema.sql
Por ejemplo, para volcar un archivo de esquema para la base de datos dvdrental, use el siguiente comando:
pg_dump -O -h localhost -U postgres -d dvdrental -s > dvdrentalSchema.sql
Cree una base de datos vacía en el servicio de destino, que es Azure Database for PostgreSQL: servidor flexible.
Importe el esquema al servicio de destino, que es Azure Database for PostgreSQL. Para restaurar el archivo de volcado del esquema, ejecute el siguiente comando:
psql -h hostname -U db_username -d db_name < your_schema.sql
Por ejemplo:
psql -h mypgserver-20170401.postgres.database.azure.com -U postgres -d dvdrental < dvdrentalSchema.sql
Nota
El servicio de migración controla internamente la habilitación o deshabilitación de claves externas y desencadenadores para garantizar una migración de datos confiable y sólida. Como resultado, no tiene que preocuparse por realizar modificaciones en el esquema de la base de datos de destino.
Registrar el proveedor de recursos
Registre el proveedor de recursos Microsoft.DataMigration antes de crear su primera instancia de Database Migration Service.
Inicie sesión en Azure Portal. Busque y seleccione Suscripciones.
Seleccione la suscripción en la que quiere crear la instancia de Azure Database Migration Service y después seleccione Proveedores de recursos.
Busque la migración y, después, seleccione Registrar para Microsoft.DataMigration.
Creación de una instancia de Azure Database Migration Service
En Azure Portal, seleccione + Crear un recurso, busque Azure Database Migration Service y, después, seleccione Azure Database Migration Service en la lista desplegable.
En la pantalla Azure Database Migration Service, seleccione Crear.
En la pantalla Crear el servicio de migración, especifique un nombre para el servicio, la suscripción y un grupo de recursos nuevo o existente.
Seleccione la ubicación en la que quiere crear la instancia de Azure Database Migration Service.
Seleccione una red virtual existente o cree una nueva.
La red virtual proporciona a Azure Database Migration Service acceso a la instancia de PostgreSQL de origen y a la instancia de Azure Database for PostgreSQL de destino.
Para más información sobre cómo crear una red virtual en Azure Portal, consulte el artículo Creación de una red virtual con Azure Portal.
Seleccione un plan de tarifa. Para esta migración en línea, seleccione el plan de tarifa Premium: 4vCores.
Seleccione Crear para crear el servicio.
Creación de un proyecto de migración
Después de crear el servicio, búsquelo en Azure Portal, ábralo y cree un proyecto de migración.
En Azure Portal, seleccione Todos los servicios, busque Azure Database Migration Service y, luego, elija Azure Database Migration Services.
En la pantalla Azure Database Migration Services, busque el nombre de la instancia de Azure Database Migration Service que ha creado, selecciónela y, luego, elija + Nuevo proyecto de migración.
En la pantalla Nuevo proyecto de migración, especifique un nombre para el proyecto. En el cuadro de texto Tipo de servidor de origen, seleccione AWS RDS for PostgreSQL y, en el cuadro de texto Tipo de servidor de destino, elija Azure Database for PostgreSQL.
En la sección Elegir el tipo de actividad, seleccione Migración de datos en línea.
Importante
Seleccione Migración de datos en línea. Las migraciones sin conexión no se admiten para este escenario.
Como alternativa, puede elegir Crear solo un proyecto para crear el proyecto de migración ahora y ejecutar la migración más adelante.
Seleccione Guardar.
Seleccione Crear y ejecutar una actividad para crear el proyecto y ejecutar la actividad de migración.
Tome nota de los requisitos previos necesarios para configurar la migración en línea en el panel de creación de proyecto.
Especificación de los detalles de origen
En la pantalla Agregar detalles de origen, especifique los detalles de conexión de la instancia de PostgreSQL de origen.
Especificación de los detalles de destino
Seleccione Guardar y, a continuación, en la pantalla Detalles de destino, especifique los detalles de conexión para el servidor de Azure Database for PostgreSQL de destino, que se ha aprovisionado previamente y tiene el esquema DVD Rentals implementado mediante pg_dump.
Seleccione Guardar y, en la pantalla Asignar a las bases de datos de destino, asigne la base de datos de origen y de destino para la migración.
Si la base de datos de destino contiene el mismo nombre de base de datos que la de origen, Azure Database Migration Service selecciona la base de datos de destino de forma predeterminada.
Seleccione Guardar, en la pantalla Resumen de migración, en el cuadro de texto Nombre de la actividad, especifique un nombre para la actividad de migración y, a continuación, revise el resumen para asegurarse de que los detalles de origen y destino coinciden con lo que especificó anteriormente.
Ejecución de la migración
Seleccione Ejecutar migración.
Aparecerá la ventana de actividad de migración. El estado de la actividad es Inicializando.
Supervisión de la migración
En la pantalla de la actividad de migración, seleccione Actualizar para actualizar la vista hasta que el valor de Estado de la migración sea En ejecución.
En NOMBRE DE LA BASE DE DATOS, seleccione una base de datos específica para obtener el estado de migración para las operaciones Carga completa de los datos y Sincronización de datos incrementales.
Carga completa de los datos muestra el estado de migración de la carga inicial mientras que Sincronización de datos incrementales muestra el estado de la captura de datos modificados (CDC).
Realización de migración total
Una vez finalizada la carga completa inicial, las bases de datos se marcan como Lista para la transición.
Cuando esté listo para completar la migración de la base de datos, seleccione Iniciar transición.
Espere a que el contador de Cambios pendientes muestre
0
para garantizar que todas las transacciones entrantes a la base de datos de origen están detenidas, seleccione la casilla Confirmar y, luego, seleccione Aplicar.Cuando aparezca el estado Completado de la migración de base de datos, conecte las aplicaciones a la nueva base de datos de Azure Database for PostgreSQL de destino.
Su migración en línea de una instancia local de RDS PostgreSQL a Azure Database for PostgreSQL ya está completa.