Informazioni sulla manutenzione delle istanze Cloud SQL

Questa pagina spiega come vengono eseguiti gli aggiornamenti di manutenzione sulle istanze Cloud SQL e come è possibile controllare la tempistica di questi aggiornamenti. Per iniziare, consulta Trovare e impostare i periodi di manutenzione.

Panoramica

Come servizio gestito, Cloud SQL aggiorna automaticamente le istanze per garantire che l'hardware, il sistema operativo e il motore del database sottostanti siano affidabili, performanti, sicuri e aggiornati. La maggior parte di questi aggiornamenti viene eseguita mentre l'istanza Cloud SQL è in esecuzione. Tuttavia, alcuni aggiornamenti di sistema richiedono l'esecuzione di una breve interruzione del servizio. Questi aggiornamenti sono chiamati manutenzione.

La manutenzione aggiorna il sistema operativo e il motore del database. Poiché questi aggiornamenti richiedono il riavvio dell'istanza, potrebbero verificarsi tempi di inattività. Gli aggiornamenti di manutenzione offrono i seguenti vantaggi:

  • Funzionalità di Cloud SQL. Per lanciare nuove funzionalità, il motore del database viene aggiornato e vengono installati nuovi plug-in per il database.

  • Upgrade della versione del database. Il provider di software di database che sviluppa SQL Server rilascia nuove versioni secondarie diverse volte all'anno. A ogni nuova versione vengono apportate correzioni di bug, patch di sicurezza, miglioramenti delle prestazioni e nuove funzionalità dei database. Puoi trovare la versione secondaria più recente supportata da Cloud SQL per SQL Server esaminando le note di rilascio o i criteri di versione e versioni del database. Poco dopo il rilascio, viene eseguito l'upgrade delle istanze Cloud SQL alla versione del database più recente, così potrai trarre vantaggio dall'esecuzione del software di database più recente.

  • Patch del sistema operativo. Monitoriamo continuamente le nuove vulnerabilità di sicurezza identificate nel sistema operativo. Una volta individuato, applichiamo le patch al sistema operativo per proteggerti da nuovi rischi.

Impatto sulla manutenzione

Durante un evento di manutenzione, un'istanza di Cloud SQL per SQL Server perde la connettività in media per meno di 120 secondi.

Il tempo di inattività potrebbe essere maggiore per le istanze con un'attività elevata durante la manutenzione o che hanno set di dati molto grandi. In genere Cloud SQL pianifica la manutenzione una volta ogni qualche mese.

Puoi adottare le misure necessarie per assicurarti che la manutenzione abbia il minor impatto possibile sulle tue operazioni utilizzando le nostre impostazioni di manutenzione e rendendo i tuoi sistemi resilienti a errori temporanei.

Impostazioni di manutenzione

Cloud SQL offre la possibilità di configurare gli aggiornamenti di manutenzione tramite una serie di impostazioni di manutenzione.

Puoi configurare la manutenzione in modo che venga pianificata negli orari in cui un breve tempo di inattività causa il minor impatto sulle tue applicazioni. Per ogni istanza di Cloud SQL, puoi configurare quanto segue:

  • Periodo di manutenzione. Il giorno della settimana e l'ora in cui Cloud SQL pianifica la manutenzione. I periodi di manutenzione durano un'ora. Scopri come configurare un periodo di manutenzione.

  • Ordine di aggiornamento. Imposta l'ordine in cui l'istanza Cloud SQL viene aggiornata rispetto ad altre istanze nella stessa regione. L'ordine di aggiornamento può essere impostato su Any, Earlier o Later. Later istanze vengono aggiornate una settimana dopo Earlier istanze con lo stesso periodo di manutenzione nella stessa regione. Puoi impostare l'ordine di aggiornamento quando configuri un periodo di manutenzione.

  • Periodo in cui evitare la manutenzione. Un gruppo di giorni in cui Cloud SQL non pianifica la manutenzione. I periodi in cui evitare la manutenzione possono durare fino a 90 giorni. Scopri come configurare un periodo in cui evitare la manutenzione.

