Tutorial: Migración o actualización de una instancia de Azure Database for PostgreSQL: servidor único en línea con DMS mediante Azure Portal

Puede usar Azure Database Migration Service para migrar las bases de datos de una instancia de Azure Database for PostgreSQL: servidor único a la misma u otra versión de la instancia de Azure Database for PostgreSQL: servidor único o Azure Database for PostgreSQL: servidor flexible con un tiempo de inactividad mínimo. En este tutorial, va a migrar la base de datos de ejemplo DVD Rental de una instancia de Azure Database for PostgreSQL v10 a otra instancia de Azure Database for PostgreSQL: servidor único 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.

Nota

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.

Importante

La migración desde Azure Database for PostgreSQL es compatible con la versión 9.x y versiones posteriores de PostgreSQL. También puede usar este tutorial para migrar de una instancia de Azure Database for PostgreSQL a otra o a una instancia de Hiperescala (Citus). Tenga en cuenta que la migración desde PostgreSQL 9.5 y 9.6 requiere privilegios de replicación lógica adicionales en la instancia de origen.

Requisitos previos

Para completar este tutorial, necesita:

  • Consulte Estado de los escenarios de migración que admite Azure Database Migration Service para conocer las combinaciones de versión y migración aceptadas.

  • Una instancia de Azure Database for PostgreSQL, versión 10 y posterior, con la base de datos DVD Rental.

    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 10 puede migrarse a Azure Database for PostgreSQL 10 u 11, pero no a Azure Database for PostgreSQL 9.6.

  • Cree un servidor de Azure Database for PostgreSQL o cree un servidor de Azure Database for PostgreSQL: Hiperescala (Citus) como servidor de bases de datos de destino al que migrar los datos.

  • Cree una instancia de Microsoft Azure Virtual Network para Azure Database Migration Service mediante el modelo de implementación de Azure Resource Manager. 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 (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.

  • Cree una regla de firewall en el nivel de servidor para que el origen de Azure Database for PostgreSQL permita a Azure Database Migration Service acceder a las bases de datos de origen. Proporcione el rango de subred de la red virtual que se usa para Azure Database Migration Service.

  • Cree una regla de firewall en el nivel de servidor para que el destino de Azure Database for PostgreSQL permita a Azure Database Migration Service acceder 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 origen de Azure Database for PostgreSQL.

  • Establezca los siguientes parámetros de servidor de la instancia de Azure Database for PostgreSQL que se usa como origen:

    • max_replication_slots = [número de ranuras]; se recomienda establecer en diez 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

Nota

Los parámetros de servidor anteriores son estáticos y será necesario reiniciar la instancia de Azure Database for PostgreSQL para que surtan efecto. Para más información sobre cómo activar o desactivar los parámetros de servidor, consulte Configuración de parámetros de servidor en Azure Database for PostgreSQL.

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.

  1. 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 dvdrental:

    pg_dump -O -h mypgserver-source.postgres.database.azure.com -U pguser@mypgserver-source -d dvdrental -s -x > dvdrentalSchema.sql
    

    Para más información sobre el uso de la utilidad pg_dump, vea los ejemplos del tutorial pg volcado.

  2. Cree una base de datos vacía en el entorno de destino, que es Azure Database for PostgreSQL.

    Para más información sobre cómo crear una base de datos y conectarse a ella, consulte el artículo Inicio rápido: Creación de un servidor de Azure Database for PostgreSQL en Azure Portal o Inicio rápido: Creación de una instancia de Hiperescala (Citus) de Azure Database for PostgreSQL en Azure Portal.

    Nota

    Una instancia de Azure Database for PostgreSQL: Hiperescala (Citus) solo tiene una base de datos única: citus.

  3. 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-source.postgres.database.azure.com  -U pguser@mypgserver-source -d dvdrental citus < 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.

  1. Inicie sesión en Azure Portal. Busque y seleccione Suscripciones.

    Mostrar suscripciones en el portal

  2. Seleccione la suscripción en la que quiere crear la instancia de Azure Database Migration Service y después seleccione Proveedores de recursos.

    Mostrar los proveedores de recursos

  3. Busque la migración y, después, seleccione Registrar para Microsoft.DataMigration.

    Registro del proveedor de recursos

Creación de una instancia de DMS

  1. En Azure Portal, seleccione + Crear un recurso, busque Azure Database Migration Service y, después, seleccione Azure Database Migration Service en la lista desplegable.

    Azure Marketplace

  2. En la pantalla Azure Database Migration Service, seleccione Crear.

    Creación de una instancia de Azure Database Migration Service

  3. En la pantalla Crear el servicio de migración, especifique un nombre, la suscripción, un grupo de recursos nuevo o existente y la ubicación del servicio.

  4. Seleccione una red virtual existente o cree una nueva.

    La red virtual proporciona a Azure Database Migration Service acceso al servidor 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.

  5. Seleccione un plan de tarifa.

    Para más información sobre los costos y planes de tarifa, vea la página de precios.

    Configuración de la instancia de Azure Database Migration Service

  6. Seleccione Revisar y crear para crear el servicio.

    La creación del servicio se completará en un plazo de 10 a 15 minutos.

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.

  1. En Azure Portal, seleccione Todos los servicios, busque Azure Database Migration Service y, luego, elija Azure Database Migration Services.

    Búsqueda de todas las instancias de Azure Database Migration Service

  2. 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.

  3. 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.

    Nota

    Elija PostgreSQL en Source server type (Tipo de servidor de origen) aunque el servidor de origen sea una instancia de Azure Database for PostgreSQL.

  4. En la sección Elegir el tipo de actividad, seleccione Migración de datos en línea.

    Creación de un proyecto de Azure Database Migration Service

    Nota

    Como alternativa, puede elegir Crear solo un proyecto para crear el proyecto de migración ahora y ejecutar la migración más adelante.

  5. Seleccione Guardar, anote los requisitos para usar Azure Database Migration Service correctamente para la migración de los datos y, a continuación, seleccione Crear y ejecutar actividad.

Especificación de los detalles de origen

  1. En la pantalla Agregar detalles de origen, especifique los detalles de conexión de la instancia de PostgreSQL de origen.

    Pantalla Agregar detalles de origen

    Nota

    Puede encontrar detalles como el nombre del servidor, el puerto del servidor, el nombre de la base de datos, etc. en el portal de Azure Database for PostgreSQL.

  2. Seleccione Guardar.

Especificación de los detalles de destino

  1. En la pantalla Detalles de destino, especifique los detalles de conexión para el servidor de Hiperescala (Citus) de destino, que es la instancia aprovisionada previamente de Hiperescala (Citus) y tiene el esquema DVD Rentals implementado mediante pg_dump.

    Pantalla de detalles de destino

    Nota

    Puede migrar de una instancia de Azure Database for PostgreSQL a otra instancia de Azure Database for PostgreSQL: servidor único o a un servidor de Hiperescala (Citus).

  2. 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.

    Pantalla Asignación a bases de datos de destino

  3. Seleccione Guardar y, a continuación, en la pantalla Configuración de la migración, acepte los valores predeterminados.

    Pantalla Configuración de la migración

  4. 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.

    Pantalla Resumen de la migración

Ejecución de la migración

  • Seleccione Ejecutar 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. Puede encontrar el siguiente error al actualizar desde Azure Database for PostgreSQL 9.5 o 9.6:

Un escenario ha notificado un error desconocido. 28000: no pg_hba.conf entry for replication connection from host "40.121.141.121", user "sr" (no hay ninguna entrada pg_hba. conf para la conexión de replicación del host "40.121.141.121", usuario "sr")

Esto se debe a que PostgreSQL no tiene los privilegios adecuados para crear los artefactos de replicación lógica necesarios. Para habilitar los privilegios necesarios, puede hacer lo siguiente:

  1. Abra la configuración de "Seguridad de la conexión" para el servidor de origen de Azure Database for PostgreSQL desde el que quiere migrar o actualizar.
  2. Agregue una nueva regla de firewall con un nombre que termine con "_replrule" y agregue la dirección IP del mensaje de error a los campos IP inicial e IP final. En el caso del ejemplo de error anterior:

Nombre de regla de firewall = sr_replrule; IP inicial = 40.121.141.121; IP final = 40.121.141.121

  1. Haga clic en Guardar y espere a que el cambio se complete.
  2. Vuelva a intentar realizar la actividad de DMS.

Supervisión de la migración

  1. 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.

    Proceso de supervisión de la migración

  2. 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).

    Detalles de la carga completa de los datos

    Detalles de la sincronización de datos incrementales

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.

  1. Cuando esté listo para completar la migración de la base de datos, seleccione Iniciar transición.

  2. Espere a que el contador Cambios pendientes muestre 0 para garantizar que todas las transacciones entrantes a la base de datos de origen están detenidas, active la casilla Confirmar y, luego, seleccione Aplicar.

    Pantalla de migración total completa

  3. 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.

Nota

Azure Database Migration Service puede usarse para realizar actualizaciones de versión principales con un tiempo de inactividad reducido en Azure Database for PostgreSQL: servidor único. En primer lugar, configure una base de datos de destino con la versión más alta de PostgreSQL, la configuración de red y los parámetros. A continuación, puede iniciar la migración a las bases de datos de destino mediante el procedimiento descrito anteriormente. Después de la transferencia al servidor de la base de datos de destino, puede actualizar la cadena de conexión de la aplicación para que apunte al servidor de base de datos de destino.

Pasos siguientes