Partekatu honen bidez:


Tutorial: Migración en línea de Amazon Aurora PostgreSQL a Azure Database for PostgreSQL con el servicio de migración

En este artículo se describe cómo migrar la base de datos PostgreSQL de Amazon Aurora a Azure Database for PostgreSQL con conexión.

El servicio de migración de Azure Database for PostgreSQL está totalmente administrado e integrado en Azure Portal y la CLI de Azure. Está diseñado para simplificar el recorrido de migración a Azure Database for PostgreSQL.

En este tutorial ha:

  • Realización de los requisitos previos
  • Iniciar la migración
  • Supervisión de la migración
  • Iniciar una transición
  • Comprobar la migración

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 con conexión.

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 Azure Database for PostgreSQL: servidor flexible debe coincidir con el origen.

Para más información, consulte Creación de una instancia 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.

Habilite las extensiones admitidas identificadas en la instancia de PostgreSQL de origen en la instancia de destino de Azure Database for PostgreSQL: servidor flexible.

Para obtener más información, consulte Extensiones de Azure Database for PostgreSQL.

Nota:

Cuando se producen cambios en el parámetro shared_preload_libraries, es necesario reiniciar.

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.

Iniciar la migración

Puede migrar mediante Azure Portal o la CLI de Azure.

Azure Portal ofrece una experiencia sencilla e intuitiva basada en asistente para guiarle a través de la migración. Siguiendo los pasos descritos en este tutorial, puede transferir sin problemas la base de datos a Azure Database for PostgreSQL: servidor flexible y aprovechar sus eficaces características y escalabilidad.

Para migrar mediante Azure Portal, configure primero la tarea de migración. A continuación, conéctese al origen y al destino e inicie la migración.

Configuración de la tarea de migración

Para configurar la tarea de migración en Azure Portal:

  1. Abra el explorador web y vaya a Azure Portal. Escriba sus credenciales para iniciar sesión.

  2. Vaya a la instancia de Azure Database for PostgreSQL: servidor flexible.

  3. En el menú de servicio, seleccione Migración.

    Captura de pantalla de la selección de la migración.

  4. Seleccione Crear para migrar de Amazon Aurora a un servidor flexible.

    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 contendrá información sobre las migraciones intentadas.

  5. Seleccione Crear para recorrer una serie de pestañas para configurar una migración.

    Recorte de pantalla de la selección de migración en Azure Portal.

Configurar

Escriba o seleccione la siguiente información:

  • Nombre de la migración: escriba un identificador único de cada migración a este destino de servidor flexible. Solo puede usar caracteres alfanuméricos y guiones (-) en el nombre de la migració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: seleccione el tipo de origen que corresponde al origen de PostgreSQL, como un servicio PostgreSQL basado en la nube, una configuración local o una máquina virtual.

  • Opción de migración: elija una de las siguientes opciones para una validación previa a la migración:

    • Validación. Comprueba la preparación del servidor y de la base de datos para la migración al destino.
    • Migración. Omite las validaciones e inicia la migración.
    • Validación y migración. Realiza la validación antes de desencadenar una migración. Si no hay errores de validación, se desencadena la migración.

    Un procedimiento recomendado es seleccionar la opción Validar o Validar y migrar para las validaciones previas a la migración.

    Para obtener más información, consulte Validaciones previas a la migración.

  • Modo de migración: seleccione el modo para la migración. La opción predeterminada es Sin conexión.

Seleccione Siguiente: Conectarse al origen.

Recorte de pantalla de la pestaña Configuración de la migración en Azure Portal.

Selección del servidor en tiempo de ejecución

El servidor en tiempo de ejecución de migración es una característica especializada del servicio de migración. Este servidor actúa como servidor intermediario durante la migración. Se trata de una instancia de Azure Database for PostgreSQL: servidor flexible independiente que no es el servidor de destino. El servidor en tiempo de ejecución facilita 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.

