Share via


Tutorial: Migración desde PostgreSQL de AWS RDS a Azure Database for PostgreSQL mediante el servicio de migración

SE APLICA A: Azure Database for PostgreSQL: servidor flexible

Este tutorial le guía en la migración de una instancia de PostgreSQL desde AWS RDS a un servidor flexible de Azure Database for PostgreSQL mediante Azure Portal y la CLI de Azure.

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 al servidor flexible de Azure Database for PostgreSQL.

  • Configuración de la instancia de servidor flexible de Azure Database for PostgreSQL
  • Configuración de la tarea de migración
  • Supervisión de la migración
  • Cancelación de la migración
  • Después de la migración

Requisitos previos (sin conexión)

Antes de iniciar la migración con el servicio de migración en Azure Database for PostgreSQL, es fundamental cumplir con los siguientes requisitos previos que se aplican a escenarios de migración sin conexión.

Comprobación de la versión de origen

La versión de PostgreSQL de origen debe ser >= 9.5. Si la versión de PostgreSQL de origen es menor que 9.5, actualice la versión de PostgreSQL de origen a 9.5 o una superior antes de realizar la migración.

Configuración de destino

  • Azure Database for PostgreSQL debe configurarse en Azure antes de la migración.

  • La SKU elegida para Azure Database for PostgreSQL debe corresponderse con las especificaciones de la base de datos de origen a fin de garantizar la compatibilidad y el rendimiento adecuado.

  • Para obtener instrucciones detalladas sobre cómo crear una instancia de Azure Database for PostgreSQL, consulte el vínculo siguiente: Inicio rápido: Creación de un servidor.

Configuración de red

La configuración de red adecuada es esencial para garantizar una conectividad correcta entre el origen y el destino durante la migración. Esta es una guía a fin de ayudarle a establecer la conexión de red para diferentes escenarios:

Requisitos de redes para la migración:

  • Tunelización de ExpressRoute/VPN de IPsec/VPN: al conectar el origen local o de AWS a Azure, es posible que tenga que configurar una tunelización de ExpressRoute, VPN de IPsec o de VPN para facilitar la transferencia de datos segura.

  • Emparejamiento de VNET: establezca el emparejamiento de red virtual entre las dos redes virtuales distintas para habilitar la conectividad de red directa, que es un requisito previo para la migración entre la máquina virtual de Azure y Azure Database for PostgreSQL.

Escenarios de conectividad:

La tabla siguiente puede ayudar a configurar la red entre el origen y el destino.

Source Destino Sugerencias de conectividad
Public Public No se requiere ninguna otra acción si el origen está en la lista de permitidos en las reglas de firewall del destino.
Private Public Esta configuración no es compatible; use pg_dump/pg_restore para la transferencia de datos.
Público Privada No se requiere ninguna otra acción si el origen está en la lista de permitidos en las reglas de firewall del destino.
Privada Privada Establezca una tunelización de ExpressRoute, VPN de IPsec, VPN o un emparejamiento de red virtual entre el origen y el destino.
Privada Punto de conexión privado Esta configuración no es compatible; póngase en contacto con Soporte técnico de Microsoft.

Consideraciones adicionales sobre redes:

  • Configuración de pg_hba.conf: para facilitar la conectividad entre las instancias de PostgreSQL de origen y de destino, es esencial comprobar y modificar, en caso necesario, el archivo pg_hba.conf. Este archivo incluye la autenticación de cliente y debe configurarse para permitir que la instancia de PostgreSQL de destino se conecte al origen. Los cambios realizados en el archivo pg_hba.conf normalmente requieren un reinicio de la instancia de PostgreSQL de origen para que surtan efecto.

Nota:

El archivo pg_hba.conf se encuentra en el directorio de datos de la instalación de PostgreSQL. Este archivo debe comprobarse y configurarse si la base de datos de origen es un servidor de PostgreSQL local o un servidor de PostgreSQL hospedado en una máquina virtual de Azure. En el caso de las instancias de PostgreSQL en AWS RDS o en servicios administrados similares, no se puede acceder al archivo pg_hba.conf directamente, ni aplicarlo. En su lugar, el acceso se controla mediante las configuraciones de seguridad y acceso de red proporcionadas por el servicio.

Para más información sobre la configuración de red, visite Guía de red para el servicio de migración en el servidor flexible de Azure Database for PostgreSQL.

Extensiones

