Compartir vía


Migración en línea, desde un servidor de Amazon Aurora PostgreSQL a Azure Database for PostgreSQL, con el servicio de migración

Este artículo le guía en la migración de una instancia de PostgreSQL desde máquinas virtuales (VM) locales o de Azure a un servidor flexible de Azure Database for PostgreSQL en modo en línea.

El servicio de migración de Azure Database for PostgreSQL es un servicio totalmente administrado integrado en Azure Portal y la CLI de Azure. Está diseñado para simplificar el recorrido de migración al servidor flexible de Azure Database for PostgreSQL.

  • Requisitos previos
  • Realización de la migración
  • Supervisión de la migración
  • Inicio de la transición
  • Comprobación de la migración cuando se complete

Requisitos previos

Para comenzar la migración, necesita los siguientes requisitos previos:

Antes de iniciar una migración mediante el servicio de migración en Azure Database for PostgreSQL, es importante completar los siguientes requisitos previos. Estos requisitos previos están diseñados específicamente para escenarios de migración en línea.

Comprobación de la versión de origen

La versión del servidor PostgreSQL Server de origen debe ser la 9.5 o una posterior. Si la versión de PostgreSQL de origen es anterior a la 9.5, actualice la versión a la 9.5 o posterior antes de iniciar la migración.

Instalar test_decoding para la configuración de origen

  • El complemento test_decoding recibe el registro de escritura previa (WAL) a través del mecanismo de descodificación lógica. El complemento descodifica WAL en representaciones de texto de las operaciones que se realizan.
  • En Amazon RDS for PostgreSQL, el complemento test_decoding está preinstalado y listo para la replicación lógica. Puede configurar fácilmente ranuras de replicación lógica y transmitir cambios WAL, por ejemplo, para la captura de datos modificados (CDC) o para la replicación en sistemas externos.

Para más información sobre el complemento test_decoding, consulte la documentación de PostgreSQL.

Realización de la configuración de destino

Antes de comenzar la migración, debe crear una instancia de Azure Database for PostgreSQL en Azure. La SKU aprovisionada para el servidor flexible de Azure Database for PostgreSQL debe coincidir con la fuente.

Para más información, consulte Creación de un servidor flexible de Azure Database for PostgreSQL.

Habilitación de CDC como origen

  • El complemento de descodificación lógica test_decoding captura los registros modificados del origen.

  • Para permitir que el usuario de migración acceda a los permisos de replicación, ejecute el siguiente comando:

    GRANT rds_replication TO <username>;
    
  • En la instancia de PostgreSQL de origen, modifique los parámetros siguientes en el grupo de parámetros de clústeres de base de datos mediante la creación de un nuevo grupo de parámetros:

    • Establece rds.logical_replication en 1.
    • Establezca max_replication_slots en un valor mayor que 1. El valor debe ser mayor que el número de bases de datos que seleccione para la migración.
    • Establezca max_wal_senders en un valor mayor que 1. Debe ser al menos el mismo valor que el valor de max_replication_slots, además del número de remitentes que ya se han usado en la instancia.
    • El parámetro wal_sender_timeout finaliza las conexiones de replicación inactivas más largas que el número especificado de milisegundos. El valor predeterminado para una instancia de Amazon Aurora PostgreSQL es 30000 milliseconds (30 seconds). Establecer el valor en 0 (zero) deshabilita el mecanismo de tiempo de espera y es una configuración válida para la migración.
  • En el servidor flexible de destino, para evitar que la migración en línea se agote del almacenamiento para almacenar los registros, asegúrese de que tiene suficiente almacenamiento en el espacio de tablas mediante un disco administrado aprovisionado. Deshabilite el parámetro de servidor azure.enable_temp_tablespaces_on_local_ssd durante la migración. Restaure el parámetro al estado original después de la migración.

Realización de la configuración de red

La configuración de red es fundamental para que el servicio de migración funcione correctamente. Asegúrese de que el servidor PostgreSQL de origen pueda comunicarse con el servidor de destino en Azure Database for PostgreSQL.

Para obtener información sobre la configuración de red, consulte Escenarios de red para el servicio de migración.

Habilitación de extensiones

