Actualización a una nueva versión principal

A partir de diciembre de 2025, Databases for PostgreSQL ofrece tres vías de actualización diferentes:

  • Actualización in situ a una nueva versión principal.
  • Restaurando desde la copia de seguridad.
  • Actualización desde una réplica de solo lectura.

Cuando una versión principal de una base de datos se acerca a su fin de vida útil (EOL), es recomendable actualizarla a una versión principal actual.

Busque las versiones disponibles de Databases for PostgreSQL en la página Catálogo deIBM Cloud, desde el mandato de plugin de CLI Cloud Databases ibmcloud cdb deployables-show, o desde el punto final Cloud Databases API /deployables.

Al actualizar a una nueva instancia, también debe cambiar la información de conexión en la aplicación.

En los siguientes comandos de ejemplo, se requiere el CRN completo de la instancia de la base de datos para el comando « {id} ». Dado que el CRN contiene caracteres especiales, debe codificarse con el método « URL » para evitar un error «not_found».

Requisitos para actualizar a una versión principal más reciente de « PostgreSQL »

Antes de iniciar cualquier proceso de actualización a una versión mayor, comprueba las extensiones, los objetos de replicación y las dependencias de las aplicaciones que deban mantenerse primero.

Algunas extensiones y objetos de replicación lógica son específicos de una versión o dependen de componentes del lado del servidor que deben coincidir con la versión principal de PostgreSQL. Eliminarlos antes de la actualización ayuda a evitar fallos y te permite volver a crear únicamente los objetos compatibles una vez que la nueva versión esté en funcionamiento.

Extensiones y objetos de replicación lógica que deben revisarse

Revisa los siguientes puntos antes de la actualización:

Extensiones

  • pg_repack
  • old_snapshot
  • wal2json
  • anon
  • PostGIS

Ranuras de replicación

  • Logical replication slots

Dependencias de la aplicación

Si elimina extensiones u objetos de replicación de los que dependen sus aplicaciones, compruebe los flujos de datos y el comportamiento de las aplicaciones antes de continuar con la actualización. Además, ten en cuenta las posibles alteraciones en la lógica de tu aplicación que dependa de funciones específicas de PostgreSQL.

pg_repack

Elimina la carpeta « pg_repack » antes de la actualización y vuelve a crearla después de la actualización. La carpeta « pg_repack » utiliza una extensión específica de la versión y componentes de cliente/servidor que deben coincidir con la versión principal de « PostgreSQL ».

DROP EXTENSION pg_repack;

Vuelve a crear la extensión tras la actualización solo si tu carga de trabajo sigue necesitándola.

CREATE EXTENSION pg_repack;

old_snapshot

Elimina la tabla « old_snapshot » antes de la actualización. PostgreSQL NO lo vuelvas a crear tras actualizar a Windows 18, ya que ha dejado de ser compatible.

DROP EXTENSION old_snapshot;

wal2json ranuras de replicación

Si utiliza « wal2json » para la decodificación lógica, debe eliminar todas las ranuras de replicación asociadas antes de la actualización. La utilidad « pg_upgrade » prohíbe terminantemente las actualizaciones de versión principal mientras existan ranuras de replicación, y generará un error crítico y detendrá la actualización.

Antes de actualizar:

  1. Asegúrate de que se hayan procesado todos los datos pendientes del WAL.
  2. Detén la aplicación que utiliza el canal de replicación.
  3. Elimina las ranuras de replicación:
SELECT pg_drop_replication_slot('your_slot_name');

Tras la actualización, puede volver a crear las ranuras de replicación según sea necesario. Ten en cuenta que « wal2json » no se instala mediante « CREATE EXTENSION », sino que se configura a través de los parámetros de la base de datos (wal_level, max_replication_slots, max_wal_senders) y los permisos de las tablas, lo cual no impide las actualizaciones.

anon

Desactiva la extensión « anon » antes de la actualización y vuelve a activarla después de la actualización si sigues necesitándola. Es necesario seguir algunos pasos más antes de desinstalar anon.

