Tutorial: Migración de PostgreSQL a Azure Database for PostgreSQL en línea con DMS (clásico) a través de Azure Portal
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.
Para más información sobre Azure Database Migration Service, vea el artículo ¿Qué es Azure Database Migration Service?
Puede usar Azure Database Migration Service para migrar las bases de datos de una instancia de PostgreSQL local a Azure Database for PostgreSQL con un tiempo de inactividad mínimo para la aplicación. En este tutorial, va a migrar la base de datos de ejemplo listdb de una instancia local de PostgreSQL 13.10 a Azure Database for PostgreSQL mediante la actividad de migración en línea de Azure Database Migration Service.
En este tutorial, aprenderá a:
- Migrar el esquema de ejemplo mediante la utilidad pg_dump.
- Crear una instancia de Azure Database Migration Service.
- Crear un proyecto de migración en una instancia de 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. 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.
Prerrequisitos
Para completar este tutorial, necesita:
Descargue e instale PostgreSQL Community Edition. La versión de PostgreSQL Server de origen debe ser >= 9.4. Para más información, vea Versiones de PostgreSQL admitidas en Azure Database for PostgreSQL: Servidor flexible.
Tenga en cuenta también que la versión de Azure Database for PostgreSQL de destino debe ser igual o posterior a la versión local de PostgreSQL. Por ejemplo, PostgreSQL 12 puede migrarse a la versión Azure Database for PostgreSQL >= 12, pero no a Azure Database for PostgreSQL 11.
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.
Durante la configuración de la red virtual, si usa ExpressRoute con emparejamiento de red a Microsoft, agregue los siguientes puntos de conexión de servicio a la subred en la que se aprovisionará el servicio:
- Punto de conexión de base de datos de destino (por ejemplo, punto de conexión de SQL, punto de conexión de Azure Cosmos DB, etc.)
- Punto de conexión de Storage
- Punto de conexión de Service Bus
Esta configuración es necesaria porque Azure Database Migration Service no tiene conexión a Internet.
Asegúrese de que las reglas del grupo de seguridad de red (NSG) para 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, es posible 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.
Habilite la replicación lógica en el archivo postgresql.config y establezca los parámetros siguientes:
- wal_level = logical
- max_replication_slots = [número de ranuras], se recomienda establecer en cinco ranuras
- max_wal_senders = [número de tareas simultáneas]; el parámetro max_wal_senders establece el número de tareas simultáneas que puede ejecutar; se recomienda establecerlo en 10 tareas
El usuario debe tener el rol REPLICACIÓN en el servidor que hospeda la base de datos de origen.
Importante
Todas las tablas de la base de datos existente necesitan una clave principal para asegurarse de que todos los cambios se puedan sincronizar en la base de datos de destino.
Migración del esquema de ejemplo
Para completar todos los objetos de base de datos como esquemas de tabla, índices y procedimientos almacenados, se debe extraer el esquema de la base de datos de origen y aplicarlo a la base de datos.
Use el comando pg_dump -s para crear un archivo de volcado de esquema para una base de datos.
pg_dump -O -h hostname -U db_username -d db_name -s > your_schema.sql
Por ejemplo, para crear un archivo de copia de seguridad del esquema para la base de datos listdb:
pg_dump -O -h localhost -U postgres -d listdb -s -x > listdbSchema.sql
Para más información sobre el uso de la utilidad pg_dump, vea los ejemplos del tutorial pg volcado.
Cree una base de datos vacía en el entorno de destino, que es Azure Database for PostgreSQL.
Consulte el artículo Creación de un servidor de Azure Database for PostgreSQL en Azure Portal para obtener más información sobre cómo crear una base de datos y conectarse a ella.
Importe el esquema en la base de datos de destino que creó restaurando el archivo de volcado de esquema.
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 migratedb < listdbSchema.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 el menú de Azure Portal o en la página principal, seleccione Crear un recurso. Busque y seleccione Azure Database Migration Service.
En la pantalla Azure Database Migration Service, seleccione Crear.
Seleccione el tipo de servidor de origen y el tipo de servidor de destino adecuados y elija la opción Database Migration Service (clásico).
En la pantalla de aspectos básicos Crear el servicio de migración:
- Seleccione la suscripción.
- Cree un grupo de recursos o seleccione uno existente.
- Especifique un nombre para la instancia de Azure Database Migration Service.
- Seleccione la ubicación en la que quiere crear la instancia de Azure Database Migration Service.
- Elija Azure como modo de servicio.
- Seleccione un plan de tarifa. Para más información sobre los costos y planes de tarifa, vea la página de precios.
- Seleccione Siguiente: Redes.
En la pantalla de red Crear el servicio de migración:
- Seleccione una red virtual existente o cree una nueva. La red virtual proporciona a Azure Database Migration Service acceso al servidor de origen y a la instancia 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 Revisar y crear para revisar los detalles y luego Crear para crear el servicio.
Transcurridos unos momentos, se crea la instancia de Azure Database Migration Service y estará lista para usarse:
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 New migration project (Nuevo proyecto de migración), especifique un nombre para el proyecto. En el cuadro de texto Source server type (Tipo de servidor de origen), seleccione PostgreSQL y, en el cuadro de texto Target server type (Tipo de servidor de destino), seleccione Azure Database for PostgreSQL.
En la sección Tipo de actividad de migración, seleccione Migración de datos en línea.
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 Crear y ejecutar actividad para usar correctamente Azure Database Migration Service cuando se migran datos.
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
En la pantalla Detalles de destino, especifique los detalles de la conexión para el servidor flexible de destino de Azure Database for PostgreSQL, que es la instancia aprovisionada anteriormente en la que se implementó el esquema mediante pg_dump.
Seleccione Siguiente: Seleccionar bases datos y, después, en la pantalla Seleccionar bases de datos, asigne la base de datos de origen y de destino para su 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 Siguiente: Seleccionar tablas y, después, en la pantalla Seleccionar tablas, seleccione las tablas necesarias que se deben migrar.
Seleccione Siguiente: Configurar las opciones de migración y, después, en la pantalla Configurar opciones de migración, acepte los valores predeterminados.
En la pantalla Resumen de migración del 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 Iniciar migración.
Aparecerá la ventana de actividad de migración y el estado de la actividad debería actualizarse para mostrar Copia de seguridad en curso.
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 Completado.
Cuando se complete la migració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.
Nota
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 completada la carga completa inicial, las bases de datos se marcan como A punto para la migración total.
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, recree las secuencias (si procede) y conecte las aplicaciones a la nueva instancia de destino de Azure Database for PostgreSQL.