Errori noti nel servizio di migrazione per Database di Azure per PostgreSQL

Questo articolo contiene i numeri di messaggio di errore e la relativa descrizione per la convalida della premigration.

Le tabelle seguenti forniscono un elenco completo dei codici di errore per la funzionalità del servizio di migrazione in Database di Azure per PostgreSQL. Questi codici di errore consentono di risolvere i problemi durante il processo di migrazione. Ogni codice di errore include un messaggio di errore e altri dettagli che forniscono ulteriore contesto e indicazioni per la risoluzione del problema.

Timeout della connessione

Sintomi

Gli errori di migrazione spesso si manifestano tramite messaggi di errore che indicano problemi di connettività. Questi problemi possono verificarsi durante il processo di trasferimento dei dati. Quando si verificano errori di questo tipo, vengono generati i messaggi di errore seguenti:

  • server ha chiuso la connessione in modo imprevisto
  • Errore SSL SYSCALL: EOF rilevato
  • EOF imprevisto nella connessione client
  • non è stato possibile ricevere dati dal client: reimpostazione della connessione tramite peer

Causa

La causa sottostante per questi sintomi è un connection timeout. Ciò si verifica in genere quando il server o il client prevede di ricevere dati entro un determinato intervallo di tempo, ma non vengono inviati o ricevuti dati, causando il timeout della connessione. I motivi specifici per un timeout della connessione possono variare, ma i fattori comuni includono la congestione della rete, le impostazioni di rete configurate in modo errato o le impostazioni di timeout eccessivamente aggressive.

Nel contesto del servizio di migrazione in Database di Azure per PostgreSQL, un timeout di connessione tra l'origine e il servizio di migrazione o tra il servizio di migrazione e la destinazione può interrompere il processo di trasferimento dei dati, causando i sintomi descritti in precedenza.

Risoluzione

  • Per risolvere i problemi di timeout della connessione, modificare i parametri TCP nei server di origine e di destinazione come indicato di seguito:

    • tcp_keepalives_idle=10
    • tcp_keepalives_interval=10
    • tcp_keepalives_count=60

Queste impostazioni consentono di mantenere la connessione inviando probe keepalive per evitare timeout a causa dell'inattività. Importante, la modifica di questi parametri TCP non richiede un riavvio delle istanze di origine o di destinazione di PostgreSQL. Le modifiche possono essere applicate in modo dinamico, consentendo una continuazione senza interruzioni delle operazioni del database.

Connessione terminata a causa del timeout inattiva della transazione

Sintomi

  • Il servizio migrazione rileva un messaggio di terminazione della connessione.
  • I log visualizzano l'errore: terminating connection due to idle-in-transaction timeout.

Causa

Questo errore si verifica quando una connessione al database rimane inattiva all'interno di una transazione per più tempo del valore specificato nel idle_in_transaction_timeout parametro . PostgreSQL termina automaticamente tali connessioni per evitare problemi di blocco delle risorse.

Risoluzione

  • Impostare il idle_in_transaction_timeout parametro su 0 per disabilitare il timeout durante il processo di migrazione.
  • Comando di esempio per applicare questa impostazione:
ALTER SYSTEM SET idle_in_transaction_timeout = 0;
  • Assicurarsi di reimpostare questo parametro sul valore originale dopo la migrazione per mantenere le prestazioni del database e impedire connessioni inattive prolungate.

Esaurimento memoria condivisa

Sintomi

Il processo di migrazione si interrompe in modo imprevisto. I log visualizzano l'errore: out of shared memory.

Causa

Questo errore indica che PostgreSQL ha esaurito la memoria condivisa allocata per i blocchi. In genere si verifica quando il processo di migrazione comporta molti blocchi oltre l'impostazione corrente del parametro max_locks_per_transaction.

Risoluzione

  • Aumentare il valore del max_locks_per_transaction parametro per contenere gli altri blocchi necessari durante il processo di migrazione.
  • Comando di esempio per modificare questa impostazione: ALTER SYSTEM SET max_locks_per_transaction = <<>>;
  • Assicurarsi che, max_locks_per_transaction * max_connections > Number of tables + Number of indexes
  • Se il problema persiste, prendere in considerazione l'aumento del parametro shared_buffers per garantire la disponibilità di memoria condivisa sufficiente per la gestione dei blocchi.

Codici di errore di migrazione