Periodi di manutenzione predefiniti

Se non imposti un periodo di manutenzione, Cloud SQL aggiorna l'istanza nelle seguenti finestre predefinite in base al fuso orario dell'istanza:

  • Finestra nei giorni feriali (da lunedì a venerdì): dalle 22:00 alle 06:00
  • Finestra weekend: venerdì, dalle 22:00 a lunedì alle 06:00

Esempio di manutenzione

Supponi di essere uno sviluppatore presso un rivenditore che gestisce un servizio di carrello degli acquisti. Hai un'istanza Cloud SQL per un ambiente di produzione e un'altra per un ambiente di gestione temporanea. Vuoi che la manutenzione venga eseguita nel momento in cui l'istanza gestisce il volume più basso di traffico, ovvero intorno alla mezzanotte della domenica. Inoltre, vuoi evitare la manutenzione durante il frenetico periodo degli acquisti per le festività di fine anno.

In questo caso, configuri le impostazioni di manutenzione dell'istanza di produzione su:

  • Periodo di manutenzione: domenica dalle 00:00 alle 01:00 ET
  • Ordine di aggiornamento: Later
  • Periodo in cui evitare la manutenzione: dal 1° novembre al 15 gennaio.

Le impostazioni di manutenzione per l'ambiente di gestione temporanea saranno identiche, ad eccezione del fatto che l'ordine di aggiornamento sarebbe impostato su Earlier. In questo modo puoi eseguire test di accettazione operativi per una release di manutenzione nella gestione temporanea almeno sette giorni prima dell'implementazione della manutenzione in produzione. Se qualcosa va storto nell'ambiente di gestione temporanea, hai tempo di diagnosticare e risolvere il problema in modo che l'ambiente di produzione non sia interessato.

Notifiche di manutenzione imminenti

Puoi ricevere una notifica via email relativa alla manutenzione imminente almeno una settimana prima della pianificazione della manutenzione. Se vuoi impostare un filtro email per le notifiche, il titolo dell'email è Manutenzione imminente per l'istanza Cloud SQL instancename.

Le notifiche per la manutenzione non vengono inviate per impostazione predefinita. Devi attivare le notifiche di manutenzione. Prima di poter ricevere le notifiche, devi selezionare anche un periodo di manutenzione.

Le notifiche vengono inviate all'indirizzo email associato al tuo Account Google. Non è possibile configurare un alias email personalizzato (ad esempio, l'alias email di un team).

Puoi attivare le notifiche di manutenzione per tutte le istanze Cloud SQL con periodi di manutenzione in un determinato progetto. Riceverai una notifica per istanza. Le notifiche di manutenzione imminente non vengono inviate per le repliche di lettura.

Puoi anche visualizzare le informazioni sulla manutenzione futura nella console Google Cloud.

  • Nell'elenco Istanze, nella colonna Manutenzione. Se la manutenzione è pianificata, vengono visualizzate la data e l'ora di inizio pianificate. Puoi filtrare l'elenco delle istanze utilizzando il termine Manutenzione per trovare tutte le istanze pianificate per la manutenzione. La colonna Manutenzione viene visualizzata solo quando la manutenzione è pianificata su una o più istanze del progetto. Se non viene pianificata alcuna manutenzione, la colonna è nascosta.
  • Nella pagina Dettagli istanza nel riquadro Manutenzione. Se la manutenzione è pianificata, in In programma vedrai una data e un'ora di inizio pianificate.
  • Nella pagina ACTIVITY della console Google Cloud puoi visualizzare un elenco delle istanze pianificate per la manutenzione. Se la manutenzione è pianificata, le istanze includono il messaggio Manutenzione SQL e la data e l'ora di avvio pianificato.

Ripianifica la manutenzione

Se hai un periodo di manutenzione per la tua istanza, puoi ripianificare la manutenzione in qualsiasi momento prima che sia attualmente pianificata la manutenzione. Ad esempio, se avvii un nuovo servizio durante il periodo di manutenzione attualmente pianificato, potresti riprogrammare il periodo di manutenzione alcuni giorni dopo il lancio.

