Risolvere i problemi di un upgrade in loco della versione principale

Questo documento descrive come risolvere i problemi che potresti riscontrare durante l'upgrade del database AlloyDB per PostgreSQL a una versione principale in-place. Per maggiori informazioni, consulta Eseguire l'upgrade di una versione principale del database sul posto. Per informazioni sugli errori di upgrade delle versioni principali in loco, consulta Errori di upgrade delle versioni principali in loco del database.

Per analizzare i fallimenti dell'upgrade, identifica la fase di upgrade non riuscita dalla risposta e utilizza le informazioni riportate in questo documento per identificare possibili soluzioni.

AlloyDB convalida la richiesta in modo sincrono e restituisce un messaggio di errore se una delle seguenti condizioni è vera:

  • La richiesta non è valida. Ad esempio, se la versione principale di destinazione fornita non è supportata o è inferiore o uguale alla versione principale corrente.
  • Le risorse del cluster sono in uno stato in cui non è possibile attivare l'upgrade della versione principale. Ad esempio, se il cluster o una delle istanze associate non è in uno stato READY.

Se la richiesta è valida, l'upgrade potrebbe non riuscire per i seguenti motivi:

  • I controlli pre-upgrade eseguiti in varie fasi possono non riuscire, il che indica che sono state rilevate violazioni. Devi risolvere queste violazioni prima di riavviare l'upgrade.
  • Gli errori interni indicano che devi riprovare a eseguire l'upgrade. Se i tentativi di ripetizione non vanno a buon fine, contatta l'assistenza Google Cloud.

Errori di controllo pre-upgrade di AlloyDB

Gli errori di controllo pre-upgrade possono verificarsi in una delle seguenti fasi:

  • Controlli di pre-upgrade di AlloyDB (ALLOYDB_PRECHECK)
  • Controlli pg_upgrade (PG_UPGRADE_CHECK)
  • Upgrade del cluster principale (PRIMARY_INSTANCE_UPGRADE)

Gli errori di controllo pre-upgrade sono problemi rilevati da AlloyDB durante la fase di convalida pre-upgrade, che possono causare il fallimento dell'upgrade in-place della versione principale. Ad esempio, AlloyDB controlla le incompatibilità delle estensioni tra la versione principale attuale e quella di destinazione.

I messaggi di errore vengono inseriti in logs_url nella risposta all'operazione di upgrade. Per visualizzare questi log, vai a Esplora log nella console Google Cloud. Per ulteriori informazioni, consulta la sezione Visualizzare i log di upgrade.

Per visualizzare gli errori e i messaggi di errore corrispondenti che potresti visualizzare nei log, consulta Errori di upgrade in-place della versione principale del database.

Di seguito è riportato un esempio del riepilogo generato nei log dai controlli pre-upgrade di AlloyDB:

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

Errori di controllo di pg_upgrade

PG_UPGRADE_CHECK controlla le violazioni utilizzando l'utilità pg_upgrade. Questo controllo dell'upgrade include incoerenze nei dati che derivano da vari fattori, tra cui differenze nelle strutture di dati specifiche della versione, alterazioni nella codifica e nella collazione, modifiche ai tipi di dati e aggiustamenti al catalogo di sistema.

Più file, come tables_with_oids.txt e tables_using_reg.txt, che vengono generati durante pg_upgrade, vengono esportati in postgres_upgrade. Puoi filtrare questi file utilizzando l'etichetta labels.FILE_NAME.

I nomi file che potrebbero contenere errori da risolvere includono:

Nome file Descrizione

tables_with_oids.txt

Questo file contiene tabelle elencate con identificatori di oggetti (OID). Elimina le tabelle o modificale in modo che non utilizzino gli OID.

tables_using_composite.txt

Questo file contiene tabelle elencate utilizzando tipi compositi definiti dal sistema. Elimina le tabelle o modificale in modo che non utilizzino questi tipi composti.

tables_using_unknown.txt

Questo file contiene tabelle elencate utilizzando il tipo di dato UNKNOWN. Elimina le tabelle o modificale in modo che non utilizzino questo tipo di dati.

tables_using_sql_identifier.txt

Questo file contiene tabelle elencate utilizzando il tipo di dato SQL_IDENTIFIER. Elimina le tabelle o modificale in modo che non utilizzino questo tipo di dati.

tables_using_reg.txt

Questo file contiene tabelle elencate utilizzando il tipo di dato REG*, ad esempio REGCOLLATION o REGNAMESPACE. Elimina le tabelle o modificale in modo che non utilizzino questo tipo di dati.

postfix_ops.txt

Questo file contiene tabelle elencate utilizzando gli operatori postfix (unario a destra). Elimina le tabelle o modificale in modo che non utilizzino questi operatori.

Errori di pg_upgrade

La struttura dei log PG_UPGRADE è simile a quella dei log PG_UPGRADE_CHECK.

Di seguito è riportato un esempio di log con l'etichettalabels.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.

Passaggi successivi