Codice di errore Error message Risoluzione
603000 Connessione non riuscita. La connessione al server {serverName} non è riuscita. Assicurarsi che il server di origine sia raggiungibile dal server di destinazione o dal server di runtime. Fare riferimento alla Guida alla rete per il debug dei problemi di connettività.
603001 Errore di configurazione SSL. Il server {serverName} non supporta SSL. Controllare le impostazioni SSL. Impostare la modalità SSL per preferire e ripetere la migrazione. Fare riferimento alla Guida alla rete per il debug dei problemi di connettività.
603100 Autenticazione non riuscita. La password per il server {serverName} non è corretta. Immettere la password corretta e ripetere la migrazione. N/D
603101 Il database esiste nella destinazione. Il database {dbName} esiste nel server di destinazione. Verificare che il server di destinazione non disponga del database e riprovare a eseguire la migrazione. N/D
603102 Database di origine mancante. Il database {dbName} non esiste nel server di origine. Specificare un database valido e ripetere la migrazione. N/D
603103 Ruolo Microsoft Entra mancante. Ruolo {roleNames} Microsoft Entra mancante nel server di destinazione. Creare il ruolo Entra e ripetere la migrazione. N/D
603104 Ruolo replica mancante. L'utente {0} non ha il ruolo di replica nel server {1}. Concedere il ruolo di replica prima di riprovare a eseguire la migrazione. Usare ALTER ROLE <rolename> WITH REPLICATION; per concedere l'autorizzazione richiesta.
603105 Errore delle impostazioni GUC. Slot di replica insufficienti nel server di origine per la migrazione. Aumentare il max_replication_slots parametro GUC a {0} o superiore. Il server di origine non dispone di slot di replica sufficienti per eseguire la migrazione online. Usare questa query SELECT * FROM pg_replication_slots WHERE active = false AND slot_type = 'logical'; per ottenere l'elenco degli slot di replica inattivi e eliminarli usando SELECT pg_drop_replication_slot('slot_name'); prima di avviare la migrazione. In alternativa, impostare il parametro server 'max_replication_slots' su {0} o versione successiva. Assicurarsi che il max_wal_senders parametro sia stato modificato anche in modo che sia maggiore o uguale a max_replication_slots' parameter.
603106 Errore delle impostazioni GUC. Il max_wal_senders parametro GUC è impostato su {0}. Assicurarsi che corrisponda o superi il valore "max_replication_slots". N/D
603107 Errore delle impostazioni GUC. Il parametro del livello WAL del server di origine è impostato su {0}. Impostare il livello WAL del parametro GUC su 'logical'. N/D
603108 Estensioni consentite elenco elementi obbligatori. Non è stato possibile installare le estensioni {0} nel server di destinazione perché non sono consentite. Consenti l'elenco di estensioni e riprovare la migrazione. Impostare l'elenco di elementi consentiti seguendo i passaggi indicati in Estensioni PostgreSQL.
603109 Errore di configurazione delle librerie di precaricamento condiviso. Aggiungere le estensioni consentite {0} a "shared_preload_libraries" nel server di destinazione e ripetere la migrazione. Impostare le librerie di precaricamento condiviso seguendo i passaggi indicati in Estensioni PostgreSQL. Ciò richiede un riavvio del server.
603110 Privilegi insufficienti. L'utente di migrazione non dispone delle autorizzazioni necessarie per l'accesso al database. Assicurarsi che l'utente di migrazione sia proprietario dei database di origine e abbia privilegi di lettura e scrittura e riprovare la migrazione. N/D
603111 Pulizia del database di destinazione non riuscita. Impossibile terminare le connessioni attive nel database di destinazione durante la fase di premigration. Concedere pg_signal_backend ruolo all'utente di migrazione e ripetere la migrazione. Aggiungere pg_signal_backend ruolo all'utente di migrazione usando il comando 'GRANT pg_signal_backend a <migration_user>'
603112 Errore di impostazioni GUC. Impossibile impostare default_transaction_read_only parametro GUC su off. Assicurarsi che l'accesso in scrittura dell'utente sia impostato correttamente e ripetere la migrazione. Impostare 'default_transaction_read_only' su OFF nel server di origine tramite portale di Azure o tramite il comando psql(ad esempio, ALTER SYSTEM SET default_transaction_read_only = off).
603113 Errore di cutover. Non è possibile avviare il cutover per il database '{dbName}' perché la migrazione è già stata con lo stato Completato/Non riuscito/Annullato. N/D
603114 Errore di cutover. Non è possibile avviare il cutover per il database '{dbName}' per la modalità di migrazione offline. N/D
603115 Privilegi utente mancanti. L'utente di migrazione '{0}' non è membro di azure_pg_admin ruolo. Aggiungere i privilegi necessari nel server di destinazione e ripetere la migrazione. N/D
603116 Privilegi utente mancanti. L'utente di migrazione '{0}' non ha il privilegio di creazione del ruolo. Aggiungere i privilegi necessari nel server di destinazione e ripetere la migrazione. Eseguire query ALTER ROLE <rolename> WITH CREATEROLE; nel server di destinazione.
603117 Privilegi utente mancanti. L'utente di migrazione '{0}' non dispone dei privilegi necessari per eliminare il database '{dbName}' nel server di destinazione. Eliminare manualmente il database dal server di destinazione e ripetere la migrazione. N/D
603400 Versione di origine non supportata. La migrazione delle versioni di PostgreSQL seguenti {0} non è supportata. È necessario usare un altro metodo di migrazione.
603401 Mancata corrispondenza delle regole di confronto. Le regole {0} di confronto nel database {1} non sono presenti nel server di destinazione. N/D
603402 Mancata corrispondenza delle regole di confronto. Le regole {0} di confronto per la tabella {1} nella colonna {2} non sono presenti nel server di destinazione. Contattare il supporto tecnico Microsoft per aggiungere le regole di confronto necessarie.
603403 Mancata corrispondenza delle regole di confronto. Il database di origine contiene regole di confronto definite dall'utente. Eliminare queste regole di confronto e ripetere la migrazione. N/D
603404 Rilevati ID non supportati. Tabelle con 'WITH OID' rilevate nel database {0}. Non sono supportati in PostgreSQL versione 12 e successive. Vedere Le note sulla versione di PostgreSQL.
603405 Estensioni non supportate. Il servizio di migrazione non supporta la migrazione dei database con {0} estensioni nel server di destinazione. N/D
603406 Estensioni non supportate. PostgreSQL di destinazione {0} supporta POSTGIS versione 3.2.3, che non è compatibile con l'origine.{1} Consigliare l'aggiornamento del server di destinazione alla versione 11. Vedere Modifiche che causano un'interruzione postGIS.
603407 Errore dello schema dell'estensione. Le estensioni {0} che si trovano nello schema di sistema nel server di origine non sono supportate nel server di destinazione. Eliminare e ricreare le estensioni in uno schema non di sistema, quindi ripetere la migrazione. Visitare le estensioni PostgreSQL.
603408 Estensioni non supportate. Il server di destinazione versione 16 non supporta {0} le estensioni. Eseguire la migrazione alla versione 15 o successiva, quindi eseguire l'aggiornamento dopo aver supportato le estensioni. N/D
603409 Cast definiti dall'utente presenti. Il database {0} di origine contiene cast definiti dall'utente di cui non è possibile eseguire la migrazione al server di destinazione. N/D
603410 Errore di autorizzazione della tabella di sistema. Gli utenti hanno accesso a tabelle di sistema come pg_authid e pg_shadow di cui non è possibile eseguire la migrazione alla destinazione. Revocare queste autorizzazioni e ripetere la migrazione. La convalida delle autorizzazioni predefinite concesse a pg_catalog tabelle/viste (ad esempio pg_authid e pg_shadow) è essenziale. Tuttavia, queste autorizzazioni non possono essere assegnate alla destinazione. In particolare, l'utente dispone {2} delle autorizzazioni, mentre l'utente {1}{3} detiene {4} le autorizzazioni. Per una soluzione alternativa, visitare Utente, ruoli e autorizzazioni
603413 Lingue non supportate. Il servizio di migrazione non supporta la migrazione dei database con {0} lingue nel server di destinazione. Rimuovere i linguaggi e le relative funzioni implementate. Il server di destinazione non supporta le lingue non supportate. Provare a disabilitare o rimuovere la rispettiva lingua nel server di origine prima di eseguire la migrazione al server di destinazione.
603700 Pulizia del database di destinazione non riuscita. Impossibile terminare le connessioni attive nel database di destinazione durante la fase di pre-migrazione/post-migrazione. N/D
603701 Errore interno del server. Impossibile creare ruoli nel server di destinazione. Per ulteriori analisi, contattare il supporto tecnico Microsoft.
603702 Errore interno del server. Impossibile eseguire il dump dei ruoli dal server di origine. Per ulteriori analisi, contattare il supporto tecnico Microsoft.
603703 Errore interno del server. Impossibile modificare il file di dump del ruolo globale. Per ulteriori analisi, contattare il supporto tecnico Microsoft.
603704 Errore interno del server. Impossibile impostare tutti i ruoli di origine come membro dell'utente di migrazione di destinazione. Per ulteriori analisi, contattare il supporto tecnico Microsoft.
603705 Errore interno del server. Non è stato possibile ripristinare le concessioni o le revoca. Per ulteriori analisi, contattare il supporto tecnico Microsoft.
603706 Errore interno del server. Impossibile pulire l'utente di migrazione del server di destinazione. L'utente di migrazione di destinazione può far parte di più ruoli. Rimuovere tutti i ruoli non necessari dall'utente di migrazione del server di destinazione e ripetere la migrazione. Per ulteriori analisi, contattare il supporto tecnico Microsoft.
603707 Errore interno del server. Impossibile concedere azure_pg_admin all'utente amministratore del server di origine. Per ulteriori analisi, contattare il supporto tecnico Microsoft.
603708 Errore interno del server. Impossibile modificare il proprietario dello schema pubblico in azure_pg_admin nel database '{dbName}'. Modificare il proprietario dello schema pubblico in azure_pg_admin manualmente e ripetere la migrazione. Per ulteriori analisi, contattare il supporto tecnico Microsoft.
603709 L'installazione della migrazione non è riuscita. Per ulteriori analisi, contattare il supporto tecnico Microsoft.