Si tienes instalada la extensión « anon », sigue los pasos que se indican a continuación y ejecuta los comandos como usuario administrador antes de realizar la actualización.

  1. Elimina todas las reglas de enmascaramiento (si están activadas).

    SELECT anon.remove_masks_for_all_columns();
    
  2. Deshabilite los roles enmascarados (la actualización podría fallar si algún rol está marcado como enmascarado).

    SECURITY LABEL FOR anon ON ROLE <role_name> IS NULL;
    
  3. Elimine la extensión anon con la opción de cascada.

    DROP EXTENSION anon CASCADE;
    
  4. Si la extensión « anon » está instalada en varias bases de datos dentro de una instancia, siga los pasos indicados para cada una de ellas.

  5. Una vez finalizada la actualización, vuelva a activar la extensión anon y aplique de nuevo las reglas de enmascaramiento necesarias.

Se recomienda encarecidamente validar los datos antes y después de eliminar la ampliación para garantizar la coherencia del enmascaramiento antes de realizar la actualización.

PostGIS

Si utilizas PostGIS,, actualiza primero PostGIS antes de actualizar PostgreSQL.

SELECT postgis_extensions_upgrade();

Utilice la siguiente consulta para validar la actualización de la extensión PostGIS.

SELECT postgis_full_version();

Logical replication slots

Elimine todos los espacios de replicación lógica antes de la actualización y vuelva a crearlos después de la actualización. Los slots lógicos están vinculados al estado del servidor de origen y deben volver a crearse desde cero en la instancia actualizada.

SELECT pg_drop_replication_slot('<slot_name>');

Actualizaciones importantes de la versión in situ

La actualización de la versión principal sin interrupción te permite actualizar tu implementación a una versión principal compatible, lo que elimina la necesidad de restaurar una copia de seguridad en una nueva implementación. Este enfoque mantiene las mismas cadenas de conexión, sin necesidad de reconfigurar la implementación. Sin embargo, si la nueva versión principal requiere ajustes en la aplicación, estos deben abordarse.

Durante el periodo de actualización de la versión principal, su implementación experimentará un breve periodo de inactividad. Esto es de esperar, ya que el proceso sigue el método de actualización recomendado por el proveedor. La duración exacta puede variar en función del tamaño y la complejidad del esquema de su implantación. Si su servicio necesita leer datos de la instancia actualizada durante este tiempo, puede crear una instancia en espera y actualizar los detalles de conexión de su aplicación para que apunten a la instancia en espera. De este modo se asegura de tener una copia actualizada de su base de datos antes de iniciar la actualización. La instancia en espera también se puede promover y utilizar como instancia principal si la actualización in situ no se completa correctamente. Para obtener información adicional, consulte Estado de réplica de sólo lectura en actualizaciones de versiones principales in situ.

Databases for PostgreSQL ofrece a los clientes flexibilidad para gestionar sus propias copias de seguridad. El proceso de actualización de la versión principal in situ no crea automáticamente una copia de seguridad antes o después de la tarea. Si la actualización no se realiza correctamente, es posible que tengas que restaurar tu implementación a partir de la copia de seguridad válida más reciente en una nueva instancia.

Para garantizar la mejor recuperación posible, te recomendamos encarecidamente que realices una copia de seguridad nueva antes de la IPU y otra inmediatamente después de que esta haya finalizado.

  • Realizar una copia de seguridad antes de la actualización de la IPU ayuda a proteger la integridad de los datos y te proporciona una fuente de restauración con el estado más reciente de tu base de datos en caso de que la actualización falle.
  • Una copia de seguridad realizada inmediatamente después de la IPU crea el primer punto de restauración para la nueva línea temporal de la versión principal de PostgreSQL.
  • Si esperas a la siguiente copia de seguridad programada tras una IPU correcta, las operaciones PITR y de restauración para la nueva versión no estarán disponibles hasta que se realice dicha copia de seguridad. Aún es posible identificar una marca de tiempo PITR anterior al intento de IPU. Esto te permite utilizar la última copia de seguridad disponible antes de la IPU, junto con PITR, para restaurar la versión de PostgreSQL anterior a la IPU en una nueva implementación. Esta misma planificación también se aplica cuando se utiliza la actualización «Copia de seguridad y restauración ». Para obtener más información, consulte «Recuperación en un momento determinado»(PITR).

