Informazioni sulla replica in Cloud SQL

Per replica si intende la capacità di creare copie di un'istanza Cloud SQL o di un e trasferire il lavoro alle copie.

Introduzione

Il motivo principale per cui utilizzare la replica è scalare l'utilizzo dei dati in un database senza degradare 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, è possibile promuovere una replica se l'istanza originale si danneggia.

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

Quando si fa riferimento a un database on-premise, lo scenario di replica è chiamato replica da un server esterno. In questo scenario, il database che viene replicato è il server del database di origine. Le copie che si trovano in Cloud SQL sono chiamate repliche Cloud SQL. Esiste anche un'istanza che rappresenta il server del database di origine in Cloud SQL, chiamata 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 in una regione in cui si è verificata un'interruzione del servizio. Puoi anche promuovere una replica per sostituire una dell'istanza danneggiata.

Cloud SQL supporta i seguenti tipi di repliche:

Puoi anche utilizzare Database Migration Service per la replica continua da un server database di origine a Cloud SQL. Nota: Cloud SQL consente agli utenti di gestire la propria replica utilizzando le funzionalità di replica logica di PostgreSQL.

Cloud SQL non supporta la replica tra due server esterni.

Repliche di lettura

Utilizza una replica di lettura per scaricare il lavoro da un'istanza Cloud SQL. Letture è una copia esatta dell'istanza principale. I dati e altre modifiche nell'istanza principale vengono aggiornati quasi in tempo reale nella replica di lettura.

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

Puoi connetterti a una replica direttamente utilizzando il nome della connessione e l'indirizzo IP. Se ti connetti a una replica utilizzando un indirizzo IP privato, non devi creare un'altra connessione privata VPC per la replica perché la connessione viene ereditata dall'istanza principale.

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

Come best practice, inserisci le repliche di lettura in una zona diversa da quella principale quando utilizzi l'alta disponibilità sull'istanza principale. Questa pratica garantisce che le repliche di lettura continuino a funzionare quando si verifica un'interruzione nella zona contenente l'istanza principale. Consulta le Panoramica dell'alta disponibilità per ulteriori informazioni.

Selezione di un tipo di macchina appropriato

Le repliche di lettura possono avere un tipo di macchina diverso da quello della principale. Tu dovresti monitorare le metriche sui tuoi come l'utilizzo di CPU e memoria per assicurarti che l'istanza di replica sia dimensionata correttamente per il carico di lavoro soprattutto se è più piccola dell'istanza principale. Un'istanza replica di dimensioni ridotte è più soggetta a scarse prestazioni, ad esempio eventi di esaurimento della memoria (OOM) frequenti.

Impatto sul flag max_connections quando la replica di lettura ha un tipo di macchina con meno memoria rispetto alla principale

In un'istanza PostgreSQL, se non imposti il flag max_connections su un valore a tua scelta, Cloud SQL lo imposta automaticamente in base alla quantità di memoria dell'istanza. Per ulteriori informazioni, consulta i flag supportati. PostgreSQL richiede che il valore di max_connections sia sempre almeno uguale a quello di una replica di lettura rispetto a quello della principale. Di conseguenza, se una replica di lettura ha meno memoria principale e non hai impostato il flag max_connections, potrebbe ereditare un valore maggiore di max_connections in base alle dimensioni dell'istanza principale. In questa situazione, se fai affidamento sull'impostazione max_connections per limitare il numero di connessioni all'istanza replica, questa potrebbe essere sovraccaricata perché il valore è troppo elevato rispetto al tipo di macchina dell'istanza. Per evitare che ciò accada, puoi procedere in uno dei seguenti modi:

  1. Ridimensiona l'istanza di replica a un tipo di macchina più grande.
  2. Configura l'applicazione client per limitarla a un numero limitato di connessioni minore del valore di max_connections.
  3. Imposta il flag max_connections sulla tabella principale e sulla replica su un valore appropriato.

Operazioni sugli indici hash che utilizzano le repliche di lettura

Le operazioni di indice di hash non utilizzano write-ahead-logging per PostgreSQL 9.6. Cloud SQL ha una sola versione disponibile in PostgreSQL 10. Questo è documentato riquadro di attenzione giallo Pagina di rilascio di PostgreSQL. Questo vale anche per le repliche di lettura di Cloud SQL.

Poiché gli aggiornamenti dell'indice di hash non si propagano alla replica di lettura in PostgreSQL 9.6, non possono essere utilizzati dalla replica. Come soluzione alternativa, puoi non avere repliche di lettura eseguire l'upgrade a una versione principale di PostgreSQL (10 o versioni successive).

