Best practice generali

Questa pagina fornisce le best practice per ottenere le migliori prestazioni, la massima durabilità e disponibilità da Cloud SQL.

Se si verificano problemi con l'istanza Cloud SQL, esamina le operazioni seguenti durante la risoluzione dei problemi:

Configurazione e amministrazione delle istanze

Best practice Ulteriori informazioni
Leggi e segui le linee guida operative per assicurarti che le tue istanze siano coperte dall'SLA di Cloud SQL.
Configura un periodo di manutenzione per l'istanza principale da controllare quando possono verificarsi aggiornamenti improvvisi. Vedi Periodo di manutenzione.
Per carichi di lavoro ad alta intensità di lettura, aggiungi repliche di lettura per non sovraccaricare il traffico dall'istanza principale. Se vuoi, puoi utilizzare un bilanciatore del carico come HAProxy per gestire il traffico verso le repliche.
Se elimini e ricrei le istanze regolarmente, utilizza un timestamp l'ID istanza per aumentare la probabilità che i nuovi ID istanza vengano utilizzabili.
Non avviare un'operazione amministrativa prima dell'operazione precedente viene completata.

Le istanze Cloud SQL non accettano nuove richieste di operazioni finché hanno completato l'operazione precedente. Se tenti di avviare una nuova operazione in modo prematuro, la richiesta di operazione non va a buon fine. Sono inclusi il riavvio dell'istanza.

Lo stato dell'istanza nella console Google Cloud non riflette se un'operazione è in esecuzione. Il segno di spunta verde indica solo che l'istanza è nello stato RUNNABLE. Per verificare se un'operazione è in esecuzione, vai alla scheda Operazioni e controlla lo stato dell'operazione più recente.

Configura lo spazio di archiviazione per la manutenzione critica del database.

Se abilitare gli aumenti automatici dello spazio di archiviazione l'impostazione dell'istanza è disabilitata o il limite di aumento automatico dello spazio di archiviazione è abilitato. Assicurati di avere almeno il 20% disponibile dello spazio di archiviazione necessarie per eseguire operazioni critiche di manutenzione del database che Cloud SQL può eseguire.

Per ricevere un avviso quando lo spazio su disco disponibile scende al di sotto del 20%, crea un criterio di avviso basato sulle metriche per la metrica Utilizzo disco con una posizione sopra la soglia e un valore di 0,8. Per ulteriori informazioni, consulta Creare criteri di avviso basati su metriche.

Evita l'utilizzo eccessivo della CPU.

Puoi visualizzare la percentuale di CPU disponibile utilizzata dall'istanza nella pagina dei dettagli dell'istanza in Google Cloud Console. Per ulteriori informazioni, consulta Metriche. Puoi anche monitorare l'utilizzo della CPU e ricevere avvisi a una soglia specificata utilizzando Creare criteri di avviso basati su soglie di metriche.

Per evitare un utilizzo eccessivo, puoi aumentare il numero di CPU per la tua istanza. Per cambiare le CPU è necessario riavviare l'istanza. Se la tua istanza ha già raggiunto il numero massimo di CPU, devi eseguire lo sharding del database su di Compute Engine.

Evita l'esaurimento della memoria.

Quando cerchi segni di esaurimento della memoria, dovresti cercare usa la metrica utilizzo. Per evitare errori di esaurimento della memoria, ti consigliamo di mantenere questa metrica al di sotto del 90%.

Puoi anche utilizzare la metrica total_usage per osservare la percentuale di memoria disponibile utilizzata dalla tua istanza Cloud SQL, inclusa la memoria utilizzata dal contenitore del database e la memoria allocata dalla cache del sistema operativo.

Osservando la differenza tra le due metriche, puoi Identificare quanta memoria viene utilizzata dai processi rispetto a quanta viene utilizzata dalla cache del sistema operativo. Puoi riutilizzare la memoria questa cache.

Per prevedere i problemi di esaurimento della memoria, controlla entrambe le metriche e interpretale insieme. Se le metriche sembrano elevate, la memoria dell'istanza potrebbe essere insufficiente. Ciò può essere dovuto a una configurazione personalizzata, sottodimensionato a seconda del carico di lavoro oppure una combinazione questi fattori.

Esegui il ridimensionamento dell'istanza Cloud SQL per aumentare le dimensioni della memoria. La modifica della dimensione della memoria dell'istanza richiede il riavvio dell'istanza. Se l'istanza ha già raggiunto la dimensione massima della memoria, devi eseguire lo sharding del database su più istanze. Per scoprire di più sul monitoraggio di entrambe le metriche nella console Google Cloud, consulta Metriche.

Architettura dei dati

Best practice Ulteriori informazioni
Se possibile, dividi le istanze di grandi dimensioni in istanze più piccole. Se possibile, è meglio utilizzare molte istanze Cloud SQL di piccole dimensioni anziché un'istanza di grandi dimensioni. La gestione di un'istanza monolitica di grandi dimensioni presenta sfide non poste da un gruppo di istanze più piccole.
Non utilizzare troppi database o tabelle di database.

Mantieni il numero di database inferiore a 500. Mantieni il numero di tabelle dell'istanza inferiore a 50.000 o a 500.000 se soddisfi il requisito hardware minimo di almeno 32 core e almeno 200 GB di memoria. Conserva il conteggio delle tabelle per ogni database con meno di 50.000 tabelle. Un numero eccessivo di database o tabelle di database può influire sul tempo di upgrade del database.