Si realizas tú mismo ambas copias de seguridad, en lugar de esperar a que se ejecute la programación automática, dispondrás de un punto de recuperación más predecible tanto antes como después de la actualización.

Antes de empezar

Tenga en cuenta los siguientes aspectos antes de iniciar el procedimiento de actualización.

  • Comprueba si hay una actualización disponible para la versión de tu implementación consultando la información sobre las capacidades de implementación a través de la interfaz de usuario, la API, la CLI o Terraform.

    Ejemplo: consultar la información sobre actualizaciones de versión mediante la CLI:

    ibmcloud cdb capability-show versions postgresql
    
  • Asegúrate de revisar los requisitos relacionados con la verificación previa que se indican en este tema antes de activar la IPU. IPU se ejecuta directamente en el entorno de origen y no crea una nueva instancia. Por motivos de seguridad de los clientes, el servicio realiza comprobaciones previas antes de que comience la actualización y bloquea la operación si se detecta algún riesgo. En concreto, compruebe los siguientes puntos:

    • Tu implementación tiene como máximo 3 miembros.
    • Tu implementación se encuentra en buen estado.
    • Tu implementación tiene al menos un 10 % de espacio libre en disco disponible. El uso máximo de disco permitido por defecto para las comprobaciones previas de la IPU es del 90 %.
    • Tu implementación no está sometida a una gran carga de E/S. El porcentaje máximo de utilización de E/S permitido por defecto para la comprobación previa de la IPU es del 90 %.
    • El tamaño de su esquema y el número de objetos se encuentran dentro de los límites predeterminados de la comprobación previa. Por defecto, ningún esquema individual puede superar los 100 GB y el número total de índices y secuencias debe ser inferior a 50 000.
    • Ha completado todas las tareas necesarias de limpieza de extensiones y de ranuras de replicación lógica antes de la actualización.
  • Cada versión principal incluye algunas funciones que podrían no ser compatibles con versiones anteriores. Consulte las notas de la versión del proveedor de la base de datos para ver si hay cambios que puedan afectar a sus aplicaciones.

  • No se admite la degradación de una implementación a una versión anterior.

  • La actualización de versión principal in situ no se puede cancelar una vez iniciada.

  • Si no tienes una copia de seguridad reciente, te recomendamos que hagas una antes de actualizar.

Vías de actualización in situ compatibles
Fuente: versión de PostgreSQL Destino de actualización in situ compatible
14 15, 18
Todas las demás versiones de código fuente compatibles 18

Además, ten en cuenta que, una vez completada la actualización, tu base de datos ejecutará una nueva versión principal de PostgreSQL. Dado que PostgreSQL almacena los datos en formatos específicos de cada versión, las copias de seguridad y los puntos de PITR anteriores a la actualización pertenecen a la línea temporal de la versión anterior y no se pueden restaurar en la versión actualizada. Para mantener las funciones de restauración completa y PITR (recuperación en un momento determinado) en la nueva versión, realice una nueva copia de seguridad inmediatamente después de que finalice la actualización. Esa copia de seguridad se convierte en la referencia para futuras operaciones de recuperación en la línea temporal de la nueva versión.

Si IPU falla, las copias de seguridad válidas anteriores a la actualización pueden seguir utilizándose con PITR para restaurar la versión anterior de PostgreSQL en una nueva instancia.