Para obtener más información, consulte Servidor en tiempo de ejecución de migración.

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

Conexión al origen

En la pestaña Conectar al origen, escriba o seleccione la siguiente información como origen de la base de datos:

  • Nombre del servidor: proporcione el nombre de host o la dirección IP de la instancia de PostgreSQL de origen.

  • Puerto: escriba el número de puerto del servidor de origen.

  • Nombre de inicio de sesión del administrador del servidor: nombre de usuario del servidor PostgreSQL de origen.

  • Contraseña: escriba la contraseña del servidor PostgreSQL de origen.

  • Modo SSL: los valores admitidos son Preferir y Requerir. Cuando la Capa de sockets seguros (SSL) en el servidor PostgreSQL de origen esté desactivada, seleccione Preferir. Si SSL en el servidor de origen está activado, seleccione Requerir. Los valores SSL se establecen en el archivo postgresql.conf.

  • Prueba de conexión: inicia una prueba de conectividad entre el destino y el origen. Cuando la conexión se haya establecido correctamente, vaya al paso siguiente para identificar los problemas de red entre el destino y el origen y comprobar el nombre de usuario y la contraseña del origen. El establecimiento de una conexión de prueba tarda unos minutos.

Después de que la prueba de conexión se realice correctamente, seleccione Siguiente: Seleccionar el destino de la migración.

Recorte de pantalla de la página Conectar a origen.

Seleccione el destino de la migración

En la pestaña Seleccionar destino de migración, escriba o seleccione la siguiente información para el destino de servidor flexible, además de la suscripción, el grupo de recursos y el nombre del servidor:

  • Nombre de usuario del administrador: nombre de usuario del administrador del servidor PostgreSQL de destino.

  • Contraseña: contraseña del servidor PostgreSQL de destino.

  • Prueba de conexión: inicia una prueba de conectividad entre el destino y el origen. Cuando la conexión se haya realizado correctamente, vaya al paso siguiente para identificar los problemas de red entre el destino y el origen y comprobar el nombre de usuario y la contraseña del servidor de destino. El establecimiento de una conexión de prueba tarda unos minutos.

Después de que la conexión de prueba se haya realizado correctamente, seleccione Siguiente: Seleccionar las bases de datos para la migración.

Recorte de pantalla de la pestaña Conectar migración de destino.

Selección de bases de datos para la migración

En la pestaña Seleccionar la base de datos para la migración, seleccione la suya de una lista de bases de datos de usuario para migrar del servidor PostgreSQL de origen.

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

Recorte de pantalla de la pestaña Seleccionar bases de datos para 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, a continuación, seleccione Iniciar validación y migración.

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

Supervisión de la migración

Después de seleccionar el botón Iniciar validación y migración, aparece una notificación para indicar que la validación o la migración se ha realizado correctamente. Se le redirige al panel Migración de la instancia del servidor flexible. La entrada de estado es InProgress y el subestado es PerformingPreRequisiteSteps. 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 del panel Supervisar migración.

La cuadrícula que muestra las migraciones tiene estas columnas:

  • Nombre
  • Estado
  • Modo de migración
  • Tipo de migración
  • Servidor de origen
  • Tipo de servidor de origen
  • Bases de datos
  • Duration
  • Hora de inicio

Las entradas se muestran en orden descendente de la hora de inicio con la entrada más reciente en la parte superior. Puede seleccionar Actualizar en la barra de menús para actualizar el estado de la ejecución de la validación o la migración.

Detalles de la migración

En la lista de migraciones, seleccione el nombre de una migración para ver los detalles asociados.

En la pestaña Configuración, seleccione la opción de migración Validar y migrar. En este escenario, las validaciones se completan antes de que se inicie la migración. Una vez completado el subestado PerformingPreRequisiteSteps, el flujo de trabajo pasa al subestado Validation in Progress.

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

  • Si la validación finaliza sin errores, se inicia la migración y el flujo de trabajo pasa al subestado Migrating Data.