Para asegurarse de que la migración se realiza correctamente usando el servicio de migración en Azure Database for PostgreSQL, es posible que tenga que comprobar las extensiones de la instancia de PostgreSQL de origen. Las extensiones proporcionan funcionalidad y características adicionales que podrían ser necesarias para la aplicación. Asegúrese de comprobar las extensiones en la instancia de PostgreSQL de origen antes de iniciar el proceso de migración.

En la instancia de destino del servidor flexible de Azure Database for PostgreSQL, habilite las extensiones admitidas identificadas en la instancia de PostgreSQL de origen.

Para obtener más información, consulte Extensiones y módulos.

Comprobación de los parámetros del servidor

Los parámetros de servidor no se migran automáticamente al entorno de destino y deben configurarse manualmente.

  • Haga coincidir los valores de los parámetros de servidor de la base de datos PostgreSQL de origen con la instancia de Azure Database for PostgreSQL. En Azure Portal, vaya a Parámetros del servidor y actualice manualmente los valores.

  • Guarde los cambios de los parámetros y, si es necesario, reinicie la instancia de Azure Database for PostgreSQL para aplicar la nueva configuración.

Comprobación de usuarios y roles

Al migrar a Azure Database for PostgreSQL, es esencial abordar la migración de usuarios y roles por separado, ya que requieren intervención manual.

  • Migración manual de usuarios y roles: los usuarios y sus roles asociados deben migrarse manualmente a la instancia de Azure Database for PostgreSQL. Para facilitar este proceso, puede usar la utilidad pg_dumpall con la marca --globals-only para exportar objetos globales, como roles y cuentas de usuario.

    Ejecute el comando siguiente. Reemplace <username> por el nombre de usuario real y reemplace <filename> por el nombre que desea usar para el archivo de salida.

    pg_dumpall --globals-only -U <username> -f <filename>.sql
    
  • Restricción en roles de superusuario: Azure Database for PostgreSQL no admite roles de superusuario. Los permisos de superusuario deben quitarse antes de la migración. Asegúrese de ajustar los permisos y los roles según corresponda.

Si sigue estos pasos, puede asegurarse de que las cuentas de usuario y los roles se migran correctamente a Azure Database for PostgreSQL sin experimentar problemas relacionados con las restricciones de superusuario.

Deshabilitación de la alta disponibilidad (fiabilidad) y las réplicas de lectura en el destino

Es fundamental deshabilitar la alta disponibilidad (confiabilidad) y las réplicas de lectura en el entorno de destino antes de iniciar la migración. Estas características deben habilitarse solo una vez completada la migración.

Realización de la migración

Puede migrar mediante Azure Portal o la CLI de Azure.

Este artículo le guía mediante Azure Portal para migrar la base de datos postgreSQL desde un servidor de Amazon Aurora PostgreSQL a una instancia de Azure Database for PostgreSQL. Azure Portal permite realizar varias tareas, incluida la migración de bases de datos. Siguiendo los pasos descritos en este tutorial, puede transferir sin problemas la base de datos a Azure y aprovechar sus eficaces características y escalabilidad.

Configuración de la tarea de migración

El servicio de migración incluye una experiencia sencilla basada en un asistente en el portal de Azure.

Mediante Azure Portal:

  1. Seleccione su servidor flexible de Azure Database for PostgreSQL.

  2. En el menú de recursos, seleccione Migración.

    Captura de pantalla de la página Migración.

  3. Seleccione Crear para pasar por una serie de pestañas basadas en el asistente para realizar una migración a un servidor flexible desde una máquina virtual local o de Azure.

    Nota:

    La primera vez que utilice el servicio de migración aparecerá una cuadrícula vacía con un mensaje para comenzar la primera migración.

    Si ya se han creado migraciones al destino de servidor flexible, la cuadrícula ahora contiene información sobre los intentos de migración.

    Captura de pantalla de la pestaña Configuración que aparece después de seleccionar Crear en la página Migración.

Configurar

