Mise à niveau vers une nouvelle version majeure
À partir de décembre 2025, Databases for PostgreSQL propose trois voies de mise à niveau différentes :
- Mise à niveau sur place vers une nouvelle version majeure.
- Restauration à partir d'une sauvegarde.
- Mise à niveau à partir d'une réplique en lecture seule.
Lorsqu'une version majeure d'une base de données approche de sa fin de vie (EOL), il est recommandé de passer à une version majeure plus récente.
Recherchez les versions disponibles de Databases for PostgreSQL dans la page du catalogue IBM Cloud, à partir de la commande du plug-in d'interface de ligne de commande
Cloud Databases ibmcloud cdb deployables-showou de l'API Cloud Databases /deployables.
Lorsque vous effectuez une mise à niveau vers une nouvelle instance, vous devez également modifier les informations de connexion dans votre application.
Dans les exemples de commandes suivants, le CRN complet de l'instance de base de données est requis pour l' {id}. Le CRN contenant des caractères spéciaux, il doit être encodé en format « URL » afin d'éviter une erreur «not_found».
Conditions requises pour passer à une version majeure plus récente d' PostgreSQL
Avant de vous lancer dans une mise à niveau vers une nouvelle version majeure, vérifiez toutes les extensions, les objets de réplication et les dépendances d'application qui doivent être mis à jour au préalable.
Certaines extensions et certains objets de réplication logique sont spécifiques à une version ou dépendent de composants côté serveur qui doivent correspondre à la version principale d' PostgreSQL. Leur suppression avant la mise à niveau permet d'éviter les défaillances et vous permet de ne recréer que les objets pris en charge une fois la nouvelle version opérationnelle.
Extensions et objets de réplication logique à examiner
Vérifiez les points suivants avant la mise à niveau :
Extensions
pg_repackold_snapshotwal2jsonanonPostGIS
Intervalles de réplication
Logical replication slots
Dépendances de l'application
Si vous supprimez des extensions ou des objets de réplication dont dépendent vos applications, vérifiez vos flux de données et le comportement de vos applications avant de poursuivre la mise à niveau. Pensez également aux perturbations éventuelles de la logique de votre application qui repose sur des fonctionnalités spécifiques d' PostgreSQL.
pg_repack
Supprimez le répertoire « pg_repack » avant la mise à niveau, puis recréez-le après celle-ci. Le répertoire « pg_repack » utilise une extension propre à la version ainsi que des composants client/serveur qui doivent
correspondre à la version principale de « PostgreSQL ».
DROP EXTENSION pg_repack;
Ne recréez l'extension après la mise à niveau que si votre charge de travail en a toujours besoin.
CREATE EXTENSION pg_repack;
old_snapshot
Supprimez la table « old_snapshot » avant la mise à niveau. PostgreSQL NE LE RECRÉEZ PAS après la mise à jour vers Windows 18, car il n'est plus pris en charge.
DROP EXTENSION old_snapshot;
wal2json emplacements de réplication
Si vous utilisez la commande « wal2json » pour le décodage logique, vous devez supprimer tous les emplacements de réplication associés avant la mise à niveau. L'utilitaire pg_upgrade interdit formellement
les mises à niveau vers une version majeure tant que des emplacements de réplication existent; il générera une erreur critique et interrompra la mise à niveau.
Avant la mise à jour :
- Assurez-vous que toutes les données WAL en attente ont bien été traitées.
- Arrêtez l'application qui utilise l'emplacement de réplication.
- Supprimer les emplacements de réplication :
SELECT pg_drop_replication_slot('your_slot_name');
Une fois la mise à niveau effectuée, vous pouvez recréer les emplacements de réplication selon vos besoins. Notez qu' wal2json ne s'installe pas via CREATE EXTENSION, mais qu'il se configure à l'aide de paramètres
de base de données (wal_level, max_replication_slots, max_wal_senders) et d'autorisations sur les tables, ce qui n'empêche pas les mises à jour.
anon
Désinstallez l'extension « anon » avant la mise à jour et réactivez-la après la mise à jour si vous en avez encore besoin. Il faut effectuer quelques étapes supplémentaires avant de quitter anon.
Si l'extension « anon » est installée, suivez les étapes ci-dessous et exécutez les commandes en tant qu'utilisateur admin avant de procéder à la mise à jour.
-
Supprimer toutes les règles de masquage (si elles sont activées).
SELECT anon.remove_masks_for_all_columns(); -
Désactiver le masquage des rôles (la mise à niveau peut échouer si des rôles sont marqués comme masqués).
SECURITY LABEL FOR anon ON ROLE <role_name> IS NULL; -
Abandonnez l'extension
anonavec l'option cascade.DROP EXTENSION anon CASCADE; -
Si l'extension «
anon» est installée dans plusieurs bases de données au sein d'une même instance, suivez les étapes décrites pour chacune d'entre elles. -
Une fois la mise à niveau terminée, réactivez l'extension
anonet réappliquez les règles de masquage si nécessaire.
Il est fortement recommandé de valider les données avant et après l'abandon de l'extension afin de garantir la cohérence du masquage avant d'effectuer la mise à niveau.
PostGIS
Si vous utilisez PostGIS,, mettez d'abord à jour PostGIS avant de mettre à jour PostgreSQL.
SELECT postgis_extensions_upgrade();
Utilisez la requête suivante pour valider la mise à jour de l'extension PostGIS.
SELECT postgis_full_version();
Logical replication slots
Supprimez tous les emplacements de réplication logique avant la mise à niveau, puis recréez-les après celle-ci. Les emplacements logiques sont liés à l'état du serveur source et doivent être recréés à partir de zéro sur l'instance mise à niveau.
SELECT pg_drop_replication_slot('<slot_name>');
Mises à niveau majeures sur place
La mise à niveau de version majeure sur place vous permet de mettre à niveau votre déploiement vers une version majeure prise en charge, ce qui vous évite d'avoir à restaurer une sauvegarde dans un nouveau déploiement. Cette approche conserve les mêmes chaînes de connexion, sans qu'il soit nécessaire de reconfigurer le déploiement. Toutefois, si la nouvelle version majeure nécessite des ajustements de l'application, ceux-ci doivent être effectués.
Pendant la fenêtre de mise à niveau majeure sur place, votre déploiement connaîtra une brève période d'indisponibilité. Cela est normal, car le processus suit la procédure de mise à niveau recommandée par le fournisseur. La durée exacte peut varier en fonction de la taille et de la complexité du schéma de votre déploiement. Si votre service a besoin de lire les données de l'instance mise à niveau pendant cette période, vous pouvez créer une instance de secours et mettre à jour les détails de la connexion de votre application pour qu'elle pointe vers l'instance de secours. Cela permet de s'assurer que vous disposez d'une copie à jour de votre base de données avant de commencer la mise à niveau. L'instance de secours peut également être promue et utilisée comme instance principale si la mise à niveau sur place ne s'effectue pas correctement. Pour plus d'informations, voir Statut du réplica en lecture seule lors des mises à niveau de versions majeures en place.
Databases for PostgreSQL offre aux clients une grande flexibilité dans la gestion de leurs propres sauvegardes. Le processus de mise à niveau majeure sur place ne crée pas automatiquement de sauvegarde avant ou après la tâche. Si la mise à niveau échoue, vous devrez peut-être restaurer votre déploiement à partir de votre dernière sauvegarde valide sur une nouvelle instance.
Pour optimiser la procédure de restauration, nous vous recommandons vivement d'effectuer une nouvelle sauvegarde avant l'IPU, puis une autre dès que l'IPU est terminée.
- Une sauvegarde effectuée avant l'IPU permet de préserver l'intégrité des données et vous offre une source de restauration permettant de rétablir l'état le plus récent de votre base de données en cas d'échec de la mise à niveau.
- Une sauvegarde effectuée immédiatement après l'IPU crée le premier point de restauration pour la nouvelle version majeure d' PostgreSQL.
- Si vous attendez la prochaine sauvegarde planifiée après une opération IPU réussie, les opérations PITR et de restauration pour la nouvelle version ne seront disponibles qu'une fois cette sauvegarde effectuée. Vous pouvez toujours identifier un horodatage PITR antérieur à la tentative d'IPU. Cela vous permet d'utiliser la dernière sauvegarde disponible avant l'IPU, en combinaison avec le PITR, pour restaurer la version d' PostgreSQL antérieure à l'IPU dans un nouveau déploiement. Cette même procédure s'applique également lorsque vous utilisez la mise à niveau « Sauvegarde et restauration ». Pour plus d'informations, consultez la section « Récupération à un instant donné »(PITR).
En effectuant vous-même ces deux sauvegardes, plutôt que d'attendre le cycle de sauvegarde automatique, vous disposez d'un point de restauration plus prévisible avant et après la mise à niveau.
Avant de commencer
Avant de commencer la procédure de mise à niveau, tenez compte des aspects suivants.
-
Vérifiez si une mise à jour est disponible pour votre version de déploiement en consultant les informations relatives aux capacités de déploiement via l'interface utilisateur, l'API, l'interface de ligne de commande ou Terraform.
Exemple : consultation des informations relatives à la mise à jour de la version via l'interface en ligne de commande :
ibmcloud cdb capability-show versions postgresql -
Assurez-vous de prendre connaissance des exigences relatives au contrôle préalable décrites dans cette rubrique avant de lancer l'IPU. IPU s'exécute directement sur l'environnement de déploiement d'origine et ne crée pas de nouvelle instance. Pour la sécurité des clients, le service effectue des vérifications préalables avant le début de la mise à niveau et bloque l'opération si un risque est détecté. Vérifiez notamment les points suivants :
- Votre déploiement compte au maximum 3 membres.
- Votre déploiement fonctionne correctement.
- Votre déploiement dispose d'au moins 10 % d'espace disque libre. L'utilisation maximale autorisée par défaut de l'espace disque pour les pré-vérifications IPU est de 90 %.
- Votre déploiement n'est pas soumis à une forte charge d'E/S. Le taux d'utilisation maximal autorisé par défaut pour la pré-vérification de l'IPU est de 90 %.
- La taille de votre schéma et le nombre d'objets se situent dans les limites des seuils de pré-vérification par défaut. Par défaut, aucun schéma ne peut dépasser 100 Go et le nombre total d'index et de séquences doit rester inférieur à 50 000.
- Vous avez effectué toutes les opérations nécessaires de nettoyage des extensions et des emplacements de réplication logique avant la mise à niveau.
-
Chaque version majeure comporte certaines fonctionnalités qui peuvent ne pas être compatibles avec les versions antérieures. Consultez les notes de mise à jour fournies par l'éditeur de la base de données pour prendre connaissance des modifications susceptibles d'affecter vos applications.
-
La rétrogradation d'un déploiement vers une version précédente n'est pas prise en charge.
-
Une mise à niveau majeure effectuée sur place ne peut pas être annulée une fois lancée.
-
Si vous ne disposez pas d'une sauvegarde récente, pensez à en effectuer une avant de procéder à la mise à jour.
| Source : version de l' PostgreSQL | Cible de mise à niveau sur place prise en charge |
|---|---|
| 14 | 15, 18 |
| Toutes les autres versions source prises en charge | 18 |
Notez également qu'une fois la mise à niveau terminée, votre base de données fonctionnera sous une nouvelle version majeure d' PostgreSQL. Étant donné qu' PostgreSQL stocke les données dans des formats propres à chaque version, les sauvegardes et les points de restauration PITR antérieurs à la mise à niveau relèvent de la chronologie de la version précédente et ne peuvent pas être restaurés dans la version mise à niveau. Pour conserver toutes les fonctionnalités de restauration complète et de PITR (restauration à un instant donné) dans la nouvelle version, effectuez une nouvelle sauvegarde dès que la mise à niveau est terminée. Cette sauvegarde sert de référence pour les futures opérations de restauration sur la nouvelle chronologie.
Si l'IPU échoue, les sauvegardes valides antérieures à la mise à niveau peuvent toujours être utilisées avec PITR pour restaurer la version antérieure d' PostgreSQL.
Mise à niveau via l'interface utilisateur
-
Créez une nouvelle instance « Databases for PostgreSQL » pour tester le processus de mise à niveau.
Créez le déploiement en restaurant une sauvegarde de votre déploiement existant portant la même version. -
Configurez votre application de préproduction pour qu'elle pointe vers le déploiement de test.
Mettez à jour votre application de préproduction pour qu'elle pointe vers le déploiement de test. Vérifiez que votre application test peut se connecter correctement au déploiement provisoire et qu'elle fonctionne comme prévu. Effectuez tous les tests de performance et d'exploitation requis sur l'environnement de préproduction. -
Mettez à jour la version majeure de votre déploiement de test en cliquant sur le bouton « Mettre à jour la version majeure » sur la page « Aperçu ».
Notez la durée nécessaire à la mise à jour, afin de pouvoir utiliser le paramètre d'expiration de la mise à jour pour que celle-ci s'effectue pendant votre fenêtre de maintenance. -
Vérifiez que votre application de préproduction fonctionne avec la nouvelle version de la base de données.
Si votre application fonctionne, cette étape confirme que vous pouvez procéder en toute sécurité à la mise à niveau de votre base de données de production. -
Mettez à niveau le déploiement de votre base de données de production vers la nouvelle version.
Une fois que vous aurez vérifié que votre application fonctionne correctement avec la nouvelle version de la base de données, vous pourrez revenir à la console d'administration et lancer le processus de mise à niveau de votre déploiement en production. Dans la section Détails du déploiement de la page Aperçu, cliquez sur le bouton Mettre à niveau la version majeure et suivez les étapes indiquées.Une fois le processus de mise à niveau sur place lancé, il ne peut être ni interrompu ni annulé. Ainsi, dans le cas improbable où une erreur se produirait, le déploiement de votre base de données pourrait devenir irrécupérable. Par conséquent, créez une sauvegarde que vous pourrez ensuite utiliser pour restaurer un nouveau déploiement.
Cette expiration for starting upgrade option vous permet de configurer un délai d'expiration avant lequel la tâche de mise à niveau doit démarrer pour ne pas être automatiquement annulée. De plus, testez la mise à niveau au préalable
afin de vous assurer qu'elle s'effectue dans les délais souhaités. Si, par exemple, vous souhaitez effectuer la mise à niveau en moins d'une heure, et que vous avez testé la procédure et savez qu'elle prend 30 minutes, votre tâche de mise
à niveau doit démarrer dans les 30 minutes suivant votre confirmation de la mise à niveau. Par conséquent, réglez l'expiration sur 30 minutes, afin que si le processus ne démarre pas dans ce délai, il ne dépasse pas votre fenêtre.
Mise à niveau via l'API
Utilisez la commande suivante pour effectuer la mise à niveau sur place :
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"}'
Cette expiration for starting upgrade option vous permet de configurer un délai d'expiration avant lequel la tâche de mise à niveau doit démarrer pour ne pas être automatiquement annulée. De plus, testez la mise à niveau au préalable
afin de vous assurer qu'elle s'effectue dans les délais souhaités. Si, par exemple, vous souhaitez effectuer la mise à niveau en moins d'une heure, et que vous avez testé la procédure et savez qu'elle prend 30 minutes, votre tâche de mise
à niveau doit démarrer dans les 30 minutes suivant votre confirmation de la mise à niveau. Par conséquent, définissez l'expiration à un horodatage de 30 minutes à partir de maintenant, afin que si le processus ne démarre pas dans ce délai,
il ne dépasse pas votre fenêtre. L'expiration doit être comprise entre 5 minutes (par défaut) et 24 heures à compter de maintenant. Pour plus d'informations, consultez Cloud Databases l'API.
Mise à niveau via l'interface de ligne de commande
Disponible dans la version du plugin CDB >= 0.20.0.
Pour afficher la liste des transitions de mise à niveau et de restauration autorisées pour le déploiement :
ibmcloud cdb deployment-capability-show <NAME|CRN> versions
Pour mettre à niveau la commande avec les paramètres requis :
ibmcloud cdb deployment-version-upgrade <NAME|CRN> <TARGET_VERSION>
Pour afficher tous les détails des paramètres de commande :
ibmcloud cdb deployment-version-upgrade --help
Cette expiration for starting upgrade option vous permet de configurer un délai d'expiration avant lequel la tâche de mise à niveau doit démarrer pour ne pas être automatiquement annulée. De plus, testez la mise à niveau au préalable
afin de vous assurer qu'elle s'effectue dans les délais souhaités. Si, par exemple, vous souhaitez effectuer la mise à niveau en moins d'une heure, et que vous avez testé la procédure et savez qu'elle prend 30 minutes, votre tâche de mise
à niveau doit démarrer dans les 30 minutes suivant votre confirmation de la mise à niveau. Par conséquent, réglez l'expiration sur 30 minutes, afin que si le processus ne démarre pas dans ce délai, il ne dépasse pas votre fenêtre. La durée
de validité doit être comprise entre 5 minutes (par défaut) et 24 heures à compter de maintenant. Il existe deux façons de définir l'expiration à l'aide de l'interface CLI --expire-in ou --expire-at. Pour plus d'informations,
consultez l'aide de la commande.
Mise à niveau via Terraform
Disponible dans la version du fournisseur Terraform >= 1.79.2.
Pour effectuer la mise à niveau, il suffit d'ajouter ou de modifier la version valeur dans votre configuration.
Il est risqué de ne pas effectuer de sauvegarde avant une mise à jour de version, car cela pourrait entraîner une perte de données si la mise à jour échoue à n'importe quelle étape : il n'y aura alors aucune sauvegarde récente à partir de laquelle effectuer une restauration. Il est donc recommandé de disposer d'une sauvegarde récente avant de lancer une mise à niveau majeure sur place.
La mise à niveau peut prendre plus de temps que le délai d'attente par défaut. Une valeur de délai d'attente plus longue peut être définie à l'aide de l'attribut timeouts.
Terraform utilise des délais d'expiration plutôt que des horodatages d'expiration. Par conséquent, augmentez votre délai d'expiration, car la valeur de mise à jour de ce délai sert de date d'expiration. Par exemple, si vous définissez un délai d'expiration de 20 minutes, celui-ci sera fixé à 20 minutes et si la mise à niveau ne démarre pas dans ce délai, elle expirera et ne démarrera pas. Notez que la durée maximale d'expiration est de 24 heures; par conséquent, même si vous définissez un délai d'expiration de 36 heures, la mise à niveau expirera si elle n'a pas démarré dans les premières 24 heures.
Si une mise à niveau est en cours, notez que certaines tâches peuvent être mises en attente et ne seront exécutées qu'une fois la mise à niveau terminée.
Traitement des incidents
Si vos applications présentent des problèmes inattendus après une mise à niveau majeure réussie et que vous devez revenir à la version PostgreSQL précédente, contactez notre équipe d'assistance pour obtenir de l'aide. Évitez de lancer vous-même une procédure PITR ou de restaurer une sauvegarde, car cela pourrait compliquer la récupération.
Une mise à niveau majeure sur place ne sera effectuée qu'après la réussite de toutes les vérifications préalables. Ces mesures de sécurité ont pour but de protéger votre déploiement, car la mise à niveau s'effectue directement sur l'instance source. Si la mise à niveau est bloquée, vérifiez les points suivants :
- Nombre de nœuds : la mise à niveau de version majeure sur site prend en charge les déploiements comprenant au maximum 3 nœuds. Si votre déploiement compte plus de 3 membres, les vérifications préalables bloquent la mise à niveau. Les membres ne peuvent pas être supprimés dans le cadre d' une mise à l'échelle horizontale; veuillez donc ouvrir un ticket d'assistance auprès du service d'assistance d' IBM Cloud afin de réduire le nombre de membres avant de réessayer la mise à niveau.
- État du cluster : s'assurer que le cluster Patroni fonctionne correctement et qu'il existe une distinction claire entre le nœud principal et les répliques. Les mises à niveau ne peuvent pas être effectuées si Patroni signale des conditions d'instabilité ou de basculement.
- Espace disque : vérifiez qu'il y a suffisamment d'espace libre disponible. Le processus utilise le mode
pg_upgradelien, qui nécessite une marge suffisante. Si l'utilisation du disque dépasse la limite configurée (valeur par défaut : 90 %), libérez de l'espace avant de réessayer. - Charge des E/S disque : vérifiez l'utilisation actuelle des E/S et le nombre d'IOPS. Les mises à niveau sont suspendues lorsque le système est soumis à une charge importante afin d'éviter toute dégradation des performances ou tout échec de la mise à niveau.
- Taille du schéma et nombre d'objets : comme mentionné précédemment, la taille du schéma a une incidence directe sur la durée d'une mise à niveau majeure sur place. Assurez-vous qu'aucun schéma individuel ne dépasse la taille maximale (valeur
par défaut : 100 Go) et que le nombre total d'objets d'index et de séquence reste inférieur à la limite (valeur par défaut : 50 000). Les schémas volumineux ou les nombres d'objets inhabituellement élevés peuvent nécessiter un nettoyage
ou une optimisation avant de procéder à la mise à niveau.
pg_upgradeeffectue des mises à niveau rapides en créant de nouvelles tables système et en réutilisant simplement les anciens fichiers de données utilisateur. Le temps nécessaire à la création de ces tables système dépend du nombre d'objets de la base de données. La consommation des ressources peut être évaluée à l'aide de l 'intégration de la surveillance. Si tous les composants de la base de données ne sont pas disponibles pour la mise à niveau, la tâche de mise à niveau échoue. Cela peut être dû à des travaux de maintenance. Les tâches qui ont échoué en raison d'échecs des contrôles d'intégrité peuvent être réessayées ultérieurement. Si la tâche échoue continuellement, ouvrez un ticket d'assistance auprès IBM Cloud du service d'assistance. Si certaines vérifications ne sont pas pertinentes pour votre environnement et que la mise à niveau est toujours bloquée, créez un ticket d'assistance pour obtenir de l'aide.
Mise à niveau à partir d'une réplique accessible en lecture seule
Effectuez une mise à niveau en configurant une réplique accessible en lecture seule. Créez une réplique en lecture seule utilisant la même version
de base de données que votre déploiement, puis attendez que toutes vos données y soient répliquées. Une fois que votre déploiement et sa réplique sont synchronisés, faites passer la réplique en lecture seule au statut de déploiement autonome
complet exécutant la nouvelle version de la base de données, puis mettez-la à niveau. Pour effectuer l'étape de mise à niveau et de promotion, envoyez une requête POST à l'/deployments/{id}/remotes/promotion point de terminaison en indiquant dans le corps de la requête la version vers laquelle vous souhaitez effectuer la mise à niveau.
Cette demande se présente comme suit:
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
}
}' \
Le paramètre skip_initial_backup est facultatif. Si la valeur est true, le nouveau déploiement n'effectue pas de sauvegarde initiale lorsque la promotion est terminée. Votre nouveau déploiement est disponible plus rapidement.
L'inconvénient est qu'il n'est pas sauvegardé jusqu’à la sauvegarde automatique suivante ou une sauvegarde à la demande.
Exécution-test de la promotion et de la mise à niveau
Pour évaluer les effets des mises à niveau vers une nouvelle version majeure, lancez un test en mode simulation. Une exécution à sec simule la promotion et la mise à niveau, avec les résultats imprimés dans les journaux de la base de données. Accédez aux journaux de votre base de données et visualisez-les par l'intermédiaire de Intégration de l'analyse du journal. Cela garantit que la version que vous utilisez actuellement, avec ses extensions, pourra être mise à niveau sans problème vers la version souhaitée.
Pour effectuer l'exécution-test, vous devez définir skip_initial_backup sur false, et vous devez définir version.
La commande se présente comme suit:
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
}
}' \
Sauvegarde et restauration de la mise à niveau
Vous pouvez mettre à niveau votre version de base de données en restaurant une sauvegarde de vos données dans un nouveau déploiement qui exécute la nouvelle version de base de données.
Mise à niveau via l'interface utilisateur
Effectuez une mise à niveau vers une nouvelle version lors de la restauration d'une sauvegarde à partir du menu Sauvegardes de votre tableau de bord de déploiement. Cliquez sur Restore sur une sauvegarde pour accéder à la page de provisionnement dans un nouvel onglet, où vous pouvez modifier certaines options pour le nouveau déploiement. L'une des options concerne la version de la base de données; celle-ci est automatiquement renseignée avec les versions disponibles vers lesquelles vous pouvez effectuer une mise à jour. Sélectionnez une version, puis cliquez sur « Créer » pour lancer le processus de mise à disposition et de restauration.
Mise à niveau via l'interface de ligne de commande
Pour effectuer une mise à niveau et une restauration à partir d'une sauvegarde via l'interface de ligne de commande (CLI) d' IBM Cloud, utilisez la commande de provisionnement à partir du contrôleur de ressources.
ibmcloud resource service-instance-create <DEPLOYMENT_NAME_OR_CRN> <SERVICE_ID> <SERVICE_PLAN_ID> <REGION> <SERVICE-ENDPOINTS>
Les paramètres service-name, service-id, service-plan-id, region et service-endpoints sont tous obligatoires. Vous fournissez également l'option -p avec les paramètres
de version et d'ID de sauvegarde dans un objet JSON. Le nouveau déploiement est automatiquement dimensionné avec la même taille de disque et de mémoire que le déploiement source au moment de la sauvegarde.
Cette commande se présente comme suit:
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"
Mise à niveau via l'API
Effectuez les étapes nécessaires pour utiliser le API du contrôleur de ressources avant de l'utiliser pour
effectuer une mise à niveau à partir d'une sauvegarde. Ensuite, envoyez une requête « POST » à l'API. Les paramètres name, target, resource_group et resource_plan_id sont tous
obligatoires. Vous fournissez également la version et l'ID de sauvegarde. Le nouveau déploiement possède la même allocation de mémoire et de disque que le déploiement source au moment de la sauvegarde.
Cette commande se présente comme suit:
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
}'
Mise à niveau forcée
Après la date de fin de vie, tous les déploiements Databases for PostgreSQL actifs sur la version obsolète seront automatiquement mis à niveau vers la prochaine version prise en charge. Par exemple, PostgreSQL la version 13 (obsolète) passe à la version 14.
Procédez à la mise à niveau avant la date de fin de vie pour éviter les risques suivants :
- Aucun accord de niveau de service n'est prévu pour ce type de mise à niveau forcée.
- Vous risquez de perdre certaines données.
- Votre application pourrait subir une interruption de service prolongée.
- Votre application risque de ne plus fonctionner si elle n'est pas compatible avec la nouvelle version.
- Vous ne pouvez pas contrôler le moment où cette mise à niveau aura lieu pour votre déploiement.
- Il n'y a pas de processus de retour en arrière pour cette mise à niveau forcée.
Pour connaître les dates de fin de vie, reportez-vous à la page relative à la politique en matière de versions.
Problèmes liés aux privilèges des rôles lors des mises à niveau de version
À partir d' PostgreSQL e 16, l'application des privilèges liés aux rôles est plus stricte. Il s'agit d'une modification architecturale en amont d' PostgreSQL, et non d'un changement de comportement spécifique à {{site.data.keyword.ibm}}. Dans
les versions précédentes, les rôles dotés de l'attribut « CREATEROLE » pouvaient gérer d'autres rôles de manière plus étendue. Dans l' PostgreSQL, version 16 et ultérieures, un rôle doit disposer du droit « ADMIN OPTION » sur un autre rôle pour pouvoir l'attribuer ou le retirer. Pour plus d'informations, consultez les notes de mise à jour de la version 16 d'
PostgreSQL, la section « Attributs de rôle » et la page GRANT consacrée aux rôles.
Si vous effectuez une mise à niveau d' PostgreSQL e 15 ou antérieure vers PostgreSQL e 16 ou ultérieure, vérifiez les autorisations associées à vos rôles avant l'IPU. Si la gestion des rôles doit se poursuivre après la mise à niveau, assurez-vous
que les rôles requis ont été attribués à l'aide de l' WITH ADMIN OPTION e avant de lancer la mise à niveau.
Si vous rencontrez des erreurs liées aux droits d'accès après la mise à jour, par exemple :
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"
Utilisez la fonction d'aide intégrée grant_admin_option_to_roles pour rétablir l' ADMIN OPTION s relatives à des rôles spécifiques :
- Ceci s'applique uniquement aux bases de données mises à niveau depuis PostgreSQL v15 et les versions antérieures vers PostgreSQL 16 et les versions ultérieures (si vous rencontrez l'erreur décrite précédemment).
- Accepte une liste arbitraire de rôles auxquels appliquer la correction.
- Cette opération ne peut être effectuée que par l'utilisateur «
admin». - Peut être exécuté plusieurs fois en toute sécurité (idempotent).
Exemple de syntaxe :
SELECT grant_admin_option_to_roles('role1', 'role2', 'role3');
Cette fonction attribue les rôles spécifiés (role1, role2, role3) à l'utilisateur admin disposant de l'autorisation ADMIN OPTION, ce qui permet à l'utilisateur admin de gérer (attribuer, révoquer, modifier ou supprimer) ces rôles dans les instances mises à niveau.