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 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.
- 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 la migración con el servicio de migración de Azure Database for PostgreSQL, es importante cumplir los siguientes requisitos previos, específicamente diseñados para escenarios de migración en línea.
- Comprobar la versión de origen
- Instalación de test_decoding: configuración de origen
- Configurar la configuración de destino
- Habilitación de CDC como origen
- Configurar la configuración de red
- Habilitar extensiones
- Comprobar parámetros del servidor
- Comprobación de usuarios y roles
- Deshabilitar la alta disponibilidad (confiabilidad) y las réplicas de lectura en el destino
Comprobación de la versión de origen
La versión del servidor PostgreSQL de origen debe ser 9.5 o posterior.
Si la versión de PostgreSQL de origen es inferior a la 9.5, actualícela a la versión 9.5 o posterior antes de iniciar la migración.
Instalación de test_decoding: configuración de origen
test_decoding recibe WAL a través del mecanismo de descodificación lógica y lo descodifica en representaciones de texto de las operaciones realizadas.
Para más información sobre el complemento de descodificación de prueba, consulte la documentación de PostgreSQL.
Configurar la configuración de destino
Antes de comenzar la migración, debe configurar una instancia de Azure Database for PostgreSQL en Azure.
La SKU elegida para Azure Database for PostgreSQL debe corresponderse con las especificaciones de la base de datos de origen para garantizar la compatibilidad y el rendimiento adecuado.
Al migrar entre versiones de PostgreSQL (principal o secundaria), asegúrese de la compatibilidad entre la base de datos y la aplicación revisando las notas de la versión para ver posibles cambios importantes.
Habilitación de CDC como origen
-
El complemento de descodificación lógica
test_decodingcaptura los registros modificados del origen. - En la instancia de PostgreSQL de origen, establezca los siguientes parámetros y valores en el archivo de configuración postgresql.conf:
- Establece
wal_levelenlogical. - Establezca
max_replication_slotsen un valor mayor que 1. Debe ser mayor que el número de bases de datos seleccionadas para la migración. - Establezca
max_wal_sendersen un valor mayor que 1. Debe establecerse en, al menos, el mismo valor quemax_replication_slots, además del número de remitentes que ya usa la instancia. -
wal_sender_timeoutel parámetro finaliza las conexiones de replicación que están inactivas durante más tiempo que el número especificado de milisegundos. El valor predeterminado de una base de datos PostgreSQL local es de 60000 milisegundos (60 segundos). Establecer el valor en 0 (cero) deshabilita el mecanismo de tiempo de espera y es un valor recomendado para la migración.
- Establece
Para evitar que la migración en línea se queda sin espacio, asegúrese de que tiene suficiente espacio de tablas mediante un disco administrado aprovisionado. Para ello, deshabilite el parámetro azure.enable_temp_tablespaces_on_local_ssd de servidor en el servidor flexible durante la migración y restáurelo al estado original después de la migración.
Configurar 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 puede comunicarse con el servidor de Azure Database for PostgreSQL de destino. Las siguientes configuraciones de red son esenciales para una migración correcta.
Para obtener información sobre la configuración de red, visite Guía de red para el servicio de migración.
Consideraciones de red adicionales
Para facilitar la conectividad entre las instancias de PostgreSQL de origen y de destino, es esencial comprobar y modificar potencialmente el archivo pg_hba.conf del servidor de origen. 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 surta efecto.
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 postgreSQL local o un servidor postgreSQL hospedado en una máquina virtual de Azure.
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
Estos parámetros no se migran automáticamente al entorno de destino y se deben configurar manualmente.
Haga coincidir los valores de parámetros del servidor de la base de datos postgreSQL de origen con Azure Database for PostgreSQL; para ello, acceda a la página Parámetros del servidor en Azure Portal y actualice manualmente los valores en consecuencia.
Guarde los cambios del parámetro y reinicie Azure Database for PostgreSQL para aplicar la nueva configuración, si es necesario.
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 roles deben migrarse manualmente a Azure Database for PostgreSQL. Para facilitar este proceso, puede usar la utilidad
pg_dumpallcon la marca--globals-onlypara exportar objetos globales, como roles y usuarios. Ejecute el siguiente comando, reemplace<<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>>.sqlRestricció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.
Siguiendo estos pasos, puede asegurarse de que las cuentas de usuario y los roles se migran correctamente a Azure Database for PostgreSQL sin encontrar problemas relacionados con las restricciones de superusuario.
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 introducidas por la alta disponibilidad y las réplicas de lectura. Una vez completada 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.
Realización de la migración
Puede migrar mediante Azure Portal o la CLI de Azure.
Este artículo le guía por el uso de Azure Portal para migrar la base de datos de PostgreSQL desde una máquina virtual de Azure o un servidor PostgreSQL local 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 asistentes en Azure Portal.
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 use el servicio de migración, aparece 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; no acepta caracteres especiales, excepto un guion (-). El nombre no puede empezar por un guion y debe ser único en un servidor de destino. Ninguna de las dos migraciones al mismo destino de servidor flexible puede 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 quita ni revierte ningún cambio en el servidor de destino. Asegúrese de anular las bases de datos en el servidor de destino implicadas en una migración cancelada.
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 extensiones y compatibilidad con 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. |
| Erróneo | Se produjeron errores en la migración. |
| Error de validación | Se ha producido un error de validación. |
| Correcto | 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 configuración de la infraestructura está en curso 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 fases finales de finalización. |
| Completado | La migración se ha completado. |
| Erróneo | Se produjeron errores en la migración. |
Subestados de validación
| Subestado | Descripción |
|---|---|
| Erróneo | Error de validación. |
| Correcto | La validación se realiza correctamente. |
| Warning (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. La información delatencyse puede obtener de la pantalla de detalles de la migración, como se muestra a continuación: -
El valor
latencydisminuye 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 un valor latency distinto 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 necesario depende del trabajo pendiente de los cambios realizados 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, 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 y reglas de firewall (si procede), desde 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.