Assicurati che le tabelle abbiano una chiave primaria o univoca. Cloud SQL utilizza la replica basata su righe, che funziona al meglio sulle tabelle con chiavi primarie o univoche.

Implementazione dell'applicazione

Best practice Ulteriori informazioni
Usare buone pratiche di gestione delle connessioni, come il pooling delle connessioni e e il backoff esponenziale. L'utilizzo di queste tecniche migliora l'uso delle risorse da parte dell'applicazione e ti aiuta a rimanere all'interno di Cloud SQL limiti di connessione. Per ulteriori informazioni e esempi di codice, consulta Gestire le connessioni al database.
Testa la risposta della tua applicazione agli aggiornamenti di manutenzione, che possono verificarsi in qualsiasi momento durante il periodo di manutenzione. Prova la manutenzione self-service per simulare un aggiornamento di manutenzione. Durante la manutenzione, l'istanza non è più disponibile per un breve periodo e le connessioni esistenti vengono eliminati. Testare l'implementazione della manutenzione ti consente di comprendere meglio come la tua applicazione gestisce la manutenzione programmata e la rapidità con cui il sistema può recuperare.
Testa la risposta della tua applicazione ai failover, avvengono in qualsiasi momento. Puoi avviare manualmente un failover utilizzando la console Google Cloud, l'interfaccia a riga di comando gcloud o l'API. Consulta: Avvio del failover.
Evita transazioni di grandi dimensioni. Mantieni le transazioni brevi e piccole. Se è necessario un aggiornamento di grandi dimensioni del database, in più transazioni più piccole piuttosto che in una singola transazione di grandi dimensioni.
Se utilizzi il proxy di autenticazione Cloud SQL, assicurati di utilizzare la versione più aggiornata. Consulta Mantenere aggiornato il proxy di autenticazione Cloud SQL.

Importazione ed esportazione di dati

Best practice Ulteriori informazioni
Usa esportazioni serverless. Esportazioni serverless l'operazione di esportazione in un'istanza temporanea, consentendo all'istanza principale per continuare a gestire le query ed eseguire le operazioni come di consueto le prestazioni dei dispositivi. Al termine dell'esportazione dei dati, l'istanza temporanea eliminati automaticamente.
Accelera le importazioni per le dimensioni delle istanze piccole. Per le istanze di piccole dimensioni, puoi di aumentare CPU e RAM di un'istanza per migliorare le prestazioni durante l'importazione di set di dati di grandi dimensioni.
Se esporti dati per importarli in Cloud SQL, assicurati di seguire la procedura corretta. Consulta: Esportazione dei dati da un server di database gestito esternamente.
Quando esegui la migrazione dei dati con un'esportazione e un'importazione, utilizza esattamente lo stesso SQL per l'importazione come esportazione. Consulta: Utilizza la stessa modalità SQL per l'importazione e l'esportazione.

Backup e ripristino

Best practice Ulteriori informazioni
Proteggi i tuoi dati con la funzionalità Cloud SQL appropriata.

I backup, il recupero point-in-time e le esportazioni sono modi per fornire ridondanza dei dati e protezione dei dati. Ognuna protegge da scenari diversi e si completano a vicenda in una strategia di protezione dei dati solida.

I backup sono leggeri e consentono di ripristinare i dati dell'istanza allo stato al momento del backup. Tuttavia, i backup hanno alcune limitazioni. Se elimini l'istanza, vengono eliminati anche i backup. Non puoi eseguire il backup di un singolo database o tabella. Inoltre, se la regione in cui si trova l'istanza non è disponibile, non puoi ripristinare l'istanza da quel backup, anche in una regione disponibile.

Il recupero point-in-time ti aiuta a recuperare un'istanza in un momento specifico. Ad esempio, se un errore causa una perdita di dati, puoi ripristinare lo stato di un database prima che si verifichi l'errore. Un momento specifico il ripristino crea sempre una nuova istanza, non puoi eseguire recupero point-in-time in un'istanza esistente.

La creazione delle esportazioni richiede più tempo perché è stato creato un file esterno in Cloud Storage da utilizzare per ricreare i dati. Esportazioni non subiranno modifiche se elimini l'istanza. Inoltre, puoi esportare un solo database o una tabella uniforme, a seconda del formato di esportazione che scegli.

Definisci le dimensioni delle istanze in base alla conservazione dei log delle transazioni (binari). Un'attività di scrittura elevata nel database può generare un volume log delle transazioni (binari), che possono consumare spazio su disco significativo, e porta alla crescita del disco per le istanze abilitate per aumentare lo spazio di archiviazione automaticamente. Ti consigliamo di determinare le dimensioni dello spazio di archiviazione dell'istanza in modo da tenere conto della conservazione dei log delle transazioni.
Proteggi l'istanza e i backup dall'eliminazione accidentale.

Per impostazione predefinita, un'istanza Cloud SQL creata nella console Google Cloud o tramite Terraform attiva la prevenzione dell'eliminazione accidentale.

Utilizza la funzionalità di esportazione di Cloud SQL per esportare i dati per protezione dei dati. Utilizza Cloud Scheduler con l'API REST per automatizzare la gestione dell'esportazione. Per scenari più avanzati, Cloud Scheduler con le funzioni Cloud Run per l'automazione.

Passaggi successivi

Per ulteriori informazioni sulle pratiche generali per motore del database, consulta: