Risoluzione dei problemi

Controlla se la tua domanda o il tuo problema è già stato trattato in una delle pagine seguenti:

Gli argomenti trattati in questa pagina includono:

Backup e ripristino

Problema Risoluzione dei problemi
Non puoi visualizzare lo stato dell'operazione corrente. La console Google Cloud segnala solo l'esito positivo o negativo dell'operazione al termine. Non è progettato per mostrare avvisi o altri aggiornamenti.

Esegui il comando gcloud sql operations list per elencare tutte le operazioni per l'istanza Cloud SQL specificata.

Vuoi scoprire chi ha emesso un'operazione di backup on demand. L'interfaccia utente non mostra l'utente che ha avviato un'operazione.

Cerca nei log e filtra per testo per trovare l'utente. Potresti dover utilizzare i log di controllo per informazioni private. I file di log pertinenti includono:

  • cloudsql.googleapis.com/postgres.log
  • Se Cloud Audit Logs è abilitato e disponi delle autorizzazioni necessarie per visualizzarli, potrebbe essere disponibile anche cloudaudit.googleapis.com/activity.
Una volta eliminata un'istanza, non puoi eseguirne il backup.

Se elimini un'istanza senza eseguire un backup finale dei dati, non è possibile alcun recupero dei dati. Tuttavia, se ripristini l'istanza, Cloud SQL ripristina anche i backup. Per ulteriori informazioni sul recupero di un'istanza eliminata, consulta Conservare i backup dopo l'eliminazione dell'istanza.

Se hai eseguito un'operazione di esportazione, crea una nuova istanza e poi esegui un'operazione di importazione per ricreare il database. Le esportazioni vengono scritte in Cloud Storage e le importazioni vengono lette da lì.

Un backup automatico è bloccato da molte ore e non può essere annullato. I backup possono richiedere molto tempo, a seconda delle dimensioni del database.

Se hai davvero bisogno di annullare l'operazione, puoi chiedere all' assistenza clienti di force restart l'istanza.

Un'operazione di ripristino può non riuscire quando uno o più utenti a cui viene fatto riferimento nel file di dump SQL non esistono. Prima di ripristinare un dump SQL, tutti gli utenti del database che sono proprietari di oggetti o a cui sono state concesse autorizzazioni per gli oggetti nel database di cui è stato eseguito il dump devono esistere nel database di destinazione. In caso contrario, l'operazione di ripristino non riesce a ricreare gli oggetti con la proprietà o le autorizzazioni originali.

Crea gli utenti del database prima di ripristinare il dump SQL.

Vuoi aumentare il numero di giorni per i quali puoi conservare i backup automatici da 7 a 30 giorni o più. Puoi configurare il numero di backup automatici da conservare, da 1 a 365. I backup automatici vengono eliminati regolarmente in base al valore di conservazione configurato. Purtroppo, ciò significa che i backup attualmente visibili sono gli unici backup automatici da cui puoi eseguire il ripristino.

Per conservare i backup a tempo indeterminato, puoi creare un backup on demand, in quanto non vengono eliminati come i backup automatici. I backup on demand vengono conservati a tempo indeterminato. ovvero rimangono finché non vengono eliminati o finché non viene eliminata l'istanza a cui appartengono. Poiché questo tipo di backup non viene eliminato automaticamente, può influire sulla fatturazione.

Un backup automatico non è andato a buon fine e non hai ricevuto una notifica via email. Per fare in modo che Cloud SQL ti invii una notifica sullo stato del backup, configura un avviso basato sui log.
Un'istanza non funziona ripetutamente perché alterna gli stati di errore e ripristino del backup. I tentativi di connettersi e utilizzare il database dopo il ripristino non vanno a buon fine.
  • Potrebbero esserci troppe connessioni aperte. Un numero eccessivo di connessioni può derivare da errori che si verificano nel mezzo di una connessione in cui non sono presenti impostazioni autovacuum per eliminare le connessioni inattive.
  • Il ciclo può verificarsi se un codice personalizzato utilizza una logica di ripetizione che non si interrompe dopo alcuni errori.
  • Il traffico potrebbe essere troppo elevato. Utilizza il pooling delle connessioni e altre best practice per la connettività.

Tentativi da effettuare

  1. Verifica che il database sia configurato per autovacuum.
  2. Controlla se nel codice personalizzato è configurata una logica di ripetizione della connessione.
  3. Riduci il traffico finché il database non viene ripristinato, poi aumentalo lentamente.
Ti accorgi che mancano dati durante l'esecuzione di un'operazione di backup/ripristino. Le tabelle sono state create come non registrate. Ad esempio:

CREATE UNLOGGED TABLE ....

Queste tabelle non sono incluse in un ripristino da un backup:

  • I contenuti delle tabelle non registrate non sopravvivono al failover su un'istanza HA.
  • Le tabelle non registrate non sopravvivono agli arresti anomali di Postgres.
  • Le tabelle non registrate non vengono replicate nelle repliche di lettura.
  • Le tabelle non registrate vengono cancellate automaticamente durante il ripristino del backup.

La soluzione è evitare di utilizzare tabelle non registrate se vuoi ripristinarle tramite un backup. Se esegui il ripristino da un database che contiene già tabelle non registrate, puoi eseguire il dump del database in un file e ricaricare i dati dopo aver modificato il file di dump impostando ALTER TABLE su SET LOGGED in queste tabelle.

Impossibile eliminare un'istanza quando scegli di eseguire un backup finale al momento dell'eliminazione dell'istanza. Quando elimini un'istanza, devi confermare se vuoi eseguire un backup finale prima di eliminarla. Se hai attivato il backup finale utilizzando l'impostazione dell'istanza final-backup, la selezione che effettui quando elimini l'istanza deve corrispondere alla configurazione dell'istanza del backup finale che hai impostato quando hai attivato il backup finale per la tua istanza. Per risolvere questo problema, procedi in uno dei seguenti modi:
  • Imposta il valore di backup finale in modo che corrisponda alla configurazione di backup esistente dell'istanza.
  • Lascia vuoto il campo del backup finale quando elimini l'istanza. Se lasci il campo vuoto, Cloud SQL utilizza la configurazione del backup finale impostata nelle impostazioni dell'istanza per eseguire un backup finale e definirne la conservazione.
Per visualizzare la configurazione finale dell'istanza di backup dell'istanza, consulta Visualizzare le informazioni sull'istanza.
Impossibile creare un'istanza di replica dopo aver creato correttamente un'istanza principale con l'impostazione di backup finale. Se crei una nuova istanza con l'impostazione dell'istanza di backup finale attivata, devi aggiornare il criterio dell'organizzazione di backup finale per applicare le configurazioni di backup solo all'istanza principale. I backup finali non sono supportati per le istanze di replica.
Per saperne di più, consulta le policy dell'organizzazione Cloud SQL.

Annulla importazione ed esportazione

Problema Risoluzione dei problemi
Messaggio di errore: You can't cancel operation [operation-ID] because this operation isn't in progress.

Stai tentando di annullare un'operazione di importazione o esportazione completata, non riuscita o annullata. Se l'operazione è in esecuzione, puoi annullarla.

Messaggio di errore: You can't cancel operation [operation-ID] because Cloud SQL doesn't support the cancellation of an [operation-type] operation.

Cloud SQL non supporta l'annullamento dell'operazione perché ha un tipo di operazione diverso da IMPORT o EXPORT.

Messaggio di errore: The [operation-type] operation isn't cancelled. Wait and retry in a few seconds.

Al momento Cloud SQL non può annullare l'operazione di importazione o esportazione. Riprova tra qualche secondo. Se il problema persiste, contatta l'Google Cloud assistenza.

Clona

Problema Risoluzione dei problemi
La clonazione non riesce con l'errore constraints/sql.restrictAuthorizedNetworks. L'operazione di clonazione è bloccata dalla configurazione Authorized Networks. Authorized Networks sono configurati per gli indirizzi IP pubblici nella sezione Connettività della console Google Cloud e la clonazione non è consentita per motivi di sicurezza.

Rimuovi tutte le voci Authorized Networks dall'istanza Cloud SQL, se possibile. In caso contrario, crea una replica senza voci Authorized Networks.

