Mise à niveau vers une nouvelle version majeure
Une fois que la fin de vie d'une version principale d'une base de données est atteinte, il est recommandé d'effectuer une mise à niveau vers une version principale en cours.
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-show
ou 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.
Exigences pour la mise à niveau vers la nouvelle version majeure " PostgreSQL à partir de " PostgreSQL " v12
Si pg_repack
est installé, vous devez le supprimer avant d'effectuer la mise à niveau. Cette opération peut être effectuée à l'aide d'une commande telle que:
DROP EXTENSION pg_repack;
Après la mise à niveau, réinstallez pg_repack
. Cette opération peut être effectuée à l'aide de la commande suivante :
CREATE EXTENSION pg_repack;
Si vous utilisez PostGIS,, vous devez d'abord mettre à jour PostGIS avant de mettre à jour PostgresSQL. Pour ce faire, il suffit d'exécuter la commande suivante sur une base de données où PostGIS est installé.
SELECT postgis_extensions_upgrade();
Utilisez la requête suivante pour valider la mise à jour de l'extension Postgis.
SELECT postgis_full_version();
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 un réplica en lecture seule avec la même version de base
de données que votre déploiement et attendez qu'il réplique toutes vos données. Lorsque votre déploiement et son réplica sont synchronisés, promouvez et mettez à niveau le réplica en lecture seule vers un déploiement complet et autonome exécutant
la nouvelle version de la base de données. Pour effectuer l'étape de mise à niveau et de promotion, utilisez une requête POST vers le point de terminaison /deployments/{id}/remotes/promotion
en indiquant dans le corps de la requête la version vers laquelle vous souhaitez vous mettre à 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 de versions majeures, il convient de procéder à un essai à blanc. 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 permet de s'assurer que la version que vous utilisez actuellement avec ses extensions peut être mise à jour avec succès 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 est la version de la base de données, qui est automatiquement complétée par les versions disponibles pour la mise à niveau. Sélectionnez une version et cliquez sur Créer pour lancer le processus d'approvisionnement et de restauration.
Mise à niveau via l'interface de ligne de commande
Pour mettre à niveau et restaurer à partir d'une sauvegarde via l'interface CLI de 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>
Les paramètres service-name
, service-id
, service-plan-id
et region
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
}'
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. Envoyez ensuite à l'API une demande POST
. 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 actifs de Databases for PostgreSQL sur la version obsolète seront mis à niveau de force vers la prochaine version prise en charge. Par exemple, PostgreSQL version 12 (obsolète) passe à la version 13.
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.
- Il est possible que des données soient perdues.
- Votre application peut subir un temps d'arrêt prolongé.
- Votre application peut cesser de fonctionner si elle est incompatible 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.