Quiero minimizar el tiempo de inactividad y optimizar el rendimiento de una actualización de una versión principal de mi base de datos Amazon Relational Database Service (Amazon RDS) para PostgreSQL.
Descripción corta
Nota: Las actualizaciones de las versiones principales incluyen cambios en la base de datos que no son compatibles con las aplicaciones existentes. Antes de actualizar, asegúrate de probar minuciosamente la actualización en un entorno que no sea de producción. Para obtener más información, consulta Cómo realizar una actualización de la versión principal de RDS para PostgreSQL.
Para actualizar la instancia de base de datos (DB), utiliza uno de los métodos siguientes:
- Restauración de instantáneas
- Actualización manual
- Despliegue azul-verde
- AWS Database Migration Service (AWS DMS)
Requisitos previos:
Resolución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Optimización del rendimiento de las actualizaciones
Para minimizar los posibles problemas al ejecutar la versión principal del motor, toma las siguientes medidas:
Para identificar las transacciones que están en estado de ejecución durante más de 10 minutos, ejecuta el siguiente comando:
SELECT * FROM pg_stat_activity
WHERE pid <> pg_backend_pid()
AND state in ('idle', 'idle in transaction', 'idle in transaction (aborted)', 'disabled','active')
AND state_change < current_timestamp - INTERVAL '10' MINUTE
AND usename != 'rdsadmin';
Si identificas una transacción de larga duración, usa pg_cancel_backend o pg_terminate_backend para finalizar la transacción. Para obtener más información, consulta Server signaling functions (Funciones de señalización del servidor) en el sitio web de PostgreSQL.
Actualización con una restauración instantánea
Crea una instantánea de base de datos de tu instancia de base de datos, actualiza la instantánea a una versión principal posterior y, a continuación, restáurala en una nueva instancia de base de datos.
Nota: Debes usar un nombre diferente para la nueva instancia de base de datos y la aplicación debe detenerse durante el proceso de actualización. Además, debes actualizar los puntos de enlace de la aplicación una vez finalizada la actualización.
Actualización manual de la instancia de base de datos
Para actualizar manualmente la instancia de base de datos, consulta Actualización manual de la versión del motor.
Nota: Las actualizaciones manuales de las bases de datos requieren tiempo de inactividad. Para minimizar el tiempo de inactividad, utiliza un despliegue azul-verde.
Uso de una actualización de despliegue azul-verde
Para crear un despliegue azul-verde, consulta Creación de un despliegue azul-verde. Cuando estés en un entorno verde, especifica una versión posterior del motor.
Para obtener más información sobre los despliegues azul-verde, consulta Limitaciones y consideraciones para los despliegues azul-verde de Amazon RDS.
Uso de AWS DMS para realizar la actualización
Utiliza AWS Database Migration Service (AWS DMS) para migrar los datos de tu instancia de base de datos actual a una nueva instancia con la versión actualizada. AWS DMS admite la captura de datos de cambios (CDC) para una replicación continua.
Actualización de la tabla pg_statistics
Tras completar la actualización de la versión principal del motor, ejecuta el comando ANALYZE VERBOSE; en todas las bases de datos para actualizar la tabla pg_statistics. Para obtener más información, consulta ANALYZE en el sitio web de PostgreSQL.