Puoi riprogrammare la manutenzione più volte a condizione che non siano trascorsi più di 28 giorni dall'ora programmata inizialmente.

Hai alcune opzioni di pianificazione per il nuovo periodo di manutenzione:

  • Applica gli aggiornamenti immediatamente. Puoi applicare immediatamente l'aggiornamento all'istanza, anziché attendere la finestra di manutenzione pianificata. In questo caso, la manutenzione inizia generalmente entro cinque minuti.
  • Riprogramma a un'altra ora. Puoi posticipare un evento di manutenzione pianificata in due modi:

    • Finestra successiva disponibile. Questa opzione rimanda la manutenzione al successivo periodo di manutenzione disponibile successivo all'orario di manutenzione pianificato attuale, che di solito è una settimana dopo.
    • Ora specifica. Questa opzione ti consente di scegliere un orario specifico entro 28 giorni dall'orario di manutenzione originariamente pianificato.

Per ripianificare la manutenzione, consulta Ripianificare la manutenzione pianificata.

Come funziona la manutenzione

Per mantenere breve la manutenzione, Cloud SQL utilizza un flusso di lavoro di failover di manutenzione simile in gran parte al nostro flusso di lavoro di failover automatico per le istanze ad alta disponibilità.

In breve, questi sono i passaggi:

  1. Configurare una VM aggiornata con il nuovo software.
  2. Arresta la VM originale.
  3. Passa il disco e l'IP statico alla VM aggiornata.
  4. Avvia la VM aggiornata.

Scorri le schede seguenti per vedere i dettagli del flusso di lavoro, compresi pre- e post-manutenzione.

Prima della manutenzione

Prima della manutenzione, il client comunica con la VM originale tramite un indirizzo IP statico. I dati vengono archiviati su un disco permanente collegato alla VM originale. In questo esempio, per l'istanza Cloud SQL è configurata l'alta disponibilità, il che significa che un'altra VM è in standby per prendere il controllo in caso di interruzione non pianificata. L'istanza Cloud SQL gestisce il traffico verso l'applicazione.

Diagramma che mostra lo stato di pre-manutenzione

Passaggio 1

Configura la nuova VM.

Viene configurata una nuova macchina virtuale (VM) con il software di database e il sistema operativo VM più recente. Il sistema operativo della VM aggiornato è stato avviato. A questo punto, il motore del database non è ancora stato avviato. Per le istanze ad alta disponibilità, viene configurata anche una nuova VM in standby.

Il tempo di inattività totale è notevolmente ridotto installando l'aggiornamento software su un'altra VM, mentre l'istanza Cloud SQL originale continua a gestire il traffico.

Diagramma che mostra la configurazione della VM

Passaggio 2

Arresta la VM originale.

Il motore del database viene arrestato in modo che il disco possa essere scollegato dalla VM originale e collegato alla VM aggiornata. Prima dell'arresto, il motore del database attende alcuni secondi per il commit delle transazioni in corso e lo svuotamento delle richieste dalle connessioni esistenti. Dopodiché, viene eseguito il rollback di tutte le transazioni aperte o a lunga esecuzione. Il database smette di accettare nuove connessioni e quelle esistenti vengono eliminate. L'istanza non è più disponibile e inizia il tempo di inattività per la manutenzione.

Diagramma dell'istanza dopo il failover

Passaggio 3

Passa alla VM aggiornata.

Il disco viene scollegato dalla VM originale e collegato alla VM aggiornata. L'indirizzo IP statico viene riconfigurato in modo che punti alla VM aggiornata. Ciò garantisce che l'applicazione utilizzi lo stesso indirizzo IP dopo la manutenzione di prima. La cache del database viene esaurita insieme alla VM originale, il che significa che la cache del database viene svuotata completamente durante la manutenzione.

Diagramma del passaggio alla VM aggiornata