Debe proporcionar varios detalles relacionados con la migración, como el nombre de la migración, el tipo de servidor de origen, la opción y el modo.

  • El nombre de la migración es el identificador único de cada migración a este destino de servidor flexible. Este campo solo acepta caracteres alfanuméricos y no acepta ningún carácter especial excepto un guión (-). El nombre no puede empezar por un guion y debe ser único en un servidor de destino. Dos migraciones al mismo destino de servidor flexible no pueden tener el mismo nombre.

  • Tipo de servidor de origen: en función del origen de PostgreSQL, puede seleccionar Máquina virtual de Azure o servidor local.

  • Opción de migración : permite realizar validaciones antes de desencadenar una migración. Puede elegir cualquiera de las siguientes opciones:

    • Validar : comprueba la preparación del servidor y de la base de datos para la migración al destino.
    • Validar y migrar : realiza la validación antes de desencadenar una migración. Si no hay errores de validación, se inicia la migración.

Elegir la opción Validar o Validar y migrar siempre es un procedimiento recomendado para realizar validaciones de premigración antes de ejecutar la migración.

Para obtener más información sobre la validación de la migración previa, visite Migración previa.

  • El modo de migración permite elegir el modo para la migración. Sin conexión es la opción predeterminada. En este caso, lo cambiaremos a En línea.

Seleccione Siguiente: Servidor en tiempo de ejecución.

Captura de pantalla de la pestaña Configuración después de proporcionar los detalles necesarios.

Servidor en tiempo de ejecución

El servidor en tiempo de ejecución de migración es una característica especializada dentro del servicio de migración en Azure Database for PostgreSQL, diseñada para actuar como servidor intermediario durante la migración. Se trata de una instancia de servidor flexible de Azure Database for PostgreSQL independiente que no es el servidor de destino, pero se usa para facilitar la migración de bases de datos desde un entorno de origen al que solo se puede acceder a través de una red privada.

Captura de pantalla de la pestaña Servidor en tiempo de ejecución.

Para obtener más información sobre el servidor en tiempo de ejecución, visite Servidor en tiempo de ejecución de migración.

Servidor de origen

La pestaña Servidor de origen le pide que proporcione detalles relacionados con el origen seleccionado en la pestaña Configuración , que es el origen de las bases de datos.

  • Nombre del servidor: proporcione el nombre del host o la dirección IP del servidor postgreSQL de origen.
  • Puerto : número de puerto del servidor de origen.
  • Inicio de sesión del administrador : nombre del usuario administrador del servidor postgreSQL de origen.
  • Contraseña : contraseña del inicio de sesión de administrador proporcionado para conectarse al servidor postgreSQL de origen.
  • Modo SSL : los valores admitidos son preferred y required. Cuando el SSL en el servidor PostgreSQL de origen es OFF, use prefer. Si el SSL en el servidor de origen es ON, use el require. Los valores SSL se pueden determinar en el archivo postgresql.conf del servidor de origen.
  • Conexión de prueba : realiza la prueba de conectividad entre el destino y el origen. Una vez que la conexión se haya realizado correctamente, puede continuar con la pestaña siguiente. Estas pruebas tienen como objetivo identificar cualquier problema de conectividad que pueda existir entre los servidores de destino y de origen, incluida la comprobación de la autenticación mediante las credenciales proporcionadas. El establecimiento de una conexión de prueba tarda unos segundos.

Después de la conexión de prueba correcta, seleccione Siguiente: Servidor de destino.

Captura de pantalla de la pestaña Migración del servidor de origen.

Servidor de destino

La pestaña Servidor de destino muestra metadatos para el destino de servidor flexible, como el nombre de la suscripción, el grupo de recursos, el nombre del servidor, la ubicación y la versión de PostgreSQL.

  • Inicio de sesión del administrador: nombre del usuario administrador del servidor postgreSQL de destino.
  • Contraseña : contraseña del inicio de sesión de administrador proporcionado para conectarse al servidor postgreSQL de destino.
  • FQDN personalizado o dirección IP: el campo de dirección IP o FQDN personalizado es opcional y se puede usar cuando el destino está detrás de un servidor DNS personalizado o tiene espacios de nombres DNS personalizados, lo que hace que solo sea accesible a través de FQDN o direcciones IP específicas. Por ejemplo, esto podría incluir entradas como production-flexible-server.example.com, 198.1.0.2o un FQDN de PostgreSQL, como production-flexible-server.postgres.database.azure.com, si el servidor DNS personalizado contiene la zona postgres.database.azure.com DNS o las consultas reenviadas de esta zona a 168.63.129.16, donde el FQDN se resuelve en la zona DNS pública o privada de Azure.
  • Conexión de prueba : realiza la prueba de conectividad entre el origen y el destino. Una vez que la conexión se haya realizado correctamente, puede continuar con la pestaña siguiente. Estas pruebas tienen como objetivo identificar cualquier problema de conectividad que pueda existir entre los servidores de origen y de destino, incluida la comprobación de la autenticación mediante las credenciales proporcionadas. El establecimiento de una conexión de prueba tarda unos segundos.