Actualización en la IU

  1. Crea un nuevo « Databases for PostgreSQL » para probar el proceso de actualización.
    Crea la implementación restaurando una copia de seguridad de tu implementación actual con la misma versión.

  2. Dirige tu aplicación de prueba hacia el entorno de prueba.
    Actualiza tu aplicación de staging para que apunte al entorno de pruebas. Confirme que su aplicación de prueba puede conectarse correctamente a la implementación provisional y que la aplicación funciona según lo previsto. Realice todas las pruebas de rendimiento y operativas necesarias en el entorno de prueba.

  3. Actualiza la versión principal de tu entorno de pruebas haciendo clic en el botón « Actualizar versión principal » de la página «Resumen ».
    Toma nota de cuánto tiempo tarda en completarse la actualización, para que puedas utilizar la configuración de caducidad de la actualización y así limitar las actualizaciones a tu ventana de mantenimiento.

  4. Comprueba que tu aplicación de prueba funcione con la nueva versión de la base de datos.
    Si tu aplicación funciona, este paso confirma que es seguro actualizar tu base de datos de producción.

  5. Actualiza la implementación de tu base de datos de producción a la nueva versión.
    Una vez que hayas comprobado que tu aplicación funciona correctamente con la nueva versión de la base de datos, puedes volver a la consola de administración e iniciar el proceso de actualización de tu entorno de producción. En la sección Detalles de implementación de la página Descripción general, haga clic en el botón Actualizar versión principal y siga los pasos.

    Una vez iniciado el proceso de actualización in situ, no se puede detener ni revertir. Por lo tanto, en el improbable caso de que se produzca un error, la implementación de su base de datos podría quedar irrecuperable. Por lo tanto, cree una copia de seguridad que luego pueda utilizar para restaurar una nueva implementación.

Le expiration for starting upgrade permite configurar un período de «tiempo de espera» en el que debe iniciarse la tarea de actualización antes de que se cancele automáticamente. Además, pruebe la actualización en la fase de preparación por adelantado para asegurarse de que la actualización se complete dentro del plazo deseado. Si, por ejemplo, quieres completar la actualización en el plazo de una hora, y has probado la actualización y sabes que tarda 30 minutos, la tarea de actualización debe iniciarse en los 30 minutos siguientes a la confirmación de que deseas actualizar. Por lo tanto, establezca el tiempo de caducidad en 30 minutos, de modo que si no se inicia dentro de ese tiempo, no se excederá su ventana.

Actualización a través de la API

Utilice el siguiente comando para actualizar in situ:

curl -X PATCH https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/version -H 'Authorization: Bearer <>' -H 'Content-Type: application/json' -d '{"version": "15"}'

Le expiration for starting upgrade permite configurar un período de «tiempo de espera» en el que debe iniciarse la tarea de actualización antes de que se cancele automáticamente. Además, pruebe la actualización en la fase de preparación por adelantado para asegurarse de que la actualización se complete dentro del plazo deseado. Si, por ejemplo, quieres completar la actualización en el plazo de una hora, y has probado la actualización y sabes que tarda 30 minutos, la tarea de actualización debe iniciarse en los 30 minutos siguientes a la confirmación de que deseas actualizar. Por lo tanto, establezca la caducidad en una marca de tiempo de 30 minutos a partir de ahora, de modo que si no se inicia dentro de ese tiempo, no se excederá su ventana. La caducidad debe estar comprendida entre 5 minutos (valor predeterminado) y 24 horas a partir de ahora. Para obtener más información, consulte la Cloud Databases API.

Actualización a través de la CLI

Disponible en la versión del complemento CDB >= 0.20.0.

Para ver la lista de transiciones de actualización y restauración permitidas para la implementación:

ibmcloud cdb deployment-capability-show <NAME|CRN> versions

Para actualizar el comando con los parámetros necesarios:

ibmcloud cdb deployment-version-upgrade <NAME|CRN> <TARGET_VERSION>

Para ver todos los detalles de los parámetros comando :

ibmcloud cdb deployment-version-upgrade --help

Le expiration for starting upgrade permite configurar un período de «tiempo de espera» en el que debe iniciarse la tarea de actualización antes de que se cancele automáticamente. Además, pruebe la actualización en la fase de preparación por adelantado para asegurarse de que la actualización se complete dentro del plazo deseado. Si, por ejemplo, quieres completar la actualización en el plazo de una hora, y has probado la actualización y sabes que tarda 30 minutos, la tarea de actualización debe iniciarse en los 30 minutos siguientes a la confirmación de que deseas actualizar. Por lo tanto, establezca el tiempo de caducidad en 30 minutos, de modo que si no se inicia dentro de ese tiempo, no se excederá su ventana. El plazo de caducidad debe estar comprendido entre 5 minutos (valor predeterminado) y 24 horas a partir de ahora. Hay dos formas de configurar la caducidad utilizando CLI --expire-in o --expire-at. Para obtener más información, consulta la ayuda del comando.