Passaggio 4

Avvia la VM aggiornata.

Il motore del database aggiornato viene avviato sul disco dati. L'utilizzo di un disco dati comune garantisce che tutte le transazioni scritte nell'istanza originale prima della manutenzione siano ancora presenti nel database aggiornato dopo la manutenzione. Se il rollback di eventuali transazioni incomplete non è stato completato durante l'arresto del database, quest'ultimo esegue automaticamente il ripristino degli arresti anomali per assicurare che venga ripristinato a uno stato utilizzabile.

Diagramma di avvio della VM aggiornata

Dopo la manutenzione

Dopo il passaggio 4, l'istanza Cloud SQL è disponibile per accettare connessioni e torna a gestire il traffico nell'applicazione.

Per l'applicazione, a parte il software aggiornato, l'istanza Cloud SQL ha lo stesso aspetto. L'applicazione continua a connettersi all'istanza Cloud SQL utilizzando lo stesso indirizzo IP statico e la VM aggiornata viene eseguita nella stessa zona della VM originale. Tutti i dati scritti nel database originale vengono conservati.

Diagramma post-manutenzione

Ridurre al minimo l'impatto della manutenzione

In generale, Google Cloud consiglia agli utenti che eseguono applicazioni nel cloud di rendere i propri sistemi resilienti a errori temporanei, che sono problemi di comunicazione tra i servizi temporanei causati da una indisponibilità temporanea. Errori temporanei occasionali sono inevitabili nel cloud.

Alcuni degli errori temporanei che si verificano durante la manutenzione sono connessioni interrotte e transazioni in corso non riuscite. Se progetti i tuoi sistemi e ottimizzi le tue applicazioni in modo che siano resilienti agli errori temporanei, puoi anche ridurre al minimo gli impatti dovuti alla manutenzione del database.

Per ridurre al minimo l'impatto delle connessioni interrotte, puoi utilizzare i pool di connessioni. Mentre le connessioni tra il pooler e il database vengono eliminate durante la manutenzione, le connessioni tra l'applicazione e il pooler vengono conservate. In questo modo, il lavoro di ristabilimento delle connessioni è trasparente per l'applicazione e viene trasferito al pooler di connessioni.

Per ridurre gli errori delle transazioni, puoi limitare il numero di transazioni a lunga esecuzione. La riscrittura delle query per renderle più ridotte ed efficienti non solo riduce i tempi di inattività per la manutenzione, ma migliora anche le prestazioni e l'affidabilità del database.

Per recuperare in modo efficiente da interruzioni di connessione e errori delle transazioni, puoi gestire le connessioni al database in modo efficiente. Puoi creare una logica di ripetizione di connessioni ed eseguire query con backoff esponenziale nelle applicazioni e nei pooler di connessioni. Se una query non riesce o viene interrotta una connessione, il sistema impone un periodo di attesa prima di riprovare, che aumenta a ogni nuovo tentativo successivo. Ad esempio, il sistema potrebbe attendere solo pochi secondi per il primo tentativo, ma fino a un minuto per il quarto. Seguendo questo pattern, avrai la certezza che questi errori vengano corretti, senza sovraccaricare il servizio.

Anche altre soluzioni creative possono ridurre al minimo gli impatti sulla manutenzione, dall'utilizzo di script per riscaldare la cache del database dopo la manutenzione alla semplificazione del numero di tabelle nei database. Ti consigliamo di seguire le best practice e le linee guida operative di gestione dei database per assicurarti che la manutenzione avvenga senza problemi.

Manutenzione tempestiva

In rarissimi casi, Cloud SQL potrebbe dover pianificare la manutenzione al di fuori delle impostazioni di manutenzione per correggere gravi problemi di stabilità o vulnerabilità sensibili al fattore tempo. Questi aggiornamenti vengono distribuiti rapidamente e Cloud SQL li conteggia come tempo di inattività in base allo SLA.

Manutenzione self-service