Después de la conexión de prueba correcta, seleccione Siguiente: Bases de datos para validar o migrar.

Captura de pantalla de la pestaña Migración del servidor de destino.

Bases de datos para validar o migrar

En la pestaña Bases de datos para validar o migrar , puede elegir una lista de bases de datos de usuario para migrar desde el servidor postgreSQL de origen.

Después de seleccionar las bases de datos, seleccione Siguiente: Resumen.

Captura de pantalla de la pestaña Bases de datos para validar o migrar la migración.

Resumen

En la pestaña Resumen se detalla toda la información del origen y el destino para crear la validación o la migración. Revise los detalles y seleccione Iniciar validación y migración.

Captura de pantalla de la pestaña Resumen de la migración.

Cancelación de la validación o migración

Puede cancelar las validaciones o migraciones en curso. El flujo de trabajo debe estar en el estado En curso para cancelarse. No se puede cancelar una validación o migración en el estado Correcto o Erróneo .

La cancelación de una validación detiene cualquier actividad de validación adicional y la validación se mueve a un estado Cancelado .

La cancelación de una migración detiene aún más la actividad de migración en el servidor de destino y se mueve al estado Cancelado . No elimina ni deshace ningún cambio en el servidor de destino. Asegúrese de quitar las bases de datos implicadas en una migración cancelada de su servidor de destino.

Supervisión de la migración

Después de seleccionar el botón Iniciar validación y migración , aparece una notificación, en unos segundos, para decir que la validación o la creación de la migración se han realizado correctamente. Se le redirigirá automáticamente a la página Migración del servidor flexible. La entrada muestra Estado como En curso. El flujo de trabajo tarda entre 2 y 3 minutos en configurar la infraestructura de migración y comprobar las conexiones de red.

Captura de pantalla de la página de migración del monitor.

La cuadrícula que muestra las migraciones tiene las columnas siguientes: Nombre, Estado, Modo de migración, Tipo de migración, Servidor de origen, Tipo de servidor de origen, Bases de datos, Duración y Hora de inicio. Las entradas se muestran ordenadas por Hora de inicio en orden descendente, con la entrada más reciente en la parte superior. Puede usar el botón Actualizar de la barra de herramientas para actualizar el estado de la validación o ejecución de migración.

Detalles de la migración

Seleccione el nombre de la migración en la cuadrícula para ver los detalles asociados.

Recuerde que, en los pasos anteriores, al crear esta migración, configuró la opción de migración como Validar y migrar. En este escenario, las validaciones se realizan primero antes de que se inicie la migración. Una vez completado el subestado Realización de pasos previos, el flujo de trabajo pasa al subestado Validación en progreso.

  • Si la validación tiene errores, la migración pasa a un estado Error.

  • Si la validación se completa sin errores, se inicia la migración y el flujo de trabajo se mueve al subestado de Migración de datos.

Los detalles de validación están disponibles en el nivel de instancia y base de datos.

  • Detalles de validación de la instancia
    • Contiene la validación relacionada con la comprobación de conectividad, la versión de origen, es decir, la versión >de PostgreSQL = 9.5 y la comprobación de parámetros de servidor, si las extensiones están habilitadas en los parámetros de servidor del servidor flexible de Azure Database for PostgreSQL.
  • Detalles de validación y migración para bases de datos
    • Contiene la validación de las bases de datos individuales relacionadas con la compatibilidad de extensiones e intercalaciones en un servidor flexible de Azure Database for PostgreSQL.

