Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
- Instalar test_decoding para la configuración de origen
- Realización de la configuración de destino
- Habilitación de CDC como origen
- Realización de la configuración de red
- Habilitación de extensiones
- Comprobación de parámetros del servidor
- Comprobación de usuarios y roles
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_replicationen1. - Establezca
max_replication_slotsen un valor mayor que1. El valor debe ser mayor que el número de bases de datos que seleccione para la migración. - Establezca
max_wal_sendersen un valor mayor que1. Debe ser al menos el mismo valor que el valor demax_replication_slots, además del número de remitentes que ya se han usado en la instancia. - El parámetro
wal_sender_timeoutfinaliza 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 es30000 milliseconds (30 seconds). Establecer el valor en0 (zero)deshabilita el mecanismo de tiempo de espera y es una configuración válida para la migración.
- Establece
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_ssddurante 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-onlypara 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>.sqlRestricció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:
Seleccione su servidor flexible de Azure Database for PostgreSQL.
En el menú de recursos, seleccione Migración.
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.
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.
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.
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
preferredyrequired. Cuando el SSL en el servidor PostgreSQL de origen esOFF, useprefer. Si el SSL en el servidor de origen esON, use elrequire. 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.
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, comoproduction-flexible-server.postgres.database.azure.com, si el servidor DNS personalizado contiene la zonapostgres.database.azure.comDNS o las consultas reenviadas de esta zona a168.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.
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.
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.
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.
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.
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
latencyes 0 o cerca de 0. Lalatencyinformación se puede obtener de la pantalla de detalles de la migración, como se muestra a continuación: -
latencyel valor disminuye a 0 o cerca de 0 - El valor
latencyindica 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 quelatencypueda 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
Succeededcuando el subestadoMigrating datao la transición (en la migración en línea) finaliza correctamente. Si hay un problema en el subestadoMigrating data, la migración pasa a un estadoFailed.
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.