Las extensiones son características adicionales que se pueden agregar a PostgreSQL para mejorar su función. Las extensiones se admiten en Azure Database for PostgreSQL, pero deben habilitarse manualmente. Para habilitar las extensiones, siga estos pasos:

  • Use el comando select en el origen para mostrar todas las extensiones que se usan: select extname,extversion from pg_extension;

  • Busque el parámetro de servidor azure.extensions en la página Parámetros de servidor de Azure Database for PostgreSQL. Habilite las extensiones que se encuentran en el origen dentro de PostgreSQL.

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

    Captura de pantalla de las extensiones.

  • Compruebe si la lista contiene cualquiera de las siguientes extensiones:

    • PG_CRON
    • PG_HINT_PLAN
    • PG_PARTMAN_BGW
    • PG_PREWARM
    • PG_STAT_STATEMENTS
    • PG_AUDIT
    • PGLOGICAL
    • WAL2JSON

De ser así, busque en la página de parámetros del servidor el parámetro shared_preload_libraries. Este indica el conjunto de bibliotecas de extensiones que se cargan previamente en el reinicio del servidor.

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 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, reemplazando <<username>> por el nombre de usuario real y <<filename>> por el nombre de archivo de salida deseado:

    pg_dumpall --globals-only -U <<username>> -f <<filename>>.sql
    
  • Restricción en roles de superusuario: Azure Database for PostgreSQL no admite roles de superusuario. Por lo tanto, los usuarios con privilegios de superusuario deben tener esos privilegios eliminados 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.

Parámetros del servidor

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

  • Haga coincidir los valores de parámetros del servidor de la base de datos de PostgreSQL de origen con Azure Database for PostgreSQL; para ello, acceda a la sección "Parámetros del servidor" en Azure Portal y actualice manualmente los valores según corresponda.

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

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

  • Deshabilitar la alta disponibilidad (fiabilidad) y las réplicas de lectura en el entorno de destino es esencial. Estas características deben habilitarse solo una vez completada la migración.

  • Al seguir estas instrucciones, puede ayudar a garantizar un proceso de migración fluido sin las variables agregadas que introducen la alta disponibilidad y las réplicas de lectura. Una vez que se completa la migración y la base de datos es estable, puede continuar con la habilitación de estas características para mejorar la disponibilidad y escalabilidad del entorno de base de datos en Azure.

Puede realizar la migración mediante Azure Portal.

Configuración de la tarea de migración

El servicio de migración incluye una experiencia sencilla basada en asistentes en Azure Portal.

  1. Abra el explorador web y vaya al portal. Escriba sus credenciales para iniciar sesión. La vista predeterminada es el panel del servicio.

  2. Vaya al servidor flexible de Azure Database for PostgreSQL.

  3. En la pestaña Información general del servidor flexible, en el menú de la izquierda, desplácese hacia abajo hasta la opción Migración y selecciónela.

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

  4. Seleccione el botón Crear para migrar de AWS RDS a un servidor flexible.

    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.

  5. Seleccione el botón Crear para pasar por una serie de pestañas basadas en el asistente a fin de realizar una migración.

    Captura de pantalla de la página Crear migración.

Configuración

La primera pestaña es la de configuración.

El usuario 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.

  • 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; no acepta caracteres especiales, excepto un guion (-). 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 AWS RDS para PostgreSQL.

  • Opción de migración: le 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.
    • Migrar: omite las validaciones e inicia las migraciones.
    • Validar y migrar: realiza la validación antes de desencadenar una migración. La migración se desencadena si no hay errores de validación.
      • Siempre es recomendable elegir la opción Validar o Validar y migrar para realizar validaciones previas a la migració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 le permite elegir el modo para la migración. Sin conexión es la opción predeterminada.

Seleccione el botón Siguiente: Conectar al origen.

Captura de pantalla de la página Configurar migración.

Conexión al origen

La pestaña Conectar al 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 de host o la dirección IP de la instancia de PostgreSQL de origen

  • Puerto: número de puerto del servidor de origen

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

  • Contraseña: contraseña del servidor PostgreSQL de origen

  • Modo SSL: se prefieren y se requieren valores admitidos. Cuando la SSL en el servidor PostgreSQL de origen esté desactivado, use SSLMODE=prefer. Si la SSL en el servidor de origen está activada, use SSLMODE=require. Los valores de la SSL se pueden determinar en el archivo postgresql.conf.

  • Prueba de conexión: realiza la prueba de conectividad entre el destino y el origen. Una vez que la conexión se ha realizado correctamente, los usuarios pueden continuar con el paso siguiente; tienen que identificar los problemas de red entre el destino y el origen y comprobar el nombre de usuario o la contraseña del origen. La prueba de conexión tarda unos minutos en establecer una conexión entre el destino y el origen.

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