Puede comprobar los detalles de la validación a nivel de instancia y a nivel de base de datos:

  • Validación a nivel de instancia:

    • Es la validación relacionada con la comprobación de conectividad de la versión de origen (la comprobación del parámetro de servidor PostgreSQL version >= 9.5) si las extensiones están habilitadas en los parámetros del servidor de Azure Database for PostgreSQL: servidor flexible.
  • Validación a nivel de base de datos:

    • Es la validación de las bases de datos individuales relacionadas con las extensiones e intercalaciones que se admiten en Azure Database for PostgreSQL: servidor flexible.

Puede ver el estado actual de la migración y la validación en el panel de detalles de la migración.

Captura de pantalla de los detalles de la migración.

En las tablas siguientes se describen algunos estados y subestados de migración posibles.

Estados de migración

Estado Descripción
InProgress La infraestructura de migración se está configurando o la migración de datos en sí está en curso.
Canceled La migración se ha cancelado o eliminado.
Con error La migración produjo un error.
Error de validación La validación produjo un error.
Correcto La migración se ha realizado correctamente y se ha completado.
WaitingForUserAction Solo se aplica en migraciones en línea. Esperando a que un usuario realice una transición.

Subestados de la migración

Subestado Descripción
PerformingPreRequisiteSteps La infraestructura se está configurando para la migración de datos.
Validación en curso Validación en curso.
MigratingData La migración de datos está en curso.
CompletingMigration La migración está en las últimas fases de finalización.
Completados La migración se ha completado.
Con error Error de migración.

Subestados de validación

Subestado Descripción
Con error Error de validación.
Correcto La validación se ha realizado correctamente.
Advertencia La validación muestra una advertencia.

Iniciar una transición

Si Migrar y Validar y migrar aparecen ambos, completar la migración en línea requiere el paso adicional de iniciar una migración total. Una vez completada la copia y clonación de los datos base, la migración se mueve al estado de WaitingForUserAction y el subestado WaitingForCutoverTrigger. 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 latency disminuye a 0 o cerca de 0.

Puede obtener el valor de latency en el panel de detalles de la migración:

Recorte de pantalla del panel Migración total.

El valor latency indica cuándo el destino se sincronizó por última vez con el origen. En este momento, las escrituras en el origen se pueden detener e iniciarse la transición. Si hay tráfico pesado en el servidor de origen, se recomienda detener primero las escrituras para que latency puedan llegar a 0. Luego, inicie una transición.

La operación de transición aplica todos los cambios pendientes del origen al destino y completa la migración. Si desencadena una transición, incluso con un valor distinto de cero para latency, la replicación se detiene en ese momento dado. Todos los datos del origen hasta el punto de transición se aplican al destino. Por ejemplo, suponiendo una latencia de 15 minutos en el punto de transición, todos los datos modificados en los últimos 15 minutos se aplican al destino. El tiempo que tarda la transición en finalizar depende del trabajo pendiente de los cambios que se produjeron durante esos 15 minutos. Por lo tanto, se recomienda que la latencia vaya a cero o cerca de cero antes de desencadenar la transición.

Recorte de pantalla que muestra el cuadro de diálogo en el que se confirma una transición durante la migración.

La migración pasa al estado de Correcto en cuanto el subestado Migración de datos o la transición (en modo de migración en línea) finaliza correctamente. Si hay un problema en el subestado Migración de datos, la migración pasa a un estado Erróneo.

Captura de pantalla que muestra los resultados de una migración correcta en Azure Portal.

Comprobar la migración

Cuando finalice la migración de la base de datos, valide manualmente los datos entre el origen y el destino. Compruebe que todos los objetos de la base de datos de destino se han creado correctamente.

Después de la migración, puede realizar estas 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 (versión) del servidor flexible para que coincida con las necesidades de la aplicación. Este cambio requiere un reinicio del servidor de bases de datos.
  • Si ha cambiado los valores predeterminados de los parámetros del servidor 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.