La actualización de versión principal sin tiempo de inactividad permite actualizar una instancia de RDS PostgreSQL a una versión superior del motor sin interrumpir el servicio. Este proceso utiliza replicación lógica para sincronizar los datos desde la instancia de origen hacia la instancia de destino y, posteriormente, redirige el tráfico tras una breve ventana de solo lectura.
Funcionamiento
La actualización se ejecuta en tres fases:
Pre-upgrade check: valida la configuración de la instancia y confirma la compatibilidad con el modo de actualización sin tiempo de inactividad.
Tarea de actualización: crea la instancia de destino, establece la replicación lógica y sincroniza los datos.
Cambio de instancia: sincroniza las secuencias y redirige el tráfico hacia la instancia de destino.
Impactos de la actualización
|
Fase |
Impacto |
Duración |
|
Restricción de DDL |
Todas las operaciones DDL se bloquean desde el inicio de la actualización hasta que finaliza el cambio. |
Todo el proceso de actualización |
|
Acumulación de registros WAL |
Se crea un slot de replicación antes de iniciar la actualización, lo que provoca la acumulación de registros Write-Ahead Logging (WAL) en la instancia de origen. El uso de disco aumenta temporalmente y disminuye una vez establecida la replicación lógica. |
Desde la creación del slot de replicación hasta que se inicia el suscriptor en el destino |
|
Sincronización por replicación lógica |
La replicación lógica genera carga adicional en la instancia de origen. El impacto depende del número de bases de datos y del tráfico de escritura. Supervise el uso de recursos de |
Desde que se establece la replicación lógica hasta que finaliza el cambio |
|
Cambio (solo lectura) |
La instancia entra en modo de solo lectura mientras se sincronizan las secuencias. |
Proporcional al número de secuencias |
Para identificar la ventana de acumulación de registros WAL, abra
Upgrade History
y revise el registro de actualización. Los registros WAL comienzan a acumularse en el evento
creating replication slots and publications on the source
y dejan de acumularse cuando
subscriber on the destination starts
y se establece la relación de replicación lógica.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una instancia de RDS PostgreSQL donde Major Version Upgrade sea visible en el panel de navegación izquierdo.
Haber eliminado cualquier instancia de solo lectura vinculada a la instancia principal, o haber actualizado su aplicación para conectarse directamente al endpoint de la instancia principal.
Si
Major Version Upgrade
no aparece en la consola, compruebe la configuración de versión y serie de su instancia. Consulte
Upgrade the major engine version
para conocer los requisitos.
Si existen instancias de solo lectura, actualice la configuración de endpoints de su aplicación para apuntar a la instancia principal durante las horas de menor actividad antes de eliminar dichas instancias.
Paso 1: Ejecutar la comprobación previa a la actualización
La actualización sin tiempo de inactividad utiliza replicación lógica, la cual tiene requisitos específicos de compatibilidad. La comprobación previa valida su instancia frente a estos requisitos y señala cualquier elemento que pudiera bloquear la actualización.
Inicie sesión en la consola de ApsaraDB RDS y vaya a la página de Instances. En la barra de navegación superior, seleccione la región donde reside su instancia y haga clic en el ID de la instancia.
En el panel de navegación izquierdo, haga clic en Major Version Upgrade.
En la pestaña Upgrade Check, haga clic en Create Upgrade Check Report.
Seleccione la versión de destino en Select The Upgrade Version, establezca Upgrade Mode en Zero Downtime y haga clic en OK.
Revise los resultados en la sección Upgrade Check Log.
Continúe con el paso 2 únicamente si Check Result muestra successful. Si la comprobación falla, haga clic en View Information para consultar el informe detallado. Para obtener ayuda sobre cómo interpretar los errores, consulte Interpreting the RDS PostgreSQL major version upgrade check report.
Si se crean complementos en la instancia de destino después de aprobar la comprobación, ejecute nuevamente la verificación antes de continuar.
Paso 2: Crear la tarea de actualización
Haga clic en la pestaña Upgrade Instance, lea la advertencia, seleccione la versión de destino en Select The Upgrade Version y haga clic en Create Upgrade Task.
En el cuadro de diálogo de confirmación, haga clic en OK.
En la sección Create Major Version Upgrade Task, establezca Upgrade Mode en Zero-downtime.
Haga clic en Create Now.
El estado de la instancia cambia a Migrating cuando inicia la tarea de actualización. Puede seguir el progreso en la pestaña Upgrade History.
Supervisar la carga de la instancia durante la actualización
Monitor la carga de la instancia y el uso de disco durante todo el proceso de actualización:
Uso de disco: aumenta durante la acumulación de registros WAL y disminuye una vez que se establece la replicación lógica.
Carga de CPU y red: se incrementa durante la fase de sincronización por replicación lógica. Revise
wal_senderen cada categoría de recursos para evaluar el impacto.
Paso 3: Verificar y cambiar a la instancia de destino
Verificar la instancia de destino
Cuando el estado de la instancia cambia de Migrating a Migrating Data, significa que la replicación lógica se ha establecido. En este punto, conéctese a la instancia de destino para verificar los datos actualizados.
Vaya a la pestaña Upgrade History.
Copie la Higher Version Verification Address del registro de actualización de destino.
Conéctese a la instancia de destino y compruebe que los datos cumplen con sus expectativas.
La instancia de destino permanece en modo de solo lectura durante la verificación.
Redirigir el tráfico a la instancia de destino
Después de confirmar que los datos son correctos y que Upgrade Result muestra Synchronizing:
En la columna Upgrade Log, haga clic en Change.
Establezca el Tolerable Write Suspension Time (en segundos) y haga clic en OK.
Durante el cambio, se sincronizan las secuencias y la instancia entra en modo de solo lectura (Upgrade Result cambia a Read Only). Si la sincronización de secuencias excede el tiempo de suspensión de escritura tolerable, el sistema regresa al estado Synchronizing y elimina la restricción de solo lectura; en consecuencia, el cambio no se completa y puede reintentarlo.
-
Compruebe el resultado del cambio:
Migrating: el cambio está en curso. Para cancelarlo, haga clic en Break en la columna Upgrade Log.
The Instance Is Running.: el cambio ha finalizado. Verifique la versión actual del motor en la página de Basic Information de la instancia.
Si
Upgrade Result
muestra un estado distinto a
Synchronizing
, consulte
Estados de resultado de la actualización
para obtener orientación. Para abandonar la actualización por completo, haga clic en
Cancel
en la columna
Upgrade Log
. Esta acción elimina el slot de replicación, quita la carga de replicación lógica de la instancia de origen y rehabilita las operaciones DDL.
Reversión
Antes del cambio, el sistema realiza automáticamente una copia de seguridad de la instancia de versión anterior. Si necesita revertir el proceso después del cambio:
Clone una nueva instancia a partir de la última copia de seguridad de la instancia de versión anterior tomada antes del cambio.
Actualice el endpoint de la instancia clonada para que coincida con el endpoint de la instancia original.
Estados de resultado de la actualización
La pestaña Upgrade History muestra los siguientes estados en la columna Upgrade Result:
|
Estado |
Significado |
Acciones disponibles |
|
Running |
La tarea de actualización se está ejecutando. |
Ninguna |
|
Synchronizing |
La replicación lógica funciona correctamente. |
Change: cambiar a la instancia de destino. Cancel: abandonar esta actualización. |
|
Replication Interrupted |
La replicación lógica presenta anomalías. |
Revise el registro de actualización para identificar la causa. Cancel: abandonar esta actualización. |
|
Read Only |
El cambio está en curso. La instancia se encuentra en modo de solo lectura mientras se sincronizan las secuencias. |
Break: cancelar esta operación de cambio. |
|
Switch |
La sincronización de secuencias ha terminado; se están ejecutando las tareas finales. |
Ninguna |
|
Canceled |
La tarea de actualización se canceló. |
Ninguna |
|
Success |
La actualización ha finalizado. |
Ninguna |