Repliche di lettura tra regioni

La replica tra regioni consente di creare una replica di lettura in una regione diversa da quella dell'istanza principale. Puoi creare una replica di lettura tra regioni nello stesso modo in cui crei una replica all'interno della regione.

Repliche tra regioni:

  • Migliora le prestazioni di lettura rendendo disponibili le repliche più vicine alla regione della tua applicazione.
  • Fornisce funzionalità aggiuntive di ripristino di emergenza per la protezione da un errore.
  • Consente di eseguire la migrazione dei dati da una regione a un'altra.

Consulta la sezione Promozione per la migrazione a livello di regione o il ripristino di emergenza sulle repliche tra regioni.

Repliche di lettura con struttura a cascata

La replica a cascata consente di creare una replica di lettura sotto un'altra replica di lettura nella stessa regione o in un'altra. I seguenti scenari sono casi d'uso per l'utilizzo repliche a cascata:

  • Ripristino di emergenza: puoi utilizzare una gerarchia di repliche di lettura a cascata per simulare la topologia dell'istanza principale e delle sue repliche di lettura. Durante un un'interruzione del servizio, la replica di lettura selezionata viene promossa a principale e le repliche di lettura con la nuova istanza principale continuano a replicarsi e sono pronti per l'uso.
  • Miglioramenti delle prestazioni: riduci il carico sull'istanza principale sgravando il lavoro di replica su più repliche di lettura.
  • Operazioni di lettura della scalabilità: puoi avere più repliche per condividere il carico di lettura.
  • Riduzione dei costi: puoi ridurre i costi di networking utilizzando un'unica replica a cascata con la replica tra regioni in altre regioni.

Terminologia

  • Replica a cascata: una replica di lettura che può avere la propria replica.
  • Livelli: puoi creare livelli di repliche in una gerarchia di repliche a cascata. Ad esempio, se aggiungi quattro repliche a un'istanza, due repliche sono allo stesso livello.
  • Istanze di pari livello: repliche multiple che si replicano dalla stessa istanza principale in esecuzione in un'istanza Compute Engine. I fratelli si trovano allo stesso livello nella gerarchia delle repliche. Una replica può avere ufficialmente fino a otto fratelli.
  • Replica foglia: una replica di lettura che non ha 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. Se promossa, la replica a cascata della replica viene mantenuta la gerarchia.

Configura repliche a cascata

Le repliche con struttura a cascata ti 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 nella parte superiore di una gerarchia di repliche a cascata, diventa un'istanza principale e le relative repliche a cascata continuano a essere replicate.

Per pianificare la configurazione, devi avere un obiettivo per ciò che viene che le repliche hanno intenzione di eseguire. 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 ti aiutano a recuperare rapidamente durante un'interruzione, considera il seguente scenario di replica:

Configurazione

Rappresenta la configurazione della replica a cascata con
             in una regione separata

Interruzione

Raffigura la promozione o la replica durante un'interruzione

Promozione

Raffigura la nuova istanza con le repliche

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

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

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

Nella scheda Interruzione, in caso di interruzione nella regione A, la replica a cascata viene promosso a istanza principale. Contiene già repliche di lettura. riducendo il Recovery Time Objective (RTO).

Nella scheda Esegui promozione, noterai che quando viene promossa una replica a cascata, vengono promosse anche le sue repliche, che continuano a essere replicate al di sotto.

Replica su più regioni

Un altro caso d'uso delle repliche a cascata è distribuire la capacità di lettura a un seconda regione in modo conveniente. Le repliche C e D possono essere che ha creato la replica dalla replica B. I client possono distribuire le 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 addebitato una sola volta, dall'istanza principale alla replica B. La replica da B a C e D utilizza il trasferimento di rete all'interno della regione, che è gratuito.

Puoi creare una gerarchia di massimo quattro istanze utilizzando le repliche a cascata per la replica multiregione:

Principale A → Replica B → Replica C e Replica D

Limitazioni

  • Non puoi eliminare una replica contenente delle repliche al suo interno. Per eliminare la replica, devi iniziare con le repliche di foglia e arrivare verso l'alto attraverso nella gerarchia.
  • La dipendenza circolare delle regioni non è supportata. Per avere la replica di una replica a cascata nella stessa regione dell'istanza principale, anche la replica a cascata deve trovarsi nella stessa regione.

Replica logica

