Tutorial: Migración en línea desde una máquina virtual de Azure o un servidor PostgreSQL local a Azure Database for PostgreSQL con la versión preliminar del servicio de migración
SE APLICA A: Azure Database for PostgreSQL: servidor flexible
Este artículo le guiará en la migración de una instancia de PostgreSQL desde sus máquinas virtuales (VM) locales o de Azure al servidor flexible de Azure Database for PostgreSQL usando 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
- 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.
- Comprobación de la versión de origen
- Instalación de test_decoding: configuración de origen
- Configuración de la configuración de destino
- Habilitación de CDC como origen
- Configuració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 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
Configuración de la configuración de destino
- Antes de migrar, se debe crear el servidor flexible de Azure Database for PostgreSQL.
- SKU aprovisionada para Azure Database for PostgreSQL: el servidor flexible debe coincidir con el origen.
- Para crear una instancia de Azure Database for PostgreSQL, visite Creación de una instancia de Azure Database for PostgreSQL: servidor flexible
- 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_decoding
captura 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:
Set wal_level = logical
Set max_replication_slots
en un valor mayor que 1; el valor debe ser mayor que el número de bases de datos seleccionadas para la migración.Set max_wal_senders
en un valor mayor que 1, debe establecerse en al menos el mismo que max_replication_slots, además del número de remitentes que ya usa 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 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 una configuración válida para la migración.
Para evitar que la migración en línea se queda sin espacio, asegúrese de que tiene suficiente espacio de espacio de tablas mediante un disco administrado aprovisionado. Para ello, deshabilite el parámetro de servidor azure.enable_temp_tablespaces_on_local_ssd
en el servidor flexible durante la migración y restáurelo al estado original después de la migración.
Configuració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 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 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.
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.
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
- Debe configurar manualmente los valores de parámetro del servidor en el servidor de Azure Database for PostgreSQL: servidor flexible en función de los valores de parámetro del servidor configurados en el origen.
Comprobación de usuarios y roles
- Los usuarios y los distintos roles deben migrarse manualmente al servidor flexible de Azure Database for PostgreSQL. Para migrar usuarios y roles, puede usar
pg_dumpall --globals-only -U <<username> -f <<filename>>.sql
. - Azure Database for PostgreSQL: el servidor flexible no admite ningún superusuario; los usuarios que tienen roles de superusuario deben quitarse antes de 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 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. A continuación, se indica cómo empezar:
Abra el explorador web y vaya al portal. Escriba sus credenciales para iniciar sesión. La vista predeterminada es el panel del servicio.
Vaya al destino de Azure Database for PostgreSQL con servidor flexible.
En la pestaña Información general del servidor flexible, en el menú de la izquierda, desplácese hacia abajo hasta Migración y selecciónelo.
Seleccione el botón Crear para migrar desde una máquina virtual (VM) de Azure o un servidor PostgreSQL local al servidor flexible. Si esta es la primera vez que usa el servicio de migración, aparecerá una cuadrícula vacía con un mensaje para comenzar la primera migración.
Si ya ha creado migraciones al destino de servidor flexible, la cuadrícula contiene información sobre las migraciones intentadas.
Seleccione el botón Crear. A continuación, pasará por una serie de pestañas basadas en el asistente para crear una migración a este destino de servidor flexible desde el servidor de origen de PostgreSQL.
Configurar
La primera pestaña es la pestaña de configuración, donde el usuario inicia las migraciones proporcionando detalles de migración, como el nombre de la migración y el tipo de origen.
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 Máquina virtual de Azure o local.
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 solo 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 previa a la migración, consulte esta documentación.
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.
Servidor en tiempo de ejecución
Migration Runtime Server 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 independiente de Azure Database for PostgreSQL: Servidor flexible que no es el servidor de destino, sino que 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.
Conectar a 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. 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 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 Siguiente: Seleccionar el destino de la migración
Selección del destino de migració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
- FQDN/IP personalizado (opcional): el campo FQDN/IP 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
flexibleserver.example.com
,198.1.0.2
o un FQDN de PostgreSQL, comoflexibleserver.postgres.database.azure.com
, si el servidor DNS personalizado contiene la zona DNSpostgres.database.azure.com
o reenvía las consultas de esta zona a168.63.129.16
, donde el FQDN se resuelve en la zona DNS pública o privada de Azure. - 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 conexión de prueba 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.
Selección de bases de datos para la migración
En esta pestaña, una lista de bases de datos de usuario está dentro del servidor de origen seleccionado en la pestaña configuración. Puede seleccionar y migrar hasta ocho bases de datos en un único intento de migración. Si hay más de ocho bases de datos de usuario, el proceso de migración se repite entre los servidores de origen y de destino para el siguiente conjunto de bases de datos.
Una vez seleccionadas 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 el botón Inicio.
Supervisión de la migración
Después de seleccionar el botón Iniciar, 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 redirigirá automáticamente a la hoja de Migración del servidor flexible, que tiene una nueva entrada para la validación o migración recién creada.
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 validación o migración. Seleccione el nombre de la migración en la cuadrícula para ver los detalles asociados.
Cuando se crea la validación o migración, pasa al estado InProgress y al subestado PerformingPreRequisiteSteps. El flujo de trabajo tarda entre 2 y 3 minutos en configurar la infraestructura de migración y las conexiones de red.
Detalles de la migración
En la pestaña Configuración, hemos seleccionado la opción de migración como Migrar y validar. 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 de 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 resultados de la validación se muestran en la pestaña Validación y la migración se supervisa en la pestaña Migración.
Algunos estados 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. |
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. |
WaitingForUserAction | Aplicable solo para la migración online. Espera a que la acción del usuario realice la 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 | Se produjeron errores en la 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 está en Advertencia. |
Transición
Si hay migrar y validar y migrar, completar la migración en línea requiere otro paso: el usuario debe realizar una acción de transición. Una vez completada la copia o clonación de los datos base, la migración se mueve al estado de WaitingForUserAction
y al sustrato de 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 de
Latency
es 0 o cerca de 0. La información deLatency
se puede obtener de la pantalla de detalles de la migración, como se muestra a continuación: - El valor
latency
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 queLatency
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 origen al destino y completa la migración. Si desencadena una "Transición" incluso con un valor distinto de cero Latency,
, 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 datos modificados 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 llegue a cero o cerca de cero, antes de desencadenar la transición.
- La migración pasa al estado de
Succeeded
cuando el subestadoMigrating Data
o la transición (en migración en línea) finaliza correctamente. Si hay un problema en el subestadoMigrating Data
, la migración pasa a un estadoFailed
.
Cancelación de la migración
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 cualquier actividad de validación adicional y la validación pasa al 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. 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.
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, 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.