Messaggio di errore: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Help Token: [help-token-id].

Stai tentando di utilizzare la console Google Cloud per clonare un'istanza con un indirizzo IP privato, ma non hai specificato l'intervallo IP allocato che vuoi utilizzare e l'istanza di origine non è stata creata con l'intervallo specificato. Di conseguenza, l'istanza clonata viene creata in un intervallo casuale.

Utilizza gcloud per clonare l'istanza e fornire un valore per il parametro
--allocated-ip-range-name. Per saperne di più, consulta Clonazione di un'istanza con un IP privato.

Connetti

Problema Risoluzione dei problemi
Aborted connection. Il problema potrebbe essere:
  • Instabilità Networking.
  • Nessuna risposta ai comandi TCP keep-alive (il client o il server non risponde, probabilmente sovraccarico)
  • La durata della connessione del motore del database è stata superata e il server termina la connessione.

Le applicazioni devono tollerare gli errori di rete e seguire le best practice, come il pooling delle connessioni e i nuovi tentativi. La maggior parte dei pool di connessioni rileva questi errori, se possibile. In caso contrario, l'applicazione deve riprovare o non riuscire in modo controllato.

Per il nuovo tentativo di connessione, ti consigliamo i seguenti metodi:

  1. Backoff esponenziale. Aumenta l'intervallo di tempo tra un nuovo tentativo e l'altro in modo esponenziale.
  2. Aggiungi anche il backoff casuale.

La combinazione di questi metodi contribuisce a ridurre la limitazione.

Timeout della connessione o errore di connessione generico quando utilizzi l'IP privato o il peering di rete VPC.

I tentativi di connessione non riescono a causa di errori generici di timeout o di connessione senza dettagli diagnostici.

Procedura per la risoluzione del problema:

  1. Esegui un test di connettività di Network Intelligence Center tra il client di origine e l'IP privato Cloud SQL sulla porta del database (3306 per MySQL, 5432 per PostgreSQL o 1433 per SQL Server). Il test traccia il percorso del pacchetto e identifica se il traffico viene eliminato da regole firewall, route mancanti o configurazioni di peering errate.
  2. Verifica che lo stato della connessione di peering di rete VPC sia ACTIVE.
  3. Verifica che le regole firewall nella rete VPC consentano il traffico in entrata sulla porta del database.
  4. Se utilizzi intervalli di indirizzi non RFC 1918, verifica di aver aggiornato la configurazione di peering per esportare le route di subnet con IP pubblico.

Per ulteriori dettagli e comandi di diagnostica gcloud, consulta Diagnosticare gli errori di connessione IP privato e di rete VPC.

Messaggio di errore: Login failed for user "" Potresti riscontrare questo errore di accesso durante l'autenticazione di Microsoft Entra ID. Per risolvere il problema, assicurati che esista un accesso SQL Server per questo utente Microsoft Entra ID.
Problemi di connettività di rete con istanze IP private Durante la configurazione dell'integrazione potresti riscontrare alcuni dei seguenti problemi:
  • Operazioni lente per creare accessi Microsoft Entra ID
  • Impossibile creare accessi Microsoft Entra ID
  • Impossibile connettersi all'istanza utilizzando l'autenticazione Microsoft Entra ID

Per saperne di più su come risolvere questi problemi, consulta la sezione Risoluzione dei problemi di integrazione di Microsoft Entra ID.

Certificate verify failed.

I certificati client sono scaduti o il percorso dei certificati non è corretto.

Rigenera i certificati ricreandoli.

Stabilimento lento della connessione o timeout della connessione quando si utilizza l'autenticazione IAM dei database.

La connessione a un'istanza Cloud SQL utilizzando l'autenticazione IAM dei database richiede diversi secondi o si verifica il timeout, mentre l'autenticazione integrata dei database si connette normalmente.

Causa: l'istanza utilizza un tipo di macchina con core condiviso (db-f1-micro o db-g1-small). In caso di limitazione della CPU, l'autenticazione IAM dei database richiede più tempo per essere completata rispetto all'autenticazione con password integrata perché richiede più risorse di calcolo.

Risoluzione:

