Résoudre les problèmes liés à la mise à niveau de version majeure sur place

Ce document explique comment résoudre les problèmes que vous pouvez rencontrer lors de la mise à niveau de votre base de données AlloyDB pour PostgreSQL vers une version majeure sur place. Pour en savoir plus, consultez la page Mettre à niveau la version majeure d'une base de données sur place. Pour en savoir plus sur les erreurs de mise à niveau de la version majeure sur place, consultez la section Erreurs de mise à niveau de la version majeure de la base de données sur place.

Pour analyser les échecs de mise à niveau, identifiez l'étape de mise à niveau ayant échoué dans la réponse et utilisez les informations de ce document pour identifier les solutions possibles.

AlloyDB valide votre requête de manière synchrone et renvoie un message d'erreur si l'une des conditions suivantes est remplie:

  • La requête n'est pas valide. Par exemple, si la version majeure cible fournie n'est pas prise en charge ou est inférieure ou égale à la version majeure actuelle.
  • Les ressources du cluster sont dans un état dans lequel la mise à niveau de la version majeure ne peut pas être déclenchée. Par exemple, si le cluster ou l'une des instances associées ne sont pas dans un état READY.

Si la demande est valide, la migration peut échouer pour les raisons suivantes:

  • Les vérifications préalables à la mise à niveau effectuées à différentes étapes peuvent échouer, ce qui indique que des cas de non-respect sont détectés. Vous devez résoudre ces cas de non-respect avant de relancer la mise à niveau.
  • En cas d'erreurs internes, vous devez réessayer la mise à niveau. Si les nouvelles tentatives échouent, contactez l'assistance Google Cloud.

Échecs de la vérification préalable à la mise à niveau d'AlloyDB

Les échecs de la vérification préalable à la mise à niveau peuvent se produire à l'une des étapes suivantes:

  • Vérifications préalables à la mise à niveau d'AlloyDB (ALLOYDB_PRECHECK)
  • Vérifications pg_upgrade (PG_UPGRADE_CHECK)
  • Mises à niveau du cluster principal (PRIMARY_INSTANCE_UPGRADE)

Les échecs de la vérification préalable à la mise à niveau sont des problèmes détectés par AlloyDB lors de la phase de validation préalable à la mise à niveau, ce qui peut entraîner l'échec de la mise à niveau majeure sur place. Par exemple, AlloyDB recherche les incompatibilités d'extension entre la version majeure actuelle et la version majeure cible.

Les messages d'erreur sont renseignés dans logs_url dans la réponse de l'opération de mise à niveau. Pour les consulter, accédez à l'explorateur de journaux de la console Google Cloud. Pour en savoir plus, consultez la section Afficher les journaux de mise à niveau.

Pour afficher les échecs et les messages d'erreur correspondants susceptibles de s'afficher dans les journaux, consultez la section Erreurs de mise à niveau de la version majeure de la base de données sur place.

Voici un exemple du résumé généré dans les journaux par les vérifications préalables à la mise à niveau d'AlloyDB:

Total number of databases checked for custom checks: 
Total number of databases containing pg_largeobject: 
Total number of databases containing extensions compatibility violation: 

Échecs de vérification de pg_upgrade

PG_UPGRADE_CHECK recherche les cas de non-respect à l'aide de l'utilitaire pg_upgrade standard. Cette vérification de mise à niveau inclut les incohérences de données résultant de divers facteurs, y compris les différences au niveau des structures de données spécifiques à la version, des modifications de l'encodage et du classement, des modifications des types de données et des ajustements du catalogue système.

Plusieurs fichiers (comme tables_with_oids.txt et tables_using_reg.txt, qui sont générés pendant pg_upgrade) sont exportés vers postgres_upgrade. Vous pouvez filtrer ces fichiers à l'aide du libellé labels.FILE_NAME.

Les noms de fichiers susceptibles de contenir des erreurs sont les suivants:

Nom de fichier Description

tables_with_oids.txt

Ce fichier contient des tables répertoriées avec des identifiants d'objet (OID). Supprimez les tables ou modifiez-les pour qu'elles n'utilisent pas d'OID.

tables_using_composite.txt

Ce fichier contient des tables répertoriées à l'aide de types composites définis par le système. Supprimez les tables ou modifiez-les pour qu'elles n'utilisent pas ces types composites.

tables_using_unknown.txt

Ce fichier contient des tables répertoriées à l'aide du type de données UNKNOWN. Supprimez les tables ou modifiez-les pour qu'elles n'utilisent pas ce type de données.

tables_using_sql_identifier.txt

Ce fichier contient des tables répertoriées à l'aide du type de données SQL_IDENTIFIER. Supprimez les tables ou modifiez-les pour qu'elles n'utilisent pas ce type de données.

tables_using_reg.txt

Ce fichier contient des tables répertoriées à l'aide du type de données REG* (par exemple, REGCOLLATION ou REGNAMESPACE). Supprimez les tables ou modifiez-les pour qu'elles n'utilisent pas ce type de données.

postfix_ops.txt

Ce fichier contient des tables répertoriées à l'aide d'opérateurs postfix (unaire à droite). Supprimez les tables ou modifiez-les pour qu'elles n'utilisent pas ces opérateurs.

Échecs de pg_upgrade

La structure des journaux PG_UPGRADE est semblable à celle des journaux PG_UPGRADE_CHECK.

Voici un exemple de journal avec le libellé labels.FILE_NAME=pg_upgrade_dump*.log: :

pg_upgrade_dump: error: query failed: ERROR: out of shared memory
HINT: You might need to increase max_locks_per_transaction.

Étape suivante