Actualizaciones del motor de base de datos de RDS para PostgreSQL - Amazon Relational Database Service

Actualizaciones del motor de base de datos de RDS para PostgreSQL

Hay dos tipos de actualizaciones que se pueden administrar para su base de datos de PostgreSQL:

  • Actualizaciones del sistema operativo: a veces, Amazon RDS puede necesitar actualizar el sistema operativo subyacente de su base de datos para aplicar correcciones de seguridad o cambios del sistema operativo. Puede indicar cuándo Amazon RDS debe aplicar las actualizaciones del SO mediante la consola de RDS, la AWS Command Line Interface (AWS CLI) o la API de RDS. Para obtener más información acerca de las actualizaciones del sistema operativo, consulte Aplicación de actualizaciones a una instancia de base de datos.

  • Actualizaciones del motor de la base de datos: cuando Amazon RDS admita una nueva versión de un motor de base de datos, puede actualizar sus bases de datos a la nueva versión.

En este contexto, una base de datos es una instancia de base de datos de RDS para PostgreSQL o un clúster de base de datos Multi-AZ.

Hay dos tipos de actualizaciones de motores de bases de datos de PostgreSQL: actualizaciones de versiones principales y actualizaciones de versiones secundarias.

Actualizaciones de la versión principal

Las actualizaciones de la versión principal pueden contener cambios realizados en la base de datos que no son compatibles con las versiones anteriores de las aplicaciones. Por lo tanto, debe realizar manualmente las actualizaciones de versiones principales de sus bases de datos. Puede iniciar una actualización de versión principal modificando su instancia de base de datos o clúster de base de datos Multi-AZ. Antes de realizar la actualización de una versión principal, recomendamos que siga los pasos descritos en Elección de una versión principal para una actualización de RDS para PostgreSQL.

Si actualiza una instancia de base de datos que tiene réplicas de lectura en la región, Amazon RDS actualiza las réplicas junto con la instancia de base de datos principal.

Amazon RDS no actualiza réplicas de lectura de clústeres de base de datos Multi-AZ. Si actualiza la versión principal de un clúster de base de datos multi-AZ, el estado de replicación de las réplicas de lectura cambia a terminado. Debe eliminar las réplicas de lectura y volver a crearlas de forma manual una vez finalizada la actualización.

sugerencia

Puede minimizar el tiempo de inactividad necesario para la actualización de una versión principal mediante una implementación azul/verde. Para obtener más información, consulte Uso de las implementaciones azul/verde de Amazon RDS para actualizar las bases de datos.

Actualizaciones de la versión secundaria

Por su parte, las actualizaciones de versiones secundarias solo incluyen cambios compatibles con las versiones anteriores de las aplicaciones. Puede iniciar manualmente una actualización de versiones secundarias modificando su base de datos. O puede habilitar la opción Actualización automática de versiones secundarias al crear o modificar una base de datos. Si lo hace, Amazon RDS actualizará automáticamente su base de datos tras probar y aprobar la nueva versión. Si la base de datos de PostgreSQL usa réplicas de lectura, debe actualizar todas las réplicas de lectura antes de actualizar la instancia o el clúster de origen.

Si la base de datos es una implementación de una instancia de base de datos multi-AZ, Amazon RDS actualiza simultáneamente la instancia principal y cualquier instancia en espera. Por lo tanto, es posible que su base de datos no esté disponible hasta que se complete la actualización. Si la base de datos es una implementación de un clúster de base de datos multi-AZ, Amazon RDS actualiza las instancias de base de datos del lector de una en una. A continuación, una de las instancias de base de datos de lector pasa a ser la nueva instancia de base de datos de escritor. Amazon RDS actualiza luego la antigua instancia de escritor (que ahora es una instancia de lector).

nota

El tiempo de inactividad para realizar una actualización de una versión secundaria de una implementación de una instancia de base de datos multi-AZ puede durar varios minutos. Los clústeres de bases de datos multi-AZ suelen reducir el tiempo de inactividad de las actualizaciones de versiones secundarias a aproximadamente 35 segundos. Cuando se utilizan con RDS Proxy, se puede reducir aún más el tiempo de inactividad a un segundo o menos. Para obtener más información, consulte Uso de Amazon RDS Proxy . También puede utilizar un proxy de base de datos de código abierto, como ProxySQL, PgBouncer o el controlador JDBC de AWS para MySQL.

Para obtener más información, consulte Actualizaciones de versiones secundarias automáticas de RDS para PostgreSQL. Para obtener más información acerca de cómo realizar manualmente una actualización de versiones secundarias, consulte Actualización manual de la versión del motor.

Para obtener más información acerca de las versiones del motor de base de datos y la política para dar de baja versiones del motor de base de datos, consulte Versiones del motor de base de datos en las Preguntas frecuentes de Amazon RDS.

Aspectos a tener en cuenta sobre las actualizaciones de PostgreSQL

Para actualizar de forma segura las bases de datos, Amazon RDS usa la utilidad pg_upgrade descrita en la documentación de PostgreSQL.

Si el periodo de retención de copia de seguridad es mayor que 0, Amazon RDS toma dos instantáneas de base de datos durante el proceso de actualización. La primera instantánea de base de datos es la de la base de datos antes de que se haya llevado a cabo ningún cambio. Si la actualización de sus bases de datos da por resultado un error, puede restaurar esta instantánea para crear una base de datos en la que se ejecuta la versión antigua. La segunda instantánea de base de datos se crea cuando se completa la actualización.

nota

Amazon RDS toma instantáneas de base de datos durante el proceso de actualización solo si ha definido el período de retención de copia de seguridad de su base de datos en un número mayor que 0. Para modificar el período de retención de copia de seguridad de una instancia de base de datos, consulte Modificación de una instancia de base de datos de Amazon RDS. No puede configurar un período de retención de copia de seguridad personalizado para un clúster de base de datos Multi-AZ.

Al actualizar la versión principal de una instancia de base de datos, todas las réplicas de lectura dentro de la región también se actualizan automáticamente. Una vez que se inicia el flujo de trabajo de actualización, las réplicas de lectura esperan a que pg_upgrade se complete correctamente en la instancia de base de datos principal. A continuación, la actualización de la instancia de base de datos principal espera a que se complete la actualización de la réplica de lectura. Habrá una interrupción hasta que se complete la actualización. Cuando actualiza la versión principal de un clúster de base de datos Multi-AZ, el estado de replicación de las réplicas de lectura cambia a terminado.

Una vez completada una actualización, no puede volver a la versión anterior del motor de base de datos. Si desea volver a la versión anterior, restaure la instantánea de base de datos que se realizó antes de la actualización para crear una nueva base de datos.

Búsqueda de objetivos de actualización válidos

Cuando se utiliza la AWS Management Console para actualizar una base de datos, muestra los destinos de actualización válidos para la base de datos. También puede utilizar el siguiente comando de la AWS CLI para identificar los destinos de actualización válidos de una base de datos:

Para Linux, macOS o:Unix

aws rds describe-db-engine-versions \ --engine postgres \ --engine-version version-number \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

En:Windows

aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version version-number ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Por ejemplo, para identificar los destinos de actualización válidos para una base de datos de la versión 12.13 de PostgreSQL, ejecute el siguiente comando de la:AWS CLI

Para Linux, macOS o:Unix

aws rds describe-db-engine-versions \ --engine postgres \ --engine-version 12.13 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

En:Windows

aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version 12.13 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text