Puede ver el estado de validación y el estado de migración en la página de detalles de la migración.

Captura de pantalla de los detalles que muestran la validación y la migración.

Algunos estados de migración posibles:

Estado de migración

Estado Descripción
En curso La infraestructura de migración se está configurando o la migración de datos en sí está en curso.
Cancelado La migración se ha cancelado o eliminado.
Fallido La migración ha fallado.
Error de validación Error en la validación.
Exitoso La migración se ha realizado correctamente y se ha completado.
Esperando la acción del usuario Espera a que la acción del usuario realice la transición.

Detalles de la migración

Subestado Descripción
Realizar pasos previos necesarios La infraestructura se está configurando para la migración de datos.
Validación en curso Validación en curso.
Eliminación de la base de datos en el destino Eliminar la base de datos ya existente en el servidor de destino.
Migración de datos La migración de datos está en curso.
Finalización de la migración La migración está en las últimas fases de finalización.
Completados Se ha completado la migración.
Fallido Se produjeron errores en la migración.

Subestados de validación

Subestado Descripción
Fallido Error de validación.
Exitoso La validación se ha realizado correctamente.
Advertencia La validación está en advertencia.

Inicio de la transición

Puede iniciar la migración mediante Azure Portal o la CLI de Azure.

Para la opción Validar y migrar , la finalización de la migración en línea requiere que el usuario complete un paso adicional, que es desencadenar la acción de transición. Una vez completada la copia o clonación de los datos base, la migración se mueve al Waiting for user action estado y al Waiting for cutover trigger subestado. En este estado, el usuario puede desencadenar la transición desde el portal seleccionando la migración.

Antes de iniciar la transición, es importante comprobar lo siguiente:

  • Las escrituras en el origen se detienen: el valor de latency es 0 o cerca de 0. La latency información se puede obtener de la pantalla de detalles de la migración, como se muestra a continuación:
  • latency el valor disminuye a 0 o cerca de 0
  • El valor latency indica cuándo el destino se sincronizó por última vez con el origen. La escritura en el origen se puede detener en este momento y se puede iniciar una transición. En caso de que haya tráfico pesado en el origen, se recomienda detener primero las escrituras para que latency pueda acercarse a 0 y, a continuación, se inicia una transición.

La operación de transición aplica todos los cambios pendientes del servidor de origen al servidor de destino y completa la migración. Si desencadena una transición, incluso con una latency distinta de cero, la replicación se detiene hasta ese momento dado. Todos los datos del origen hasta el punto de transición se aplican al destino. Si experimenta una latencia de 15 minutos en el punto de transición, todos los cambios realizados en los datos de los últimos 15 minutos se aplican al destino.

El tiempo está condicionado por la acumulación de cambios que se producen en los últimos 15 minutos. Por lo tanto, se recomienda que la latencia vaya a cero o cerca de cero antes de desencadenar la transición.

  • La migración pasa al estado Succeeded cuando el subestado Migrating data o la transición (en la migración en línea) finaliza correctamente. Si hay un problema en el subestado Migrating data, la migración pasa a un estado Failed.

Comprobación de la migración cuando se complete

Después de completar las bases de datos, debe validar manualmente los datos entre el origen y el destino y comprobar que todos los objetos de la base de datos de destino se crean correctamente.

Después de la migración, puede realizar las siguientes tareas:

  • Compruebe los datos en el servidor flexible y asegúrese de que es una copia exacta de la instancia de origen.

  • Después de la comprobación, habilite la opción de alta disponibilidad en el servidor flexible según sea necesario.

  • Cambie la SKU del servidor flexible para que coincida con las necesidades de la aplicación. Este cambio necesita un reinicio del servidor de bases de datos.

  • Si modifica los parámetros del servidor desde sus valores predeterminados en la instancia de origen, copie esos valores de los parámetros del servidor en el servidor flexible.

  • Copie otras opciones de configuración del servidor, como etiquetas, alertas, reglas de firewall (si procede) de la instancia de origen al servidor flexible.

  • Realice cambios en la aplicación para que las cadenas de conexión apunten a un servidor flexible.

  • Supervise atentamente el rendimiento de la base de datos para ver si requiere el ajuste del rendimiento.