Captura de pantalla de la página Conectar al origen.

Conéctese a la aplicación

En la pestaña Seleccionar el destino de la migración se muestran los metadatos del 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.

  • 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: realiza la prueba de conectividad entre el destino y el origen. Una vez que la conexión se ha realizado correctamente, los usuarios pueden continuar con el paso siguiente. De lo contrario, tendremos que identificar los problemas de conexión en red entre el destino y el origen, así como comprobar el nombre de usuario o la contraseña del destino. La prueba de conexión tarda unos minutos en establecer una conexión entre el destino y el origen

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

Captura de pantalla de la página 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, puede elegir una lista de bases de datos de usuario para realizar la migración desde el servidor PostgreSQL de origen.
Una vez seleccionadas las bases de datos, seleccione Siguiente: Resumen.

Captura de pantalla de la página Obtener migración de base de datos.

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 el botón Iniciar la validación y la migración.

Captura de pantalla de la página Resumen de la migración.

Supervisión de la migración

Después de seleccionar el botón Iniciar la validación y la migración, aparece una notificación en unos segundos para indicar que la validación o la creación de la migración se han realizado correctamente. Se le redirige automáticamente a la página Migración del servidor flexible. La entrada está en estado InProgress y subestado 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 de la página 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, Duración y Hora de inicio. Las entradas se muestran en el orden descendente de la hora de inicio con la entrada más reciente en la parte superior. Puede usar el botón Actualizar para actualizar el estado de la ejecución de la validación o la migración.

Detalles de la migración

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

En la pestaña Configuración, hemos seleccionado 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 PerformingPreRequisiteSteps, el flujo de trabajo pasa al subestado Validación en curso.

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

  • Si la validación se completa sin ningún error, se inicia la migración y el flujo de trabajo pasará al subestado Migración de datos.

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

  • Validación en el nivel de 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, la comprobación de parámetros del servidor, es decir, si las extensiones están habilitadas en los parámetros del servidor flexible de Azure Database for PostgreSQL.
  • Validación en el nivel de base de datos

    • Contiene la validación de las bases de datos individuales relacionadas con extensiones y compatibilidad con intercalaciones en un servidor flexible de Azure Database for PostgreSQL.

Puede ver el estado de la validación y la 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.

Los posibles estados de migración incluyen:

  • InProgress: la infraestructura de migración se está configurando o la migración de datos en sí está en curso.
  • Cancelada: la migración se ha cancelado o eliminado.
  • Error: se han producido errores en la migración.
  • Error de validación: se ha producido un error en la validación.
  • Correcto: la migración se ha realizado correctamente y se ha completado.
  • WaitingForUserAction: aplicable solo para la migración online. Espera a que la acción del usuario realice la transición.

Los posibles subestados de migración incluyen:

  • PerformingPreRequisiteSteps: la infraestructura se está configurando para la migración de datos.
  • Validación en curso: la validación está en curso.
  • MigratingData: la migración de datos está en curso.
  • CompletingMigration: la migración está en las últimas fases de finalización.
  • Completed: la migración se ha completado.
  • Failed: se ha producido un error en la migración.

Entre los posibles subestados de la validación se incluyen los siguientes:

  • Failed: se ha producido un error en la validación.
  • Succeeded: la validación se ha realizado correctamente.
  • Warning: la validación está en Advertencia. Las Advertencias son mensajes informativos que debe recordar al planear la migración.

Cancelación de la migración mediante el portal

Puede cancelar las validaciones o migraciones en curso. El flujo de trabajo debe estar en el estado inProgress que se va a cancelar. No se puede cancelar una validación o migración que esté en el estado Correcta o Errónea.

  • La cancelación de una validación detiene aún más la actividad de validación y la validación se mueve a un estado de Cancelada.
  • 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 a un estado de Cancelada. La acción cancelar revertirá todos los cambios realizados por el servicio de migración en el servidor de destino.

Después de la migración

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

Después de la migración, se pueden 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 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.