Cloud SQL rilascia regolarmente miglioramenti e patch del software per le vulnerabilità di sicurezza tramite nuove versioni di manutenzione installabili sulle istanze. Cloud SQL gestisce un log delle modifiche di manutenzione di Cloud SQL per ogni versione principale del motore del database. Per saperne di più, consulta i log delle modifiche per la manutenzione di Cloud SQL.

Mentre Cloud SQL pianifica gli aggiornamenti di manutenzione una volta ogni due mesi per garantire che sia installato il software più recente, puoi utilizzare la manutenzione self-service per mantenere aggiornata l'istanza se:

  • Hai bisogno di un aggiornamento prima del prossimo evento di manutenzione pianificato.
  • Vuoi recuperare il software più recente dopo aver saltato l'aggiornamento di manutenzione più recente.

Se utilizzi repliche di lettura, puoi utilizzare la manutenzione self-service per aggiornare tutte le repliche di lettura. Se specifichi l'istanza principale, la richiesta di manutenzione aggiorna tutte le repliche di lettura dell'istanza principale alla versione di manutenzione specificata. Quindi, l'istanza principale viene aggiornata alla versione di manutenzione.

Limitazioni di manutenzione

Questa sezione descrive i limiti della manutenzione di Cloud SQL.

Limitazioni per la riprogrammazione

Ci sono alcune cose da sapere sulla riprogrammazione:

  • Devi ripianificare la manutenzione almeno 24 ore prima che si verifichi l'evento di manutenzione originariamente pianificato.

  • Puoi ripianificare la manutenzione su una o più istanze del tuo progetto. Tuttavia, puoi riprogrammare solo un'istanza alla volta (la riprogrammazione collettiva non è disponibile).

  • Puoi ripianificare la manutenzione per un'ora che rientra nel periodo in cui evitare la manutenzione o anche al di fuori del periodo di manutenzione, a condizione che il periodo non rientri nel limite di 28 giorni per la riprogrammazione.

  • Se è in corso un'operazione di manutenzione, la riprogrammazione viene ritardata fino al completamento dell'operazione.

Limitazioni del periodo in cui evitare la manutenzione

Ecco alcuni aspetti da sapere sui periodi in cui evitare la manutenzione:

  • Puoi avere un periodo in cui evitare la manutenzione anche se non hai configurato periodi di manutenzione per la tua istanza. I periodi in cui evitare la manutenzione possono essere compresi tra 1 e 90 giorni.

  • Il periodo in cui evitare la manutenzione ha la precedenza su qualsiasi finestra di manutenzione pianificata. In caso di conflitto tra la tempistica di un periodo di manutenzione e il periodo in cui evitare la manutenzione, il periodo in cui evitare la manutenzione sostituisce il periodo di manutenzione.

  • I periodi in cui evitare la manutenzione e la relativa pianificazione sono funzionalità indipendenti. Un periodo di manutenzione non specificato in un'istanza Earlier non ha alcun impatto sul calcolo della pianificazione per l'istanza Later. Le notifiche non vengono inviate se la pianificazione della manutenzione rientra nel periodo di negazione della manutenzione per le istanze Earlier o Later.

  • Quando viene impostato un periodo di negazione su un'istanza principale, viene negata anche la manutenzione per tutte le repliche associate all'istanza principale. Ad esempio, un'istanza principale si trova nella regione A ha tre repliche di lettura: due nella regione A e una nella regione B. Quando è impostato un periodo di negazione sull'istanza principale, la manutenzione di ciascuna replica, inclusa quella nella regione B, non riceve alcuna manutenzione fino alla scadenza del periodo di negazione nell'istanza principale.

  • Se dopo la pianificazione della manutenzione viene impostato un periodo in cui evitare la manutenzione, in modo che questo si sovrapponga a quello pianificato per la manutenzione, l'aggiornamento viene ignorato.

  • Puoi impostare il periodo in cui evitare la manutenzione in modo che si ripeta ogni anno escludendo l'anno nei parametri delle date di inizio e di fine. Se viene specificato l'anno, il periodo di negazione della manutenzione viene impostato solo per quell'anno.

  • Puoi impostare più periodi in cui evitare la manutenzione all'interno di un anno. Ti consigliamo di evitare di concatenare i periodi di negazione per saltare gli eventi di manutenzione pianificati pianificati. È importante essere sempre aggiornati sulla manutenzione di Cloud SQL per garantire che l'istanza funzioni in modo affidabile. In genere, la manutenzione di Cloud SQL viene pianificata una volta a intervalli di qualche mese.

  • Per garantire l'affidabilità del servizio, Cloud SQL può comunicare agli utenti con istanze che eseguono release di manutenzione risalenti a più di 12 mesi fa che è richiesta la successiva implementazione della manutenzione.

  • Al termine di un periodo in cui evitare la manutenzione, riprende il comportamento normale.

  • I periodi in cui evitare la manutenzione non influiscono sulle operazioni attivate dall'utente, ad esempio prevede la manutenzione self-service.