Per saperne di più, vedi Rendimento delle istanze con core condivisi.

FATAL: database 'user' does not exist. gcloud sql connect --user funziona solo con l'utente postgres predefinito.

Connettiti all'utente predefinito, poi cambia utente.

Vuoi scoprire chi è connesso. Accedi al database ed esegui questo comando:

SELECT datname,
usename,
application_name as appname,
client_addr,
state,
now() - backend_start as conn_age,
now() - state_change as last_activity_age
FROM pg_stat_activity
WHERE backend_type = 'client backend'
ORDER BY 6 DESC
LIMIT 20
   

Hostname/IP does not match certificate's altnames: Host: localhost. is not in the cert's altnames.

L'indirizzo host non corrisponde all'indirizzo nei nomi alternativi del certificato del server.

Se utilizzi Node.js con verify-full o il suo equivalente, utilizza il nome DNS per il parametro servername. Il nome DNS può essere trovato nel certificato del server utilizzando openssl. Ad esempio, openssl x509 -in server-cert.pem -noout -text |grep 'DNS:'.

 ssl: {
  rejectUnauthorized: true,
  ca: fs.readFileSync("/path/to/server/CA"),
  servername: 'N-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx.us-central1.sql.goog'
}

Creare istanze

Problema Risoluzione dei problemi
Messaggio di errore: The zone or region does not have sufficient resources to handle the request at the moment.

La zona selezionata non dispone della capacità per le risorse richieste o il tipo di VM al momento della richiesta di creazione dell'istanza. Al momento della richiesta, potrebbe esserci un'elevata domanda operativa simultanea in quella specifica posizione regionale.

Per risolvere il problema, riprova a creare l'istanza in un'altra zona o riprova a creare l'istanza nella stessa zona che ha ricevuto l'errore in un altro momento della giornata.

Messaggio di errore: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Non sono disponibili altri indirizzi nell'intervallo IP allocato. Possono verificarsi diversi scenari possibili:
  • La dimensione dell'intervallo IP allocato per la connessione di servizio privato è inferiore a /24.
  • La dimensione dell'intervallo IP allocato per la connessione di servizio privato è troppo piccola per il numero di istanze Cloud SQL.
  • Il requisito relativo alle dimensioni dell'intervallo IP allocato sarà maggiore se le istanze vengono create in più regioni. Vedi dimensioni dell'intervallo allocato

Per risolvere il problema, puoi espandere l'intervallo IP allocato esistente o allocare un intervallo IP aggiuntivo alla connessione di servizio privato. Per saperne di più, consulta Allocare un intervallo di indirizzi IP.

Se hai utilizzato il flag --allocated-ip-range-name durante la creazione dell'istanza Cloud SQL, puoi espandere solo l'intervallo IP specificato.

Se stai allocando un nuovo intervallo, assicurati che l'allocazione non si sovrapponga a quelle esistenti.

Dopo aver creato un nuovo intervallo IP, aggiorna il peering VPC con il seguente comando:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
    

Se stai espandendo un'allocazione esistente, fai attenzione ad aumentare solo l'intervallo di allocazione e non a diminuirlo. Ad esempio, se l'allocazione originale era 10.0.10.0/24, la nuova allocazione deve essere almeno 10.0.10.0/23.

In generale, se si parte da un'allocazione /24, ridurre la maschera di 1 per ogni condizione (gruppo di tipi di istanza aggiuntivo, regione aggiuntiva) è una buona regola pratica. Ad esempio, se provi a creare entrambi i gruppi di tipi di istanza nella stessa allocazione, è sufficiente passare da /24 a /23.

Dopo aver espanso un intervallo IP esistente, aggiorna il peering VPC con il seguente comando:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID
    
Messaggio di errore: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]. Prova a creare di nuovo l'istanza Cloud SQL.
Messaggio di errore: HTTPError 400: Invalid request: Incorrect Service Networking config for instance: PROJECT_ID:INSTANCE_NAME:SERVICE_NETWORKING_NOT_ENABLED.

Abilita l'API Service Networking utilizzando il seguente comando e prova a creare di nuovo l'istanza Cloud SQL.

gcloud services enable servicenetworking.googleapis.com