Cloud SQL ti consente di configurare le tue soluzioni di replica utilizzando le funzionalità di replica logica di PostgreSQL. La replica logica è un ambiente che consente:

  • Replica standard da un'istanza principale a una replica
  • Replica selettiva solo di alcune tabelle o righe
  • Replica tra le principali versioni di PostgreSQL
  • Replica in database non PostgreSQL
  • Flussi di lavoro Change Data Capture (CDC) in cui tutte le modifiche al database vengono trasmesse in modalità flusso per un consumatore

Per ulteriori informazioni, consulta Configurare la replica logica. La pagina include informazioni su:

  • Replica logica integrata
  • L'estensione pglogical

Casi d'uso della replica

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

Nome Principale Replica Vantaggi e casi d'uso Ulteriori informazioni
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 Analytics
  • Ulteriore funzionalità di ripristino di emergenza
  • Migliora prestazioni di lettura
  • Eseguire la migrazione dei dati tra regioni
Replica logica Qualsiasi istanza PostgreSQL Qualsiasi istanza PostgreSQL o un consumatore esterno
  • Replica dall'esterno di Cloud SQL
  • Replica tra versioni PostgreSQL
  • Replica solo un sottoinsieme di dati in alcune tabelle, utilizzando righe e filtri delle colonne. Vedi anche pglogical 2.1 e replica logica in PostgreSQL 10.
  • Replica su destinazioni non PostgreSQL (modificare l'acquisizione dei dati)

Fatturazione

  • Per una replica di lettura viene addebitata la stessa tariffa di una replica di lettura Cloud SQL standard in esecuzione in un'istanza Compute Engine. Non è previsto alcun costo per la replica dei dati.
  • I prezzi di una replica di lettura tra regioni sono gli stessi che per la creazione di una nuova Cloud SQL nella regione. Consulta Prezzi delle istanze Cloud SQL e seleziona il regione appropriata. Oltre al costo standard associato un'istanza tra regioni comporta addebiti per il 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 Cloud SQL

Argomento Discussione
Backup Non puoi configurare i backup sulla replica.
Core e memoria Le repliche di lettura possono utilizzare un numero di core e una quantità di memoria diversi da quelle dell'istanza principale.
Eliminazione dell'istanza principale Prima di poter eliminare un'istanza principale, devi promuovere tutte le sue repliche di lettura a istanze autonome o eliminarle.
Eliminazione della replica L'eliminazione di una replica non influisce sullo stato della replica dell'istanza principale.
Disattivare il logging write-ahead Prima di poter disabilitare i log write-ahead in un'istanza principale devi promuovere o eliminare tutte le repliche di lettura.
Failover Un'istanza principale può eseguire il failover a una replica solo se si tratta di una replica di RE. Durante un'interruzione non è possibile eseguire il failover delle repliche di lettura in nessun modo.
Alta disponibilità Le repliche di lettura ti consentono di abilitare l'alta disponibilità sulle repliche.
Bilanciamento del carico Cloud SQL non fornisce bilanciamento del carico tra le repliche. Puoi scegliere di implementare il bilanciamento del carico per l'istanza Cloud SQL. Puoi anche utilizzare il pooling delle connessioni per distribuire le query tra le repliche con la configurazione del bilanciamento del carico per migliorare le prestazioni.
Periodi di manutenzione Le repliche di lettura condividono i periodi di manutenzione con l'istanza principale. Le repliche seguono le impostazioni di manutenzione per l'istanza principale, inclusi il periodo di manutenzione, la ripianificazione e il periodo in cui evitare la manutenzione. Durante la manutenzione, Cloud SQL aggiorna prima tutte le repliche di lettura prima di aggiornare l'istanza principale.
Più repliche di lettura Cloud SQL supporta le repliche a cascata. Di conseguenza, puoi creare fino a 10 repliche per una singola e creare repliche di queste repliche, fino a un massimo di quattro livelli. inclusa l'istanza principale.
IP privato Se ti connetti a una replica utilizzando un indirizzo IP privato, una connessione privata VPC aggiuntiva per la replica, poiché viene ereditato 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, devi promuovere o eliminare tutte le relative repliche.
Impostazioni Le impostazioni dell'istanza principale vengono propagate alla replica, incluse la password per l'utente postgres e le modifiche alla tabella utente.
Arresto di una replica Non puoi stop una replica. Puoi restart, delete o disable replication, ma non puoi interromperla come faresti con un'istanza principale.
Upgrade di una replica in corso Le repliche di lettura possono subire un upgrade fastidioso in qualsiasi momento.
Tabelle utente Non puoi apportare modifiche alla replica. Tutti gli utenti e le modifiche devono essere apportate all'istanza principale.

Passaggi successivi