Informazioni sulla replica in Cloud SQL

La replica è la capacità di creare copie di un'istanza Cloud SQL o di un database on-premise e di trasferire il lavoro sulle copie.

Introduzione

Il motivo principale per utilizzare la replica è scalare l'uso dei dati in un database senza compromettere le prestazioni.

Altri motivi sono:

  • Migrazione dei dati tra regioni
  • Migrazione dei dati tra piattaforme
  • Migrazione dei dati da un database on-premise a Cloud SQL

Inoltre, una replica potrebbe essere promossa se l'istanza originale diventa danneggiata.

Quando fai riferimento a un'istanza Cloud SQL, l'istanza replicata è denominata istanza principale e le copie sono chiamate repliche di lettura. L'istanza principale e le repliche di lettura si trovano in Cloud SQL.

Quando fai riferimento a un database on-premise, lo scenario di replica è chiamato replica da un server esterno. In questo scenario, il database replicato è il server del database di origine. Le copie che risiedono in Cloud SQL sono chiamate repliche Cloud SQL. Esiste anche un'istanza che rappresenta il server di database di origine in Cloud SQL, denominata istanza di rappresentazione dell'origine.

In uno scenario di ripristino di emergenza, puoi promuovere una replica per convertirla in un'istanza principale. In questo modo, puoi utilizzarlo al posto di un'istanza che si trova in un'area geografica in cui è in corso un'interruzione. Puoi anche promuovere una replica per sostituire un'istanza danneggiata.

Cloud SQL supporta i seguenti tipi di repliche:

Puoi anche utilizzare Database Migration Service per la replica continua da un server di database di origine a Cloud SQL.

Cloud SQL non supporta la replica tra due server esterni. Tuttavia, Cloud SQL supporta la replica basata su GTID (Global Transaction Identifier). I GTID identificano in modo univoco ogni transazione sul server e all'interno di una configurazione di replica. Poiché ogni transazione ha un identificatore univoco, il server MySQL può tenere traccia delle transazioni eseguite. Un GTID utilizza le coordinate assolute in modo che la replica di un'istanza Cloud SQL possa puntare alla sua istanza principale. Inoltre, non devi specificare un nome file per il log binario o una posizione nell'istruzione CHANGE MASTER. Il numero di errori nelle repliche e nel recupero point-in-time è minore. Per via di questi vantaggi, non puoi disabilitare la replica basata su GTID in Cloud SQL.

Repliche di lettura

Puoi utilizzare una replica di lettura per trasferire il lavoro da un'istanza Cloud SQL. La replica di lettura è una copia esatta dell'istanza principale. I dati e altre modifiche all'istanza principale vengono aggiornati quasi in tempo reale nella replica di lettura.

Le repliche di lettura sono di sola lettura e non puoi scriverle. La replica di lettura elabora le query, le richieste di lettura e il traffico di analisi, riducendo così il carico sull'istanza principale.

Ti connetti a una replica direttamente utilizzando il nome e l'indirizzo IP della connessione. Se ti connetti a una replica utilizzando un indirizzo IP privato, non è necessario creare una connessione privata VPC aggiuntiva per la replica, poiché la connessione viene ereditata dall'istanza principale.

Per informazioni su come creare una replica di lettura, consulta Creazione delle repliche di lettura. Per informazioni sulla gestione di una replica di lettura, consulta Gestione delle repliche di lettura.

Come best practice, posiziona le repliche di lettura in una zona diversa da quella dell'istanza principale quando utilizzi l'alta disponibilità nell'istanza principale. Questa pratica garantisce che le repliche di lettura continuino a funzionare quando la zona che contiene l'istanza principale ha un'interruzione. Per ulteriori informazioni, consulta la Panoramica dell'alta disponibilità.

Selezione di un tipo di macchina appropriato

Le repliche di lettura possono avere un tipo di macchina diverso da quello principale. Devi monitorare le metriche dell'istanza, come l'utilizzo di CPU e memoria, per garantire che le dimensioni dell'istanza di replica siano adeguate al relativo carico di lavoro, soprattutto se è più piccola dell'istanza principale. Un'istanza di replica di dimensioni ridotte è più soggetta a prestazioni scadenti, come frequenti eventi di esaurimento della memoria (OOM).

Repliche di lettura tra regioni

La replica tra regioni consente di creare una replica di lettura in una regione diversa dall'istanza principale. Puoi creare una replica di lettura tra regioni nello stesso modo in cui crei una replica nella regione.

Repliche tra regioni:

  • Migliora le prestazioni di lettura rendendo le repliche disponibili più vicino alla regione della tua applicazione.
  • Fornire ulteriori funzionalità di ripristino di emergenza per evitare un errore a livello di regione.
  • Puoi eseguire la migrazione dei dati da una regione a un'altra.