Actualización mediante Terraform

Disponible en la versión del proveedor Terraform >= 1.79.2.

Para actualizar, solo tienes que añadir o cambiar el version valor en tu configuración.

No realizar una copia de seguridad antes de actualizar la versión es peligroso y podría provocar la pérdida de datos si la actualización falla en cualquier momento: no habrá una copia de seguridad reciente a partir de la cual restaurar los datos. Por lo tanto, te recomendamos que te asegures de disponer de una copia de seguridad reciente antes de iniciar una actualización importante de la versión in situ.

La actualización podría tardar más tiempo del establecido en el tiempo de espera predeterminado. Se puede establecer un valor de tiempo de espera más largo utilizando el atributo timeouts.

Terraform tiene tiempos de espera en lugar de marcas de tiempo de caducidad. Por lo tanto, aumenta el tiempo de espera, ya que el valor de actualización del tiempo de espera se utiliza como fecha de caducidad. Por ejemplo, si establece un tiempo de espera de 20 minutos, la caducidad se fijará en 20 minutos y, si la actualización no se inicia en ese plazo, caducará y la actualización no se iniciará. Ten en cuenta que el plazo máximo de caducidad es de 24 horas, por lo que, aunque configures un tiempo de espera de 36 horas, la actualización caducará si no se ha iniciado en las primeras 24 horas.

Si se está llevando a cabo una actualización, ten en cuenta que algunas tareas pueden quedar en cola y no se ejecutarán hasta que finalice la actualización de la versión.

Resolución de problemas

Si sus aplicaciones muestran problemas inesperados después de una actualización exitosa de la versión principal y necesita volver a la versión PostgreSQL anterior, póngase en contacto con nuestro equipo de soporte para obtener ayuda. Evita iniciar un PITR o restaurar una copia de seguridad por tu cuenta, ya que esto puede complicar la recuperación.

Una actualización importante in situ no se llevará a cabo hasta que se hayan superado todas las comprobaciones previas. Estas medidas de seguridad están pensadas para proteger su implementación, ya que la actualización se realiza directamente en la instancia de origen. Si la actualización está bloqueada, revise las siguientes áreas:

  • Número de miembros: la actualización de versión principal in situ admite implementaciones con un máximo de 3 miembros. Si tu implementación tiene más de 3 miembros, las comprobaciones previas bloquean la actualización. Los miembros no se pueden eliminar mediante el escalado horizontal, por lo que debes abrir un ticket de asistencia en IBM Cloud para reducir el número de miembros antes de volver a intentar la actualización.
  • Estado del clúster: asegúrate de que el clúster de Patroni funcione correctamente y de que exista un estado claro de líder/réplica. Las actualizaciones no pueden continuar si Patroni informa de condiciones de inestabilidad o conmutación por error.
  • Espacio en disco: comprueba que haya suficiente espacio libre disponible. El proceso utiliza el pg_upgrade modo de enlace, que requiere un margen adecuado. Si el uso del disco supera el límite configurado (por defecto: 90 %), libere espacio antes de volver a intentarlo.
  • Carga de E/S de disco: comprueba el uso actual de E/S y las IOPS. Las actualizaciones se detienen cuando el sistema está sometido a una carga elevada para evitar la degradación del rendimiento o el fallo de la actualización.
  • Tamaño del esquema y recuento de objetos: como se ha mencionado, el tamaño del esquema afecta directamente a la duración de una actualización de versión principal in situ. Asegúrese de que ningún esquema individual supere el tamaño máximo (por defecto: 100 GB) y que el número total de objetos de índice y secuencia se mantenga por debajo del límite (por defecto: 50 000). Los esquemas grandes o los recuentos de objetos inusualmente altos pueden requerir una limpieza u optimización antes de continuar con la actualización. pg_upgrade Realiza actualizaciones rápidas creando nuevas tablas del sistema y reutilizando simplemente los antiguos archivos de datos de usuario. El tiempo necesario para crear estas tablas del sistema varía en función del número de objetos de la base de datos. El consumo de recursos se puede evaluar utilizando la integración de supervisión. Si no todos los componentes de la base de datos están disponibles para actualizarse, la tarea de actualización falla. Esto puede suceder debido al mantenimiento. Las tareas que han fallado debido a comprobaciones de estado fallidas se pueden volver a intentar más tarde. Si la tarea sigue fallando, abre un ticket de soporte con IBM Cloud support. Si ciertas comprobaciones no son relevantes para su entorno y la actualización sigue bloqueada, cree un ticket de soporte para obtener más ayuda.