Domande frequenti sulla manutenzione

I tempi di inattività della manutenzione sono inclusi nel calcolo dello SLA (accordo sul livello del servizio)?

I tempi di inattività della normale manutenzione non vengono conteggiati ai fini dello SLA (accordo sul livello del servizio). Tuttavia, Cloud SQL conteggia i tempi di inattività per la manutenzione sensibili al tempo in base allo SLA (accordo sul livello del servizio).

In che modo la manutenzione influisce sulle repliche di lettura?

  • Cloud SQL gestisce sempre le repliche di lettura prima dell'istanza principale. Se l'istanza principale ha un periodo di manutenzione, le repliche di lettura osservano lo stesso periodo.
  • Se l'istanza principale ha più repliche di lettura, Cloud SQL potrebbe aggiornarne alcune contemporaneamente.
  • Le repliche di lettura osservano il periodo in cui evitare la manutenzione impostato per l'istanza principale.

Posso annullare la manutenzione pianificata?

Non puoi annullare un periodo di manutenzione pianificato, ma puoi riprogrammarlo. Puoi anche configurare un periodo di negazione della manutenzione che si sovrapponga al tempo di manutenzione pianificato per saltare in modo efficace la manutenzione.

Cosa succede se l'evento di manutenzione viene annullato?

Se Cloud SQL annulla un evento di manutenzione, riceverai una notifica che ti informa che la manutenzione viene annullata in anticipo, se possibile.

Riceverai una nuova notifica della manutenzione imminente quando l'evento di manutenzione viene ripianificato.

La manutenzione di Cloud SQL è cumulativa?

Gli aggiornamenti di manutenzione sono cumulativi. Non è necessario applicare ogni aggiornamento di manutenzione che potresti aver perso. La versione più recente della manutenzione viene applicata al successivo aggiornamento di manutenzione pianificato. In alternativa, puoi applicare l'ultimo aggiornamento di manutenzione utilizzando la manutenzione self-service.

Quanto tempo richiede la manutenzione self-service per tutte le repliche di lettura di un'istanza principale?

La quantità di tempo necessaria per un aggiornamento di manutenzione self-service dipende dal numero totale di repliche di lettura dell'istanza principale. Per ridurre il tempo che potrebbe richiedere l'aggiornamento di manutenzione self-service, puoi aggiornare alcune repliche di lettura singolarmente, quindi eseguire l'aggiornamento sull'istanza principale per aggiornare il resto delle repliche di lettura.

Il secondo aggiornamento ignora le repliche già presenti nella versione di manutenzione target.

Se dispongo di più repliche di lettura della mia istanza principale, posso eseguire la manutenzione self-service su una singola replica di lettura?

Sì, puoi eseguire la manutenzione self-service su una singola istanza di replica di lettura. Tuttavia, ti consigliamo di aggiornare il resto delle repliche di lettura e dell'istanza principale alla stessa versione di manutenzione subito dopo. Ti consigliamo di utilizzare tutte le repliche di lettura e l'istanza principale con una versione di manutenzione identica.

Passaggi successivi