Per saperne di più sulle repliche tra regioni, consulta Promozione di repliche per la migrazione a livello di regione o il ripristino di emergenza.

Sequenza delle repliche di lettura

La replica a cascata consente di creare una replica di lettura in un'altra replica di lettura nella stessa regione o in un'altra regione. Di seguito sono riportati alcuni casi di utilizzo di repliche a cascata:

  • Ripristino di emergenza: puoi utilizzare una gerarchia a cascata di repliche di lettura per simulare la topologia dell'istanza principale e delle sue repliche di lettura. Durante un'interruzione, la replica di lettura selezionata viene promossa a principale e le repliche di lettura al di sotto di quella nuova continuano a essere replicate e sono pronte per l'uso.
  • Miglioramenti delle prestazioni: riduci il carico sull'istanza principale trasferendo il lavoro di replica a più repliche di lettura.
  • Scalabilità di lettura: puoi avere più repliche per condividere il carico di lettura.
  • Riduzione dei costi: puoi ridurre i costi di networking utilizzando una singola replica a cascata con la replica tra regioni in altre regioni.

Terminologia

  • Replica a cascata: una replica di lettura che ha una propria replica.
  • Livelli: puoi creare livelli di repliche in una gerarchia di replica a cascata. Ad esempio, se aggiungi quattro repliche a un'istanza, queste saranno allo stesso livello.
  • Istanze di pari livello: più repliche che vengono replicate dalla stessa istanza principale. Gli elementi di pari livello si trovano allo stesso livello nella gerarchia di replica. Una replica può ufficialmente avere fino a nove fratelli e sorelle.
  • Replica foglia: una replica di lettura che non dispone di repliche proprie. In una gerarchia di replica multilivello, la replica foglia è l'ultimo livello.
  • Promuovi: un'azione che converte una replica, a qualsiasi livello della gerarchia, in un'istanza principale. Una volta promossa, la gerarchia delle repliche a cascata viene mantenuta.

Configura repliche a cascata

Le repliche a cascata consentono di aggiungere repliche di lettura a qualsiasi replica esistente. Puoi aggiungere fino a quattro livelli di repliche, inclusa l'istanza principale. Quando promuovi la replica al vertice di una gerarchia di repliche a cascata, questa diventa un'istanza principale e le repliche a cascata continuano a essere replicate.

Per pianificare la configurazione, devi avere un obiettivo per l'obiettivo delle repliche di lettura. Le due sezioni successive descrivono le configurazioni per il ripristino di emergenza e la replica su più regioni.

Ripristino di emergenza

Per capire in che modo le repliche a cascata consentono un ripristino rapido durante un'interruzione, considera il seguente scenario di replica:

Configurazione

Diagramma di una configurazione di replica a cascata con la replica a cascata in una regione separata

Interruzione

Diagramma della promozione durante un'interruzione

Promozione

Diagramma della nuova istanza con repliche

Se vuoi utilizzare un'istanza nella regione B in una configurazione di ripristino di emergenza e hai:

  • Repliche nella stessa regione collegate all'istanza principale (Replica A)
  • Repliche in altre regioni (Replica a cascata) collegate all'istanza principale.

Puoi creare repliche di lettura nella replica a cascata nella regione B.

Se si verifica un'interruzione nella regione A nella scheda Interruzione, la replica a cascata viene promossa a istanza principale. Ha già repliche di lettura al di sotto, riducendo l'RTO (Recovery Time Objective).

Nella scheda Promuovi, puoi notare che, quando viene sponsorizzata una replica a cascata, vengono promosse anche le relative repliche e continuano a essere replicate al suo interno.

Replica su più regioni

Un altro caso d'uso delle repliche a cascata è distribuire la capacità di lettura a una seconda regione in modo conveniente. È possibile creare repliche a cascata C e D che replicano dalla replica B. I client possono distribuire query di lettura tra le repliche B, C e D per ridurre il carico su ogni replica. Il costo del traffico di rete tra regioni viene sostenuto una sola volta, dall'istanza principale alla Replica B. La replica da B a C e D utilizza il trasferimento di rete nell'area geografica, che è gratuito.

Puoi creare una gerarchia di massimo quattro istanze utilizzando repliche a cascata per la replica su più regioni:

Primaria A → Replica B → Replica C e Replica D

Limitazioni

  • Non puoi eliminare una replica con repliche al di sotto. Per eliminare la replica, devi iniziare con le repliche foglia e procedere fino alla gerarchia.
  • La dipendenza dalla regione circolare non è supportata. Per avere la replica di una replica a cascata nella stessa regione dell'istanza principale, anche questa deve trovarsi nella stessa regione.