Actualización a partir de una réplica de solo lectura

Actualice configurando una réplica de sólo lectura. Crea una réplica de solo lectura con la misma versión de la base de datos que tu implementación y espera a que se repliquen todos tus datos. Cuando la implementación y su réplica estén sincronizadas, convierte y actualiza la réplica de solo lectura a una implementación completa e independiente que ejecute la nueva versión de la base de datos. Para llevar a cabo el paso de actualización y promoción, envía una solicitud POST al /deployments/{id}/remotes/promotion punto final, indicando en el cuerpo de la solicitud la versión a la que desea actualizar.

Esta solicitud tiene el aspecto siguiente:

curl -X POST \
  https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/remotes/promotion \
  -H 'Authorization: Bearer <>'  \
 -H 'Content-Type: application/json' \
 -d '{
    "promotion": {
        "version": "14",
        "skip_initial_backup": false
    }
}' \

skip_initial_backup es opcional. Si se establece en true, el nuevo despliegue no realizará una copia de seguridad inicial cuando se completa la promoción. El nuevo despliegue está disponible en menos tiempo, a expensas de que no se realice una copia de seguridad hasta que se ejecute la siguiente copia de seguridad automática o que realice una copia de seguridad bajo demanda.

Simulacro de la promoción y actualización

Para evaluar los efectos de las actualizaciones a versiones principales, realiza una simulación. Una ejecución en seco simula la promoción y la actualización, con los resultados impresos en los registros de base de datos. Acceda y visualice los registros de su base de datos a través de la integración de análisis de registros. De este modo, se garantiza que la versión que estás utilizando actualmente, junto con sus extensiones, se pueda actualizar correctamente a la versión deseada.

El simulacro debe ejecutarse con skip_initial_backup establecido en false y con version definido.

El mandato tiene el siguiente aspecto:

curl -X POST \
  https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/remotes/promotion \
  -H 'Authorization: Bearer <>'  \
 -H 'Content-Type: application/json' \
 -d '{
    "promotion": {
        "version": "14",
        "skip_initial_backup": false,
        "dry_run": true
    }
}' \

Copia de seguridad y restauración de la actualización

Puede actualizar la versión de la base de datos restaurando una copia de seguridad de los datos en un nuevo despliegue que ejecute la nueva versión de la base de datos.

Actualización en la IU

Actualice a una nueva versión al restaurar una copia de seguridad desde el menú Copias de seguridad del Panel de control de despliegue. Haga clic en Restaurar en una copia de seguridad para acceder a la página de aprovisionamiento en una nueva pestaña, donde podrá cambiar algunas opciones para la nueva implantación. Una de las opciones es la versión de la base de datos, que se rellena automáticamente con las versiones disponibles a las que puedes actualizar. Selecciona una versión y haz clic en «Crear» para iniciar el proceso de aprovisionamiento y restauración.

Actualización a través de la CLI

Para actualizar y restaurar a partir de una copia de seguridad mediante la interfaz de línea de comandos (CLI) de IBM Cloud, utiliza el comando de aprovisionamiento desde el controlador de recursos.

ibmcloud resource service-instance-create <DEPLOYMENT_NAME_OR_CRN> <SERVICE_ID> <SERVICE_PLAN_ID> <REGION> <SERVICE-ENDPOINTS>

Los parámetros service-name, service-id, service-plan-id, region y service-endpoints son todos obligatorios. También debe indicar -p con los parámetros de versión y de ID de copia de seguridad en un objeto JSON. El nuevo despliegue se dimensiona automáticamente con el mismo disco y memoria que el despliegue de origen en el momento de la copia de seguridad.

