Cette page explique comment effectuer une mise à niveau de version majeure de la base de données sur place d'un cluster AlloyDB pour PostgreSQL. Pour en savoir plus sur les cas d'utilisation, le workflow et les sauvegardes automatiques de la mise à niveau de la version majeure de la base de données sur place, consultez la page Présentation de la mise à niveau de la version majeure de la base de données sur place.
Planifier une mise à niveau de version majeure de la base de données
Pour planifier une mise à niveau de version majeure de la base de données, procédez comme suit:
Recherchez la version majeure actuelle de votre base de données.
Console
Dans la console Google Cloud, accédez à la page Clusters.
Sélectionnez un cluster dans la liste. La page Overview (Présentation) s'affiche.
Recherchez la version majeure de la base de données dans le champ Version.
gcloud
Pour en savoir plus sur l'installation et le démarrage avec la gcloud CLI, consultez la page Installer la gcloud CLI. Pour en savoir plus sur le démarrage de Cloud Shell, consultez la page Utiliser Cloud Shell.
Exécutez la commande suivante pour obtenir les détails du cluster, y compris la version majeure actuelle:
gcloud alloydb clusters describe CLUSTER_ID --region=REGION
Effectuez les remplacements suivants :
- CLUSTER_ID: ID du cluster
- REGION: région ou emplacement du cluster
REST v1beta
Exécutez la requête suivante pour obtenir les détails du cluster, y compris la version majeure actuelle:
GET https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID
Effectuez les remplacements suivants :
- CLUSTER_ID: ID du cluster
- PROJECT_ID : ID du projet
- REGION: région ou emplacement du cluster
Pour envoyer votre requête, utilisez l'une des options suivantes:
curl (Linux, macOS ou Cloud Shell)
Exécutez la commande suivante :
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID"
PowerShell (Windows)
Exécutez la commande suivante :
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID| Select-Object -Expand Content
Identifiez une version majeure de base de données cible dans le tableau suivant. Pour obtenir la liste complète des versions de bases de données compatibles avec AlloyDB, consultez Versions de bases de données et règles de version.
Version majeure de la source Version(s) majeure(s) cible(s) compatible(s) POSTGRES_14 POSTGRES_15 Examinez les fonctionnalités proposées dans chaque version majeure de la base de données.
Identifiez les incompatibilités que vous devez résoudre. Les nouvelles versions majeures peuvent présenter des modifications incompatibles qui peuvent vous obliger à modifier le code de l'application, le schéma ou les paramètres de la base de données.
Avant de commencer la mise à niveau de la version majeure sur votre cluster de production, nous vous recommandons de cloner votre cluster et de tester la mise à niveau de la version majeure sur le cluster cloné.
En plus de vérifier que la mise à niveau a abouti, exécutez des tests pour vous assurer que l'application se comporte comme prévu sur le cluster mis à niveau.
Préparer le cluster à une mise à niveau de version majeure
Pour effectuer les étapes qui nécessitent de vous connecter à la base de données, utilisez AlloyDB Studio, psql ou d'autres méthodes de connexion.
- Supprimez ou promouvez vos instances dupliquées interrégionales. Les mises à niveau de version majeures in situ de la base de données ne sont pas compatibles avec les réplications interrégionales. Pour en savoir plus, consultez la section Réplication interrégionale.
Assurez-vous que les paramètres d'encodage et de paramètres régionaux des bases de données
postgres
ettemplate1
sont identiques à ceux de la base de donnéestemplate0
.Exécutez la commande suivante :
SELECT pg_encoding_to_char(encoding), datcollate, datctype FROM pg_database WHERE datname IN ('postgres', 'template1', 'template0');
Si les valeurs des bases de données
postgres
outemplate1
sont différentes de celles de la base de donnéestemplate0
, la mise à niveau échoue. Pour résoudre ce problème, procédez comme suit :Videz l'autre base de données (pas template0). Pour en savoir plus, consultez la section Exporter des données.
Supprimez la base de données en exécutant
DROP DATABASE <database_name>;
Recréez la base de données avec les mêmes paramètres d'encodage et de paramètres régionaux que la base de données
template0
en exécutant la commande suivante:CREATE DATABASE <database_name> ENCODING = '<template0_encoding>' LC_COLLATE = '<template0_datcollate>' LC_CTYPE = '<template0_datctype>';
Rechargez vos données. Pour en savoir plus, consultez la section Importer des données.
Si votre cluster AlloyDB est une source de réplication logique, désactivez les abonnements en aval et supprimez tous les emplacements de réplication logique. Vous pouvez réactiver les abonnements et recréer les emplacements de réplication logiques après la mise à niveau. Si l'instance AlloyDB n'est qu'une cible de réplication logique, ces étapes ne sont pas obligatoires. Pour désactiver les abonnements et supprimer des emplacements de réplication logique, procédez comme suit:
Désactivez chaque abonnement en aval sur l'abonné ou la cible de réplication en aval. Ne désactivez pas les abonnements en aval sur l'instance AlloyDB en cours de mise à niveau:
Si vous utilisez
pglogical
, exécutez la commande suivante:SELECT * FROM pglogical.alter_subscription_disable(subscription_name, immediate);
Remplacez
subscription_name
dans la requête par le nom de l'abonnement existant. Si l'abonnement doit être désactivé immédiatement, définissez la valeur du paramètreimmediate
surtrue
. Par défaut, la valeur estfalse
et l'abonnement n'est désactivé qu'à la fin de la transaction en cours.Exemple :
postgres=> SELECT * FROM pglogical.alter_subscription_disable('test_sub',true); alter_subscription_disable ---------------------------- t (1 row)
Si vous utilisez une extension autre que
pglogical
, exécutez la commande suivante:ALTER SUBSCRIPTION <subscription_name> DISABLE;
Supprimez tous les emplacements de réplication logiques sur l'instance principale AlloyDB en exécutant la commande suivante:
SELECT pg_drop_replication_slot(slot_name) FROM pg_replication_slots WHERE slot_type = 'logical';
Gérez vos extensions PostgreSQL. Pour en savoir plus, consultez la section Configurer des extensions de base de données.
Les vérifications préalables à la mise à niveau détectent les incompatibilités des extensions et signalent ces cas de non-respect dans les journaux, avec des suggestions d'actions. Pour en savoir plus, consultez la section Afficher les échecs de la vérification préalable à la mise à niveau.
Vous devrez peut-être procéder comme suit:
- Supprimez toutes les extensions qui ne sont plus compatibles dans la version cible.
Mettez à niveau PostGIS et les extensions associées (
address_standardizer
,address_standardizer_data_us
,postgis_raster
,postgis_sfcgal
,postgis_tiger_geocoder
etpostgis_topology
) vers une version compatible de la version PostgreSQL cible. Pour en savoir plus, consultez la section Extensions PostGIS. Le tableau suivant répertorie les versions minimales de l'extension PostGIS compatibles pour chaque version majeure de PostgreSQL:Version PostgreSQL Version minimale compatible de PostGIS PG14 3.1 PG15 3.2 Par exemple, si votre version de PostGIS est 3.1.x et que vous souhaitez passer de POSTGRES 14 à POSTGRES 15, utilisez la commande suivante pour mettre à niveau l'extension PostGIS:
ALTER EXTENSION postgis UPDATE TO '3.2.3'; SELECT PostGIS_Version();
Vérifiez que les connexions sont autorisées pour chaque base de données, à l'exception de
template0
, en exécutant la requête suivante et en vérifiant le champdatallowconn
pour chaque base de données:SELECT datname,datallowconn from pg_database;
Une valeur
t
dans le champdatallowconn
signifie que la connexion est autorisée. Une valeurf
indique qu'une connexion ne peut pas être établie. La base de donnéestemplate0
ne doit pas autoriser les connexions.Pour autoriser les connexions à une base de données, exécutez la commande suivante:
ALTER DATABASE <database> WITH ALLOW_CONNECTIONS = true;
Mettre à niveau la version majeure du cluster sur place
La mise à niveau de la version majeure de la base de données sur place peut prendre entre 40 minutes et 48 heures, en fonction de facteurs tels que la taille de la base de données, la taille du schéma et le nombre d'instances de pool de lecture dans le cluster. Le temps d'arrêt de l'instance principale est généralement compris entre 20 minutes et une heure, et dépend principalement du schéma de votre base de données.
Lorsque vous placez une demande de mise à niveau de version majeure sur place, AlloyDB commence par effectuer des vérifications préalables à la mise à niveau. Si AlloyDB détermine que votre cluster n'est pas prêt pour une mise à niveau de version majeure, la requête échoue. Pour en savoir plus, consultez la section Résoudre les problèmes liés à la mise à niveau d'une version majeure.
Pour mettre à niveau la version majeure de la base de données sur place, procédez comme suit:
Console
Dans la console Google Cloud, accédez à la page Clusters.
Sélectionnez un cluster dans la liste. La page Overview (Présentation) s'affiche.
Cliquez sur Mettre à niveau pour lancer le processus de mise à niveau de la version majeure de la base de données.
À l'étape Choisir une version de base de données, sélectionnez l'une des versions majeures de base de données disponibles comme version majeure cible.
Cliquez sur Continuer.
À l'étape Mettre à niveau le cluster, dans le champ ID du cluster, saisissez le nom du cluster.
Cliquez sur Démarrer la mise à niveau. Vous êtes redirigé vers l'étape État de la mise à niveau, où vous pouvez vérifier l'état de la mise à niveau. Pour en savoir plus, consultez la page Surveiller la mise à niveau de la version majeure de la base de données.
gcloud
Démarrez la mise à niveau de version majeure sur place en exécutant la commande suivante:
gcloud alloydb beta clusters upgrade CLUSTER_ID --region=REGION --version=DATABASE_VERSION --async
Voici un exemple de commande:
gcloud alloydb beta clusters upgrade my-cluster --region=us-central1 --version=POSTGRES_15 --async
REST v1beta
Démarrez la mise à niveau de version majeure sur place en exécutant la commande suivante:
PATCH https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID:upgrade
Corps JSON de la requête :
{
"version": "DATABASE_VERSION"
}
Remplacez-le par l'énumération de la version majeure de la base de données cible, qui doit être postérieure à la version actuelle.
Exemple de corps de requête JSON:
{
"version": "POSTGRES_15"
}
Surveiller la mise à niveau de la version majeure du cluster
Une fois la mise à niveau majeure de la base de données en place lancée, vous pouvez surveiller son état à l'aide de la console Google Cloud, de gcloud CLI ou de l'API REST.
Console
Pour vérifier l'état de la mise à niveau dans la console Google Cloud, procédez comme suit:
Dans la console Google Cloud, accédez à la page Clusters.
Sélectionnez le cluster en cours de mise à niveau. La page Overview (Présentation) s'affiche.
Ouvrez la page Vue d'ensemble.
Cliquez sur État de la mise à niveau. La page Upgrade Status (État de la mise à niveau) s'affiche, où vous pouvez vérifier l'état de la mise à niveau.
gcloud
Pour vérifier l'état de la mise à niveau dans la gcloud CLI:
Obtenez l'ID de l'opération de mise à niveau en exécutant la commande suivante. Avant d'exécuter la commande, remplacez la variable
CLUSTER_ID
par le nom du cluster:gcloud alloydb operations list --cluster=CLUSTER_ID --region=REGION_ID --filter=metadata.verb:upgrade
Appel de la CLI gcloud utilisé pour déclencher une mise à niveau de version majeure.
alloydb beta clusters upgrade
, renvoie l'ID de l'opération en tant que réponse synchrone. Vous pouvez également utiliser la commandegcloud alloydb operations list
avec l'option--cluster
.Voici un exemple de commande:
gcloud alloydb operations list --cluster=my-cluster --region=us-central1 --filter=metadata.verb:upgrade
Surveillez l'état de la mise à niveau en exécutant la commande suivante:
gcloud alloydb operations describe OPERATION_ID --region=REGION https://cloud.google.com/sdk/gcloud/reference/alloydb/operations/describe
REST v1beta
Pour vérifier l'état de la mise à niveau dans l'API REST, procédez comme suit:
Obtenez l'ID de l'opération de mise à niveau.
Utilisez la requête
GET
suivante avec la méthodeoperations.list
pour répertorier toutes les opérations de mise à niveau et trouver celle qui correspond au cluster cible:GET https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/operations/filter=metadata.verb:upgrade
L'appel d'API REST renvoie l'ID de l'opération en tant que réponse synchrone.
Surveillez l'état de la mise à niveau.
Exécutez une requête GET avec la méthode
operations.get
:GET https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Effectuez les remplacements suivants :
- PROJECT_ID : ID du projet
- REGION: région ou emplacement du cluster
- OPERATION_ID: ID de l'opération de mise à niveau, récupéré à l'étape précédente.
Voici un exemple de réponse lorsque l'opération est en cours:
{ "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.alloydb.v1.OperationMetadata", "createTime": "2024-09-16T23:17:39.727319438Z", "target": "projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID", "verb": "upgrade", "requestedCancellation": false, "apiVersion": "v1", "upgradeClusterStatus": { "state": "IN_PROGRESS", "cancellable": true, "stages": [ { "stage": "ALLOYDB_PRECHECK", "state": "IN_PROGRESS" }, { "stage": "PG_UPGRADE_CHECK", "state": "IN_PROGRESS" }, { "stage": "PREPARE_FOR_UPGRADE", "state": "NOT_STARTED" }, { "stage": "PRIMARY_INSTANCE_UPGRADE", "state": "NOT_STARTED" }, { "stage": "CLEANUP", "state": "NOT_STARTED" } ] } }, "done":false }
Voici un exemple de réponse lorsque l'opération est terminée:
{ "operations": [ { "metadata": { "@type": "type.googleapis.com/google.cloud.alloydb.v1betaalpha.OperationMetadata", "createTime": "2024-09-16T21:52:17.303861317Z", "endTime": "2024-09-16T22:29:13.947527949Z", "target": "projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID", "verb": "upgrade", "requestedCancellation": false, "apiVersion": "v1beta", "upgradeClusterStatus": { "state": "SUCCESS", "stages": [ { "stage": "ALLOYDB_PRECHECK", "state": "SUCCESS" }, { "stage": "PG_UPGRADE_CHECK", "state": "SUCCESS" }, { "stage": "PREPARE_FOR_UPGRADE", "state": "SUCCESS" }, { "stage": "PRIMARY_INSTANCE_UPGRADE", "state": "SUCCESS" }, { "stage": "CLEANUP", "state": SUCCESS" } ] } }, "response": { … }, "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID", "done": true } ] }
Pour en savoir plus sur la structure
response
, consultez la section Réponse à l'opération de mise à niveau.
Réponse à l'opération de mise à niveau
La réponse de l'opération UpgradeCluster
inclut les éléments suivants:
status
: état de l'opération de mise à niveau globale. Les valeurs possibles sontSUCCESS
,FAILED
etPARTIAL_SUCCESS.
.message
: fournit un bref résumé du résultat de l'opération de mise à niveau.clusterUpgradeDetails
: détails de la mise à niveau pour les clusters mis à niveau. Ce champ est un tableau. AlloyDB n'autorise qu'une seule mise à niveau de cluster. Il ne doit donc contenir qu'une seule entrée.name
: nom complet du cluster.upgradeStatus
: état de la mise à niveau du cluster. Les valeurs possibles sontSUCCESS
,FAILED
etPARTIAL_SUCCESS
.PARTIAL_SUCCESS
signifie qu'une ou plusieurs instances de pool de lecture ne peuvent pas être mises à niveau.clusterType
: type de cluster. AlloyDB ne vous permet de mettre à niveau qu'un seul clusterPRIMARY
. Ce type doit toujours êtrePRIMARY
.databaseVersion
: version actuelle de la base de données du cluster.stageInfo
: informations sur les principales étapes de la mise à niveau.status
:SUCCESS
ouFAILED
logs_url
: lien vers les journaux générés par l'étape. Vide pour les étapes qui ne génèrent pas de journaux.
instanceUpgradeDetails
: informations de mise à niveau pour toutes les instances du cluster.name
: nom complet de l'instanceupgradeStatus
:SUCCESS
ouFAILED
instanceType
:PRIMARY
ouREAD_POOL
Voici un exemple de réponse à une opération de mise à niveau:
"response": { "@type": "type.googleapis.com/google.cloud.alloydb.v1alpha.UpgradeClusterResponse", "status": "SUCCESS", "message": "Cluster upgraded successfully.", "clusterUpgradeDetails": [ { "name": "projects/1234/locations/us-central1/clusters/abc", "upgradeStatus": "SUCCESS", "clusterType": "PRIMARY", "databaseVersion": "POSTGRES_15", "stageInfo": [ { "stage": "ALLOYDB_PRECHECK", "status": "SUCCESS", "logsUrl": "https://console.cloud.google.com/logs/query..." }, { "stage": "PG_UPGRADE_CHECK", "status": "SUCCESS", "logsUrl": "https://console.cloud.google.com/logs/query..." }, { "stage": "PRIMARY_INSTANCE_UPGRADE", "status": "SUCCESS", "logsUrl": "https://console.cloud.google.com/logs/query..." }, { "stage": "READ_POOL_INSTANCES_UPGRADE", "status": "SUCCESS", } ], "instanceUpgradeDetails": [ { "name": "projects/1234/locations/us-central1/clusters/abc/instances/primary", "upgradeStatus": "SUCCESS", "instanceType": "PRIMARY", }, { "name": "projects/1234/locations/us-central1/clusters/abc/instances/read1", "upgradeStatus": "SUCCESS", "instanceType": "READ_POOL", }, { "name": "projects/1234/locations/us-central1/clusters/abc/instances/read2", "upgradeStatus": "SUCCESS", "instanceType": "READ_POOL", } ] } ] }
Afficher les journaux de mise à niveau
AlloyDB publie tous les journaux de mise à niveau sous le nom de journal postgres_upgrade
.
Pour afficher les journaux liés à la mise à niveau, procédez comme suit:
-
Dans la console Google Cloud, accédez à la page Explorateur de journaux.
Accéder à l'explorateur de journaux
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.
Sélectionnez
alloydb.googleapis.com/postgres_upgrade
comme nom du journal. Cela se traduit par la requête"logName="projects/PROJECT_ID/logs/alloydb.googleapis.com%2Fpostgres_upgrade"
.Utilisez les libellés suivants pour filtrer les journaux:
Label Description LOG_TYPE
Étape de mise à niveau ayant généré le journal. Les valeurs possibles sont ALLOYDB_PRECHECK
,PG_UPGRADE_CHECK
etPG_UPGRADE
.OPERATION_NAME
Nom complet de l'opération de mise à niveau. FILE_NAME
Renseigné uniquement pour les journaux pg_upgrade_check
etpg_upgrade
, et correspond aux fichiers journaux générés par l'utilitairepg_upgrade
.
Voici un exemple de requête qui renvoie les journaux de prévérification de la mise à niveau d'AlloyDB pour une opération donnée:
logName="projects/project1234/logs/alloydb.googleapis.com%2Fpostgres_upgrade"
labels.LOG_TYPE="ALLOYDB_PRECHECK"
labels.OPERATION_NAME="projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID"
Pour en savoir plus sur les vérifications de mise à niveau, consultez la page Présentation de la mise à niveau de la version majeure de la base de données sur place.
Afficher les journaux de mise à niveau d'un cluster
Pour afficher les journaux de mise à niveau d'un cluster lorsque vous ne connaissez pas l'ID de l'opération et que l'opération a expiré, procédez comme suit:
Interrogez les journaux de vérification préalable AlloyDB de votre cluster.
logName="projects/PROJECT_ID/logs/alloydb.googleapis.com%2Fpostgres_upgrade" labels.LOG_TYPE="ALLOYDB_PRECHECK" resource.labels.cluster_id=CLUSTER_ID
Recherchez le
Operation_ID
à partir du libellé de journalOPERATION_NAME
.Dans l'exemple suivant,
Operation_ID
deOPERATION_NAME
estoperation-1728225968201-623cff6ed1e02-e34b7191-3cd92013
.labels.OPERATION_NAME="projects/myproject/locations/us-central1/operations/operation-1728225968201-623cff6ed1e02-e34b7191-3cd92013"
Interrogez tous les journaux
postgres_upgrade
pour une opération spécifique.logName="projects/production-1/logs/alloydb.googleapis.com%2Fpostgres_upgrade" labels.OPERATION_NAME="operation-1728225968201-623cff6ed1e02-e34b7191-3cd92013"
Annuler la mise à niveau de version majeure sur place de la base de données
Vous pouvez annuler une opération de mise à niveau de version majeure en cours à partir de la console Google Cloud, de la gcloud CLI ou de l'API REST.
Trouver l'ID de l'opération
Pour annuler l'opération de mise à niveau de la version majeure à l'aide de la gcloud CLI ou de l'API REST, vous avez besoin de l'ID de l'opération. Vous devez spécifier cet ID dans la commande gcloud CLI ou de l'API REST afin qu'AlloyDB sache quelle opération annuler.
Vous ne pouvez pas annuler la mise à niveau une fois qu'elle a atteint un certain stade.
Lorsque vous démarrez la mise à niveau de version majeure sur place, l'ID d'opération est renvoyé dans le champ name
de la réponse. Consultez l'exemple de réponse.
Vous pouvez également trouver l'ID d'opération en effectuant un appel operations.list
sur le cluster AlloyDB.
Annuler la mise à niveau
Pour annuler une mise à niveau de version majeure en place, procédez comme suit:
Console
Dans la console Google Cloud, accédez à la page Clusters.
Sélectionnez un cluster dans la liste. La page Overview (Présentation) s'affiche.
Cliquez sur État de la mise à niveau.
Cliquez sur Annuler. Si la mise à niveau ne peut pas être annulée, ce bouton est grisé.
gcloud
Utilisez la commande gcloud alloydb operations cancel
pour annuler l'opération:
gcloud alloydb operations cancel OPERATION_ID
Remplacez la variable OPERATION_ID par l'ID de l'opération.
Si cancellable
dans UpgradeClusterStatus
est false
dans la sortie de la commande gcloud alloydb operations cancel
, AlloyDB ignore la demande d'annulation et poursuit la mise à niveau. Dans ce cas, l'API ne génère pas d'erreur et renvoie une réponse vide. Pour en savoir plus sur l'état de la mise à niveau, consultez la section Surveiller la mise à niveau de la version majeure du cluster.
REST v1beta
Exécutez la commande suivante :
POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/operations/OPERATION_ID:cancel
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants:
- PROJECT_ID : ID du projet.
- OPERATION_ID: ID de l'opération d'importation ou d'exportation.
Si cancellable
dans UpgradeClusterStatus
est false
, vous ne pouvez pas annuler la mise à niveau.
Pour envoyer votre demande, utilisez l'une des options suivantes:
curl (Linux, macOS ou Cloud Shell)
Exécutez la commande suivante :
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID/cancel"
PowerShell (Windows)
Exécutez la commande suivante :
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/operations/OPERATION_ID/cancel"| Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Response (Réponse)
Cet appel d'API REST ne renvoie aucune réponse.
Terminer la mise à niveau de version majeure sur place
Pour effectuer la mise à niveau vers une version majeure, connectez-vous à une instance AlloyDB à l'aide d'AlloyDB Studio, de psql ou d'autres méthodes de connexion.
Si vous utilisez un système autre qu'AlloyDB, consultez la documentation de votre système pour obtenir des instructions de connexion.
Une fois la mise à niveau de votre cluster terminée, procédez comme suit:
Si vous avez précédemment désactivé
pglogical
, réactivez la réplicationpglogical
. L'activation de la réplicationpglogical
crée automatiquement l'emplacement de réplication requis.Supprimez l'abonnement
pglogical
sur l'instance dupliquée de destination à l'aide de la commande suivante:select pglogical.drop_subscription(subscription_name name);
Remplacez
name
par le nom de l'abonnement existant. Exemple :postgres=> select pglogical.drop_subscription(subscription_name:= 'test_sub'); -[ RECORD 1 ]-----+-- drop_subscription |1
Recréez l'abonnement
pglogical
sur la destination ou la réplique en fournissant les informations de connexion suivantes à l'instance principale AlloyDB:SELECT pglogical.create_subscription( subscription_name :='test_sub',<br> provider_dsn := 'host=primary-ip port=5432 dbname=postgres user=replication_user password=replicapassword' );
Vérifiez l'état de l'abonnement à l'aide de la commande suivante :
SELECT * FROM pglogical.show_subscription_status('test_sub');
Testez la réplication en effectuant des transactions d'écriture et en vérifiant que les modifications sont visibles sur la destination.
Actualisez les statistiques de la base de données.
Une fois la mise à niveau terminée, exécutez
ANALYZE
sur votre cluster principal pour mettre à jour les statistiques système. Les statistiques précises garantissent que le planificateur de requêtes PostgreSQL traite les requêtes de manière optimale. Des statistiques manquantes peuvent entraîner des plans de requête inexacts, ce qui peut dégrader les performances et entraîner une utilisation excessive de mémoire.Exécutez des tests de validation pour vous assurer que le système mis à niveau fonctionne comme prévu.
Vérifiez que la version majeure de la base de données mise à niveau sur site apparaît sur la page Présentation du cluster dans la console Google Cloud.
Restaurer la version majeure précédente
Si votre système de base de données mis à niveau ne fonctionne pas comme prévu, vous devrez peut-être revenir à l'état d'avant la mise à niveau. Pour ce faire, effectuez une restauration à partir d'une sauvegarde préalable à la mise à niveau (celle créée automatiquement par AlloyDB pendant le processus de mise à niveau ou une sauvegarde préalable à la mise à niveau existante) afin de créer un nouveau cluster avec l'état d'avant la mise à niveau.
Pour restaurer un état antérieur à la mise à niveau, procédez comme suit:
Identifiez une sauvegarde préalable à la mise à niveau à partir de laquelle effectuer la restauration. Au cours du processus de mise à niveau, AlloyDB crée automatiquement une sauvegarde avant la mise à niveau avec le préfixe
pre-upgrade-bkp
. Pour en savoir plus, consultez la section Afficher la liste des sauvegardes.Lancez une restauration à partir de la sauvegarde effectuée avant la mise à niveau, ce qui crée un nouveau cluster avec la version PostgreSQL précédente. Pour en savoir plus, consultez la section Restaurer un cluster à partir d'une sauvegarde stockée.
Connectez votre application. Mettez à jour votre application avec les détails du cluster restauré et de ses instances dupliquées avec accès en lecture. Vous pouvez reprendre la diffusion du trafic sur le cluster restauré.
Vous pouvez également effectuer une récupération à un moment précis avant la mise à niveau. Pour en savoir plus, consultez la section Utiliser la récupération à un moment précis (PITR).
Limites
Les limites suivantes affectent les mises à niveau de versions majeures sur place d'AlloyDB:
- Vous ne pouvez pas effectuer de mise à niveau de version majeure sur place sur un cluster secondaire.
- La mise à niveau d'instances comportant plus de 1 000 bases de données d'une version à une autre peut prendre beaucoup de temps et expirer.
- AlloyDB n'est pas compatible avec la mise à niveau des clusters qui utilisent
pg_largeobject_metadata
. Siselect count(*) from pg_largeobject_metadata;
est différent de zéro, la mise à niveau échoue. - L'opération de mise à niveau de la version majeure sur place peut se terminer avant la sauvegarde avant la mise à niveau ou les sauvegardes après la mise à niveau, en particulier lorsque vous disposez d'une grande base de données avec moins d'objets.
- Un court délai peut être nécessaire entre le moment où les écritures reprennent sur l'instance mise à niveau et la création de la sauvegarde post-mise à niveau. Cela signifie que le contenu de la sauvegarde post-mise à niveau peut ne pas correspondre au contenu de la base de données avant la mise à niveau de la version majeure.
- Des sauvegardes préalables à la mise à niveau peuvent toujours être créées lorsqu'une mise à niveau majeure sur place échoue.
- Étant donné que les sauvegardes de mise à niveau automatique sont continues, vous ne pouvez pas les supprimer tant qu'elles n'ont pas atteint la durée de conservation maximale des sauvegardes et de la récupération continues. Lorsque la durée de conservation maximale est atteinte, les sauvegardes sont collectées. Vous pouvez également utiliser la gcloud CLI pour supprimer manuellement les sauvegardes. Pour en savoir plus, consultez la section Restrictions concernant la suppression de sauvegardes.
Étape suivante
- En savoir plus sur les mises à niveau de version majeure de la base de données sur place
- Résoudre les problèmes liés à la mise à niveau de version majeure sur place
- Découvrez les erreurs de mise à niveau de version majeure de la base de données sur place.