Repliche di lettura esterne

Le repliche di lettura esterne sono istanze MySQL esterne che vengono replicate da un'istanza principale di Cloud SQL. Ad esempio, un'istanza MySQL in esecuzione su Compute Engine è considerata un'istanza esterna.

Le repliche di lettura esterne hanno le seguenti limitazioni:

  • Potrebbe non essere possibile replicare su un'istanza MySQL ospitata da un'altra piattaforma cloud; consulta la documentazione dell'altro provider. Ad esempio, l'impostazione del campo di configurazione replicate-ignore-db è obbligatoria e i provider cloud in cui non è consentito non sono supportati. Per gli altri campi di configurazione obbligatori, consulta Configurazione delle repliche esterne.
  • Se la replica viene interrotta per alcune ore, ad esempio a causa di un'interruzione della rete o del server, la replica resta indietro rispetto a quella principale. La replica si recupera quando si riconnette all'istanza principale e avvia di nuovo la replica. Tuttavia, se la replica viene interrotta per un periodo più lungo rispetto al tempo di conservazione dei log di replica di Cloud SQL (sette backup), devi eliminare la replica e crearne una nuova.
  • I dati che passano dalla replica principale a quella esterna vengono addebitati come trasferimento di dati in uscita. Consulta la pagina dei pricing per conoscere i prezzi di Data Transfer per il tuo tipo di istanza Cloud SQL.

Casi d'uso relativi alla replica

I seguenti casi d'uso si applicano a ogni tipo di replica.

Nome Principale Replica Vantaggi e casi d'uso Informazioni dettagliate
Replica in lettura Istanza Cloud SQL Istanza Cloud SQL
  • Capacità di lettura aggiuntiva
  • Target di Analytics
Replica di lettura tra regioni Istanza Cloud SQL Istanza Cloud SQL
  • Capacità di lettura aggiuntiva
  • Target di Analytics
  • Funzionalità aggiuntive di ripristino di emergenza
  • Migliora le prestazioni di lettura
  • Eseguire la migrazione dei dati tra regioni
Replica di lettura esterna Istanza Cloud SQL Istanza MySQL esterna a Cloud SQL
  • Latenza ridotta per le connessioni esterne
  • Target di Analytics
  • Percorso di migrazione ad altre piattaforme
Replica da un server esterno Istanza MySQL esterna a Cloud SQL Istanza Cloud SQL per MySQL
  • Percorso di migrazione a Cloud SQL
  • Replica dei dati in Google Cloud Platform
  • Target di Analytics

Prerequisiti per la creazione di una replica di lettura

Prima di poter creare una replica di lettura di un'istanza Cloud SQL principale, l'istanza deve soddisfare i seguenti requisiti:

  • I backup automatici devono essere abilitati.
  • Il logging binario deve essere abilitato e richiede l'abilitazione del recupero point-in-time. Scopri di più sull'impatto di questi log.
  • Deve essere stato creato almeno un backup dopo l'abilitazione del logging binario.

Requisiti aggiuntivi per la replica esterna:

  • La versione MySQL della replica deve essere uguale o superiore alla versione MySQL dell'istanza principale. Scopri di più.
  • Per motivi di sicurezza, devi configurare SSL/TLS sulla tua istanza principale. Scopri di più.

Impatto dell'abilitazione del logging binario

Devi abilitare il recupero point-in-time per abilitare il logging binario nell'istanza principale in modo da supportare le repliche di lettura. Ciò ha le seguenti conseguenze:

  • Overhead per le prestazioni

    Cloud SQL utilizza la replica basata su righe con i flag MySQL sync_binlog=1 e innodb_support_xa=true. Di conseguenza, per ogni operazione di scrittura è richiesto un ulteriore fsync del disco, che riduce le prestazioni.

  • Overhead per l'archiviazione

    L'archiviazione dei log binari viene addebitata alla stessa tariffa dei dati normali. I log binari vengono automaticamente troncati all'età del backup automatico meno recente. Attualmente Cloud SQL conserva i sette backup automatici più recenti e tutti i backup on demand. La dimensione dei log binari, e quindi la quantità addebitata, dipende dal carico di lavoro. Ad esempio, un carico di lavoro con scrittura elevata consuma più spazio di log binario rispetto a un carico di lavoro di lettura.

    Puoi visualizzare le dimensioni dei log binari utilizzando il comando MySQL SHOW BINARY LOGS.

    Quando vengono eseguiti i backup, i log vengono archiviati nel backup insieme ai dati.