Este mandato tiene el aspecto siguiente:

ibmcloud resource service-instance-create example-upgrade databases-for-postgresql standard us-south \
-p \ '{
  "backup_id": "crn:v1:bluemix:public:databases-for-postgresql:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
  "version":14
}'--service-endpoints "public"

Actualización a través de la API

Complete los pasos necesarios para utilizar la API del controlador de recursos antes de utilizarla para actualizar desde una copia de seguridad. A continuación, envía a la API una solicitud de tipo « POST ». Los parámetros name, target, resource_group y resource_plan_id son obligatorios. También debe indicar la versión y el ID de copia de seguridad. El nuevo despliegue tiene la misma asignación de memoria y de disco que el despliegue de origen en el momento de la copia de seguridad.

Este mandato tiene el aspecto siguiente:

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "bluemix-us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-postgresql-standard",
    "backup_id": "crn:v1:bluemix:public:databases-for-postgresql:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
    "version":14
  }'

Actualización forzada

Después de la fecha de fin de vida útil, todas las implementaciones Databases for PostgreSQL activas en la versión obsoleta se actualizarán de forma obligatoria a la siguiente versión compatible. Por ejemplo, PostgreSQL la versión 13 (obsoleta) se actualiza a la versión 14.

Actualice antes de la fecha de fin de vida útil para evitar los siguientes riesgos:

  • Para este tipo de actualización forzosa no se ofrecen acuerdos de nivel de servicio.
  • Es posible que se produzcan pérdidas de datos.
  • Es posible que su aplicación sufra un periodo de inactividad prolongado.
  • Es posible que tu aplicación deje de funcionar si no es compatible con la nueva versión.
  • No puede controlar el momento en que se producirá esta actualización para su implantación.
  • No hay proceso de reversión para esta actualización forzada.

Para conocer las fechas de fin de vida útil, consulte la página de política de versiones.

Problemas con los privilegios de los roles durante las actualizaciones de versión

A partir de la versión 16 de « PostgreSQL », la aplicación de los privilegios de los roles es más estricta. Se trata de un cambio arquitectónico en la versión anterior de PostgreSQL, no de un cambio de comportamiento específico de {{site.data.keyword.ibm}}. En versiones anteriores, los roles con el atributo « CREATEROLE » podían gestionar otros roles de forma más amplia. En « PostgreSQL » 16 y versiones posteriores, un rol debe tener el derecho « ADMIN OPTION » sobre otro rol para poder concederlo o revocarlo. Para más información, consulte las notas de la versión 16 de « PostgreSQL », la sección « Atributos de los roles » y GRANT sobre los roles.

Si vas a actualizar de PostgreSQL 15 o una versión anterior a PostgreSQL 16 o una versión posterior, revisa las concesiones de roles antes de la actualización. Si la gestión de roles debe continuar tras la actualización, asegúrate de que los roles necesarios cuenten con el permiso « WITH ADMIN OPTION » antes de iniciar la actualización.

Si te encuentras con errores relacionados con los privilegios tras la actualización, por ejemplo:

ERROR: only roles with the ADMIN OPTION on role "some_role" may grant this role
DETAIL: role "admin" is not permitted to grant role "some_role"

Utiliza la función auxiliar integrada grant_admin_option_to_roles para restablecer ADMIN OPTION para roles específicos:

  • Esto solo se aplica a las bases de datos actualizadas desde PostgreSQL v15 y versiones anteriores a PostgreSQL 16 y posteriores (si se produce el error descrito anteriormente).
  • Acepta una lista arbitraria de roles a los que aplicar la corrección.
  • Solo puede ejecutarlo el usuario « admin ».
  • Es seguro ejecutarlo varias veces (idempotente).

Uso de ejemplo:

SELECT grant_admin_option_to_roles('role1', 'role2', 'role3');

Esta función concede los roles especificados (role1, role2, role3) al usuario admin con ADMIN OPTION, lo que permite al usuario admin gestionar (conceder, revocar, modificar o eliminar) estos roles en las instancias actualizadas.

Registro de cambios para las versiones principales de PostgreSQL