Questa pagina contiene un elenco dei problemi più frequenti che potresti riscontrare quando lavori con le istanze Cloud SQL e i passaggi che puoi seguire che li rappresentano. Consulta anche le pagine Problemi noti, Risoluzione dei problemi e Pagina di assistenza.
Visualizza i log
Per informazioni sulle operazioni recenti, puoi visualizzare Log delle operazioni dell'istanza Cloud SQL o i log degli errori MySQL.
L'istanza non risponde
Se la tua istanza smette di rispondere alle connessioni o se le prestazioni sono ridotte, per assicurarsi che sia conforme alle Linee guida operative. Se non è conforme a queste linee guida, non è coperto dallo SLA di Cloud SQL.
Problemi di connessione
Per assistenza in caso di problemi di connessione, consulta la pagina Risoluzione dei problemi di connessione o la sezione Collegamenti nella pagina di risoluzione dei problemi.
Problemi relativi alle istanze
Backup
Per ottenere le migliori prestazioni per i backup, mantieni il numero di tabelle a un numero ragionevole.
Per altri problemi di backup, consulta Backup della pagina di risoluzione dei problemi.
Importazione ed esportazione
Le importazioni ed esportazioni in Cloud SQL sono
è uguale all'utilizzo dell'utilità mysqldump
, ad eccezione di quello con Cloud SQL
di importazione/esportazione, puoi trasferire i dati utilizzando un bucket Cloud Storage.
Il completamento delle importazioni in Cloud SQL e delle esportazioni da Cloud SQL può richiedere molto tempo, a seconda delle dimensioni dei dati da elaborare. Ciò può avere i seguenti effetti:
- Non puoi arrestare un'operazione di un'istanza Cloud SQL a lunga esecuzione.
- Puoi eseguire una sola operazione di importazione o esportazione alla volta per ogni istanza e un'operazione di importazione o esportazione di lunga durata blocca altre operazioni, come i backup automatici giornalieri. Le esportazioni serverless ti consentono di eseguire altre operazioni, tra cui la modifica delle istanze, l'importazione, il failover e lo sblocco dei backup automatici giornalieri.
Puoi ridurre il tempo necessario per completare ogni operazione utilizzando la funzionalità di importazione o esportazione di Cloud SQL con batch di dati più piccoli.
Per le esportazioni, puoi eseguire l'esportazione da una replica di lettura o utilizzare esportazione serverless in minimizzare l'impatto sulle prestazioni del database e consentire l'esecuzione di altre operazioni sull'istanza mentre è in esecuzione un'esportazione.
Altri aspetti da tenere presente durante l'importazione:
- Un arresto anomalo dell'importazione potrebbe essere dovuto a un errore di esaurimento della memoria.
In questo caso, puoi provare a utilizzare direttamente i comandi MySQL per aggiungere i parametri
--extended-insert=FALSE --complete-insert
. Questi parametri riducono la velocità di importazione, ma allo stesso tempo riduce anche la quantità di memoria richiede.
Per altri problemi di importazione ed esportazione, consulta la sezione Importazione ed esportazione nella pagina Risoluzione dei problemi.
Spazio sul disco
Se l'istanza raggiunge la quantità massima di spazio di archiviazione consentita, scrive in l'errore del database. Se elimini dati, ad esempio eliminando un lo spazio liberato non viene riportato nella tabella Spazio di archiviazione utilizzato dell'istanza. Per una spiegazione di questo comportamento, consulta la domanda frequente Come faccio a recuperare lo spazio da una tabella eliminata?Il raggiungimento del limite massimo di spazio di archiviazione può anche causare il blocco dell'istanza riavvia.
Evitare il danneggiamento dei dati
Evita le colonne generate
A causa di un problema in MySQL, l'utilizzo di colonne generate potrebbe generare dati corruzione. Per ulteriori informazioni, consulta MySQL bug #82736.
Arresti puliti
Quando Cloud SQL arresta un'istanza (ad esempio per la manutenzione), non vengono inviate nuove connessioni all'istanza e quelle esistenti vengono interrotte. La quantità di il limite di tempo per l'arresto di mysqld è di 1 minuto. Se l'arresto non si verifica completato in quel lasso di tempo, il processo mysqld viene arrestato con forza. Questo può l'interruzione delle scritture sul disco a metà.
Motori del database
InnoDB è l'unico motore di archiviazione supportato per le istanze MySQL perché è più resistente al danneggiamento delle tabelle rispetto ad altri spazi di archiviazione MySQL come motori di ricerca MyISAM.
Per impostazione predefinita, le tabelle di database Cloud SQL vengono create utilizzando il motore di archiviazione InnoDB. Se la sintassi CREATE TABLE
include un'opzione ENGINE
che specifica un motore di archiviazione diverso da InnoDB, ad esempio
ENGINE = MyISAM
, la tabella non viene creata e vengono visualizzati messaggi di errore
come nell'esempio seguente:
ERROR 3161 (HY000): Storage engine MyISAM is disabled (Table creation is disallowed).
Puoi evitare questo errore rimuovendo l'opzione ENGINE = MyISAM
dal
CREATE TABLE
comando. In questo modo viene creata la tabella con il motore di archiviazione InnoDB.
Modifiche alle tabelle di sistema
Le tabelle di sistema MySQL utilizzano il motore di archiviazione MyISAM, incluse tutte le tabelle nel
mysql
, ad esempio mysql.user
e mysql.db
. Queste tabelle sono vulnerabili a arresti anomali. Esegui il comando FLUSH CHANGES
dopo aver apportato modifiche a queste tabelle. Se il file MyISAM viene danneggiato
si verifica, CHECK TABLE
e REPAIR TABLE
possono riportarti in buono stato
(ma non per salvare dati).
Identificatori delle transazioni globali (GTID)
GTID è abilitato automaticamente in tutte le istanze MySQL. L'attivazione di GTID consente di proteggersi dalla perdita di dati durante la creazione e il failover della replica e rende la replica più solida. Tuttavia, GTID presenta alcune limitazioni di MySQL, come documentato Manuale MySQL. Le seguenti operazioni non sicure dal punto di vista delle transazioni non possono essere utilizzate con un server MySQL abilitato per GTID:
CREATE TABLE ... SELECT
estratti conto;CREATE TEMPORARY TABLE
estratti conto nelle transazioni;- Transazioni o istruzioni che interessano sia le tabelle transazionali che quelle non transazionali.
Se utilizzi una transazione non sicura dal punto di vista delle transazioni, verrà visualizzato un messaggio di errore come nell'esempio seguente:
Exception: SQLSTATE[HY000]: General error: 1786
CREATE TABLE ... SELECT is forbidden when @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1.
Lavora con trigger e funzioni archiviate
Se per l'istanza è abilitato il logging binario e devi utilizzare trigger o funzioni memorizzate, assicurati che per l'istanza sia impostato il flag log_bin_trust_function_creators
su on
.
Stato sospeso
Esistono diversi motivi per cui Cloud SQL potrebbe sospendere un'istanza, tra cui:
Problemi di fatturazione
Ad esempio, se la carta di credito dell'account di fatturazione del progetto è scaduta, l'istanza potrebbe essere sospesa. Puoi controllare la fatturazione e informazioni per un progetto, vai alla console Google Cloud pagina di fatturazione, selezionando il progetto e visualizzando i dati dell'account di fatturazione utilizzati per il progetto. Una volta risolto il problema di fatturazione, l'istanza torna allo stato di esecuzione entro alcune ore.
Problemi principali con Cloud Key Management Service
Ad esempio, se la versione della chiave Cloud KMS utilizzata per criptare i dati utente nell'istanza Cloud SQL non è presente, l'accesso alla chiave viene revocato o se la chiave viene disattivata o eliminata. Per saperne di più, consulta Utilizzo delle chiavi di crittografia gestite dal cliente (CMEK).
Problemi legali
Ad esempio, una violazione delle Le Norme di utilizzo accettabile di Google Cloud possono causare la sospensione dell'istanza. Per ulteriori informazioni, consulta la sezione "Sospensioni e rimozione" nei Termini di servizio di Google Cloud.
Problemi operativi
Ad esempio, se un'istanza è bloccata in un loop di arresto anomalo (si arresta in modo anomalo) durante l'avvio o subito dopo l'avvio), Cloud SQL potrebbe sospenderlo.
Mentre un'istanza è sospesa, puoi continuare a visualizzare le relative informazioni oppure puoi eliminarlo, se la sospensione è stata causata da problemi di fatturazione.
Gli utenti di Cloud SQL con pacchetti di assistenza Platinum, Gold o Silver possono contattare direttamente il nostro team di assistenza in merito alle istanze sospese. Tutti gli utenti possono utilizzare le indicazioni precedenti, oltre ai google-cloud-sql forum.
Prestazioni
Panoramica
Cloud SQL supporta i carichi di lavoro che richiedono alte prestazioni, fino a un massimo di 60.000 IOPS e senza costi aggiuntivi per l'I/O. Le prestazioni in termini di IOPS e velocità effettiva dipendono dalle dimensioni del disco, dal numero di vCPU dell'istanza e dalle dimensioni dei blocchi I/O, tra gli altri fattori.
Le prestazioni dell'istanza dipendono anche dalla scelta del tipo di archiviazione e dal caricamento di lavoro.
Scopri di più su:
- Dischi permanenti e prestazioni.
- Metriche relative a prestazioni e limitazione.
- Ottimizzazione delle prestazioni del disco.
- Altri fattori che influiscono sul rendimento.
Abilita log delle query
Per ottimizzare le prestazioni delle query, puoi configurare
Cloud SQL per registrare le query lente
aggiungendo i flag di database
--log_output='FILE'
e --slow_query_log=on
alla tua istanza.
Ciò rende disponibile l'output di log utilizzando
Visualizzatore log nella console Google Cloud.
Tieni presente che si applicano addebiti di Google Cloud Observability Logging.
Non impostare log_output su TABLE
. Questa operazione può causare problemi di connessione come descritto in Consigli per l'utilizzo degli indicatori.
Puoi fare riferimento a questo tutorial per istruzioni su come registrare e monitorare le query lente di Cloud SQL per MySQL utilizzando Cloud Logging e Monitoring.
Attivare il monitoraggio dei blocchi
I monitor InnoDB forniscono informazioni sullo stato interno del motore di archiviazione InnoDB, che puoi utilizzare per l'ottimizzazione del rendimento.
Accedi all'istanza utilizzando il client MySQL e ottieni l'output del monitoraggio on demand:
SHOW ENGINE INNODB STATUS\G
Per spiegazioni sulle sezioni dell'output di monitoraggio, consulta InnoDB Standard Monitor and Lock Monitor Output.
Puoi abilitare i monitoraggi InnoDB in modo che l'output venga generato periodicamente per un file o una tabella, con un peggioramento delle prestazioni. Per ulteriori informazioni, vedi Attivazione dei monitor InnoDB
Utilizza lo schema delle prestazioni
Lo schema delle prestazioni di MySQL è una funzionalità per il monitoraggio dell'esecuzione del server MySQL a basso livello. Il più accessibile per utilizzare le statistiche generate in performance_schema tramite MySQL Workbench Report sul rendimento funzionalità.
Mantieni un numero ragionevole di tabelle di database
Le tabelle di database consumano risorse di sistema. Un numero elevato può influire sulle prestazioni e sulla disponibilità dell'istanza e causare la perdita della copertura dello SLA (accordo sul livello del servizio). Scopri di più.
Suggerimenti generali sulle prestazioni
. Per inserimenti, aggiornamenti o eliminazioni lenti dei database, considera quanto segue azioni:- Controlla le posizioni del writer e del database. invio di dati a lunga distanza introduce latenza.
Per selezioni lente dei database, considera quanto segue:
- La memorizzazione nella cache è importante per le prestazioni di lettura. Confronta le dimensioni del con la dimensione della RAM dell'istanza. Idealmente, l'intero set di dati rientra nel 70% della RAM dell'istanza, nel qual caso le query non vengono vincolato alle prestazioni dell'IO. In caso contrario, valuta la possibilità di aumentare della RAM dell'istanza.
- Se il tuo carico di lavoro è costituito da query che richiedono un'elevata intensità di CPU (ordinamento, espressioni regolari, altre funzioni complesse), la tua istanza potrebbe essere limitata. Aumenta le vCPU.
Se noti un calo delle prestazioni durante l'esecuzione delle query, utilizza
EXPLAIN
. EXPLAIN è un'istruzione che aggiungi a
altre istruzioni, come SELECT, e restituisce informazioni su come MySQL
esegue l'istruzione. Funziona con SELECT, DELETE, INSERT, REPLACE e
AGGIORNA. Ad esempio: EXPLAIN SELECT * FROM myTable;
.
Utilizza EXPLAIN
per capire dove puoi:
Aggiungi indici alle tabelle per migliorare le prestazioni delle query. Ad esempio, assicurati che ogni campo utilizzato come chiave di JOIN abbia un indice in entrambe le tabelle.
Migliora le operazioni di
ORDER BY
. SeEXPLAIN
mostra "Utilizzo temporaneo; Utilizzo filesort" nella colonna Extra dell'output, significa che i risultati intermedi vengono archiviati in un file che viene poi ordinato, il che solitamente comporta prestazioni ridotte. In questo caso, prendi una delle seguenti opzioni passaggi:Se possibile, utilizza gli indici anziché l'ordinamento. Per ulteriori informazioni, consulta Ottimizzazione ORDER BY.
Aumenta la dimensione
sort_buffer_size
per la sessione della query.Utilizza meno RAM per riga dichiarando le colonne solo della dimensione richiesta.
Risoluzione dei problemi
Per altri problemi relativi a Cloud SQL, consulta la pagina relativa alla risoluzione dei problemi.
Messaggi di errore
Per messaggi di errore API specifici, consulta la pagina di riferimento Messaggi di errore.
Risolvi i problemi relativi alle chiavi di crittografia gestite dal cliente (CMEK)
Le operazioni di amministrazione di Cloud SQL, come creazione, clonazione o aggiornamento, potrebbero non riuscire a causa di errori di Cloud KMS e di ruoli o autorizzazioni mancanti. Le cause comuni di errore includono: manca la versione della chiave Cloud KMS, è una versione della chiave Cloud KMS disabilitata o eliminata, autorizzazioni IAM insufficienti per accedere alla versione della chiave Cloud KMS oppure La versione della chiave Cloud KMS si trova in una regione diversa da quella dell'istanza Cloud SQL. Utilizza la tabella di risoluzione dei problemi che segue per diagnosticare e risolvere i problemi comuni.
Tabella per la risoluzione dei problemi relativi alle chiavi di crittografia gestite dal cliente
Per questo errore... | Il problema potrebbe essere... | Prova a fare così… |
---|---|---|
Account di servizio per prodotto e progetto non trovato | Il nome dell'account di servizio non è corretto. | Assicurati di aver creato un account di servizio per il progetto utente corretto.
|
Impossibile concedere l'accesso all'account di servizio | L'account utente non dispone dell'autorizzazione per concedere l'accesso a questa versione della chiave. | Aggiungi il ruolo Amministratore organizzazione al tuo account utente o di servizio.
|
La versione della chiave Cloud KMS viene eliminata | La versione della chiave è stata eliminata. | Se la versione della chiave viene eliminata, non puoi utilizzarla per criptare o decriptare i dati. |
La versione della chiave Cloud KMS è disabilitata | La versione della chiave è disabilitata. | Riattiva la versione della chiave Cloud KMS.
|
Autorizzazione insufficiente per utilizzare la chiave Cloud KMS | Ruolo cloudkms.cryptoKeyEncrypterDecrypter mancante per l'utente o
l'account di servizio che stai utilizzando per eseguire operazioni sulle istanze Cloud SQL
La versione della chiave Cloud KMS non esiste. |
Nel progetto Google Cloud che ospita la chiave, aggiungi il ruolo
cloudkms.cryptoKeyEncrypterDecrypter al tuo account utente o di servizio.
Se il ruolo è già stato concesso al tuo account, consulta la sezione Creare una chiave per scoprire come creare una nuova versione della chiave. Vedi nota. |
Chiave Cloud KMS non trovata | La versione della chiave non esiste. | Crea una nuova versione della chiave. Consulta la sezione Creazione di una chiave. Vedi nota. |
L'istanza Cloud SQL e la versione della chiave Cloud KMS si trovano in regioni diverse | La versione della chiave Cloud KMS e l'istanza Cloud SQL devono trovarsi nella stessa regione. non funziona se la versione della chiave Cloud KMS si trova in una regione globale o multiregionale. | Crea una versione della chiave nella stessa regione in cui vuoi creare le istanze. Consulta Creare una chiave. Vedi nota. |
La versione della chiave Cloud KMS viene ripristinata, ma l'istanza è ancora sospesa | La versione della chiave è disabilitata o non concede le autorizzazioni corrette. | Riattiva la versione della chiave e concedi il ruolo cloudkms.cryptoKeyEncrypterDecrypter
all'account utente o di servizio nel progetto Google Cloud che ospita la chiave. |
Tabella per la risoluzione dei problemi relativi alla ricrittografia
Per questo errore… | Il problema potrebbe essere... | Prova a fare così… |
---|---|---|
Nuova crittografia delle risorse CMEK non riuscita perché la chiave Cloud KMS non è accessibile. Assicurati che la versione della chiave primaria sia attivata e che l'autorizzazione sia concessa correttamente. | La versione della chiave è disattivata o non concede le autorizzazioni appropriate. | Riattiva la versione della chiave Cloud KMS: Nel progetto Google Cloud che ospita la chiave, verifica che il ruolo |
Nuova crittografia delle risorse CMEK non riuscita a causa di un errore interno del server. Riprova più tardi | Si è verificato un errore interno del server. | Riprova a eseguire la crittografia. Per ulteriori informazioni, consulta Ricriptare un'istanza o una replica abilitata per CMEK esistente |