Logging binario sulle repliche di lettura

  • Il logging binario è supportato sulle istanze di replica di lettura (solo MySQL 5.7 e 8.0). Puoi abilitare il logging binario su una replica con gli stessi comandi API dell'istanza principale, utilizzando il nome dell'istanza della replica anziché quello dell'istanza principale. Tieni presente che i termini enable binary logging e enable point-in-time recovery sono interscambiabili.

    La durabilità del logging binario sull'istanza di replica (ma non sull'istanza principale) può essere impostata con il flag sync_binlog, che controlla la frequenza con cui il server MySQL sincronizza il log binario su disco.

    Il logging binario può essere abilitato su una replica anche quando il backup è disabilitato sull'unità principale.

    Se una replica con questo valore impostato viene promossa a server autonomo, l'impostazione viene reimpostata sul valore di sicurezza 1 nel server autonomo.

Fatturazione

  • Una replica di lettura viene addebitata alla stessa tariffa di un'istanza Cloud SQL standard. Non è previsto alcun costo per la replica dei dati.
  • Per le repliche esterne, i dati che passano dalla replica principale a quella esterna vengono addebitati come trasferimento di dati. Consulta la pagina dei pricing per conoscere i prezzi di Data Transfer per il tuo tipo di istanza Cloud SQL.
  • I prezzi per una replica di lettura tra regioni sono gli stessi della creazione di una nuova istanza Cloud SQL nella regione. Consulta la pagina relativa ai prezzi delle istanze Cloud SQL e seleziona la regione appropriata. Oltre al normale costo associato all'istanza, una replica tra regioni è soggetta ai costi del trasferimento di dati tra regioni per i log di replica inviati dall'istanza principale all'istanza di replica, come descritto in Prezzi del traffico in uscita dalla rete.

Riferimento rapido per le repliche di lettura di Cloud SQL

Argomento Discussione
Backup Non puoi configurare i backup nella replica.
Core e memoria Le repliche di lettura possono utilizzare un numero di core e una quantità di memoria diversi da quelli dell'istanza principale.
Eliminazione dell'istanza principale Prima di poter eliminare un'istanza principale, devi promuovere tutte le relative repliche di lettura a istanze autonome o eliminare le repliche di lettura.
Eliminazione della replica L'eliminazione di una replica non ha alcun impatto sullo stato dell'istanza principale.
Disabilitazione del logging binario Prima di poter disabilitare i log binari su un'istanza principale, devi promuovere o eliminare tutte le relative repliche di lettura.
Esegui il failover Un'istanza principale non può eseguire il failover a una replica di lettura e le repliche di lettura non possono eseguire il failover in alcun modo durante un'interruzione.
Alta disponibilità Le repliche di lettura consentono di abilitare l'alta disponibilità sulle repliche.
Bilanciamento del carico Cloud SQL non fornisce il bilanciamento del carico tra le repliche. Puoi scegliere di implementare il bilanciamento del carico per la tua istanza Cloud SQL. Per migliorare le prestazioni, puoi anche utilizzare il pooling della connessione per distribuire le query tra le repliche in base alla configurazione del bilanciamento del carico.
Periodi di manutenzione I periodi di manutenzione non possono essere impostati per le repliche di lettura e non condividono i periodi di manutenzione con l'istanza principale. La manutenzione può avvenire in qualsiasi momento sulla replica di lettura. La manutenzione delle repliche di lettura avviene in un momento diverso rispetto all'istanza principale.
Più repliche di lettura Cloud SQL supporta le repliche a cascata. Di conseguenza, puoi creare fino a 10 repliche per una singola istanza principale e le repliche possono essere concatenate per un massimo di quattro livelli, incluso quello principale.
Replica parallela Per informazioni sull'utilizzo della replica parallela per migliorare le prestazioni, consulta la pagina sulla configurazione della replica parallela.
IP privato Se ti connetti a una replica utilizzando un indirizzo IP privato, non è necessario creare una connessione privata VPC aggiuntiva per la replica, poiché viene ereditata dall'istanza principale.
Ripristino dell'istanza principale Non puoi ripristinare l'istanza principale di una replica mentre la replica esiste. Prima di ripristinare un'istanza da un backup o di eseguire un recupero point-in-time su quest'ultimo, devi promuovere o eliminare tutte le relative repliche.
Impostazioni Le impostazioni di MySQL dell'istanza principale vengono propagate alla replica, incluse la password root e le modifiche alla tabella degli utenti. Le modifiche a CPU e memoria non vengono propagate alla replica.
Arresto di una replica Non puoi stop una replica. Puoi eseguire restart, delete o disable replication sull'istanza, ma non puoi arrestarla perché puoi utilizzare un'istanza principale.
Upgrade di una replica Le repliche di lettura possono subire un upgrade anomalo in qualsiasi momento.
Tabelle utente Non puoi apportare modifiche alla replica. Tutte le modifiche utente devono essere apportate all'istanza principale.

Passaggi successivi