La replica è la possibilità di creare copie di un'istanza Cloud SQL o di un database on-premise e di scaricare il lavoro sulle copie.
Introduzione
Il motivo principale per l'utilizzo della replica è scalare l'utilizzo dei dati in un 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 viene danneggiata.
Quando si fa riferimento a un'istanza Cloud SQL, l'istanza 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 viene chiamato da un server esterno. In questo scenario, il database viene replicato è il server di database di origine. Le copie che risiedono in Le risorse Cloud SQL sono chiamate repliche Cloud SQL. C'è anche un che rappresenta il server del database di origine in Cloud SQL l'istanza di rappresentazione di 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 regione in cui si è verificata un'interruzione. Puoi anche promuovere una replica per sostituire un'istanza danneggiata.
Cloud SQL supporta i seguenti tipi di repliche:
- Repliche di lettura
- Repliche di lettura tra regioni
- Repliche di lettura con struttura a cascata
- Repliche di lettura esterne
- Repliche Cloud SQL, durante la replica da un server esterno
Cloud SQL non supporta la replica tra due server esterni.
Tuttavia, Cloud SQL supporta la replica basata sull'ID transazione globale (GTID).
I GTID identificano in modo univoco ogni transazione sul server e all'interno di un
e la configurazione della replica. Poiché ogni transazione ha un identificatore univoco, il
server MySQL può tenere traccia delle transazioni che ha eseguito. Un GTID utilizza valori assoluti
in modo che la replica di un'istanza Cloud SQL possa puntare alla sua
e non è necessario specificare un nome file per il log binario o
media nell'istruzione CHANGE MASTER
. Ci sono meno errori
con repliche e recupero point-in-time. A causa di questi vantaggi,
non puoi disattivare 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. 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.
Ti connetti a una replica utilizzando il nome e l'indirizzo IP della connessione. 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 prassi garantisce che le repliche di lettura continuano a funzionare quando la zona che contiene si è verificata un'interruzione del servizio. 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 della principale. Devi monitorare le metriche della tua istanza, ad esempio l'utilizzo di CPU e memoria, per assicurarti che le dimensioni dell'istanza replica siano corrette per il relativo carico di lavoro, soprattutto se è più piccola dell'istanza principale. Un'istanza di replica è sottodimensionato è maggiormente soggetta a prestazioni scadenti, come eventi (OOM).
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 allo stesso modo quando crei un replica nella regione.
Repliche tra regioni:
- Migliora le prestazioni di lettura rendendo disponibili le repliche più vicino al tuo della regione dell'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 delle repliche con struttura a cascata:
- Ripristino di emergenza: puoi utilizzare una gerarchia a cascata di repliche di lettura per simulare la topologia dell'istanza principale e delle relative 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 con struttura a cascata: una replica di lettura che può avere una propria replica.
- Livelli: puoi creare livelli di repliche in una cascata nella gerarchia delle repliche. Ad esempio, se aggiungi quattro repliche a un'istanza, queste quattro 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 o le sorelle si trovano allo stesso livello nella gerarchia delle repliche. Una replica può avere ufficialmente fino a otto fratelli.
- Replica di primo livello: 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. Quando viene promossa, la gerarchia delle repliche a cascata della replica viene conservata.
Configura le repliche con struttura 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
Interruzione
Promozione
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 a quella principale.
Puoi creare repliche di lettura nella replica a cascata nella regione B.
Nella scheda Interruzione, se si verifica un'interruzione nella regione A, la replica a cascata viene promossa a istanza principale. Ha già repliche di lettura al suo interno, 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 di il traffico di rete tra regioni si verifica una sola volta, dall'istanza principale Replica B. La replica da B a C e D utilizza il trasferimento di rete all'interno della regione, è gratuito.
Puoi creare una gerarchia di massimo quattro istanze utilizzando le repliche a cascata per la replica in più regioni:
Principale A → Replica B → Replica C e Replica D
Limitazioni
- Non puoi eliminare una replica che ha repliche al suo interno. Per eliminare la replica, devi iniziare dalle repliche a foglia e procedere verso l'alto nella gerarchia.
- La dipendenza della regione circolare 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.
Repliche di lettura esterne
Le repliche di lettura esterne sono istanze MySQL esterne che vengono replicate da un'istanza principale 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:
- La replica su un'istanza MySQL ospitata da un'altra piattaforma cloud potrebbe non essere
possible; consulta la documentazione dell'altro fornitore. Ad esempio:
è obbligatorio impostare il campo di configurazione
replicate-ignore-db
, e i cloud provider dove non è consentito non sono supportati. Consulta: Configurazione di repliche esterne per gli altri campi di configurazione obbligatori. - Se la replica viene interrotta per alcune ore, ad esempio da una rete o del server, la replica è indietro rispetto a quella principale. La replica recupera quando si riconnette alla rete principale e inizia di nuovo la replica. Tuttavia, se La replica si è interrotta per più tempo rispetto ai log di replica di Cloud SQL vengono conservati (sette backup), devi eliminare la replica e crearne uno nuovo uno.
- I dati che passano dalla replica principale a quella esterna vengono addebitati come trasferimento di dati in uscita. Consulta la pagina relativa ai prezzi per il trasferimento di dati per la tua istanza Cloud SQL.
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 |
|
|
Replica di lettura tra regioni | Istanza Cloud SQL | Istanza Cloud SQL |
|
|
Replica di lettura esterna | Istanza Cloud SQL | Istanze MySQL esterne a Cloud SQL |
|
|
Replica da un server esterno | Istanze MySQL esterne a Cloud SQL | Istanza Cloud SQL per MySQL |
|
Prerequisiti per la creazione di una replica di lettura
Prima di poter creare una replica di lettura di un progetto Cloud SQL principale l'istanza deve soddisfare i seguenti requisiti:
- I backup automatici devono essere abilitati.
- Il logging binario deve essere abilitato, il che 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'esecuzione del logging binario in un bucket in cui è abilitato il controllo delle versioni.
Requisiti aggiuntivi per la replica esterna:
- La versione MySQL della replica deve essere uguale o successiva alla versione MySQL dell'istanza principale. Scopri di più.
- Per motivi di sicurezza, devi configurare SSL/TLS sull'istanza principale. Scopri di più.
Impatto dell'abilitazione del logging binario
Per abilitare il logging binario sull'istanza principale in modo da supportare le repliche di lettura, devi attivare il recupero point-in-time. Ciò ha i seguenti effetti:
- Overhead delle prestazioni
Cloud SQL utilizza la replica basata su riga con i flag MySQL
sync_binlog=1
einnodb_support_xa=true
. Pertanto, viene usato un disco aggiuntivo fsync richiesta per ogni operazione di scrittura, con conseguente riduzione delle prestazioni. - Overhead di archiviazione
L'archiviazione dei log binari viene addebitata alla stessa tariffa del normale e i dati di Google Cloud. I log binari vengono automaticamente troncati all'età del valore backup automatico meno recente. Cloud SQL conserva i sette backup automatici più recenti e tutti i backup on demand. Le dimensioni log binari, e quindi l'importo addebitato, dipende dalla carico di lavoro. Ad esempio, un carico di lavoro ad alta intensità di scrittura consuma più log binari rispetto a un carico di lavoro che richiede molte operazioni di lettura.
Puoi vedere le dimensioni dei log binari utilizzando il comando SHOW BINARY LOGS Comando MySQL.
Quando vengono acquisiti i backup, questi vengono archiviati nel backup insieme con i dati.
Logging binario nelle repliche di lettura
- Il logging binario è supportato nelle istanze di replica di lettura (solo MySQL 5.7 e 8.0). Attiva il logging binario su una replica con gli stessi
comandi API utilizzati
sulla principale, utilizzando il nome dell'istanza della replica anziché il nome
dell'istanza principale. Tieni presente che i termini
enable binary logging
eenable point-in-time recovery
sono intercambiabili.Durabilità del logging binario nell'istanza di replica (ma non nell'istanza principale) può essere impostato con
sync_binlog
che controlla la frequenza con cui il server MySQL sincronizza il file binario. su disco.Il logging binario può essere attivato su una replica anche se il backup è disabilitato sulla principale.
Se una replica con questo valore promosso a server autonomo, l'impostazione viene reimpostata sul valore sicuro
1
sul server autonomo.
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. La replica dei dati non comporta alcun costo.
- Per le repliche esterne, i dati che fluiscono dall'istanza principale la replica viene addebitata come trasferimento di dati. Consulta la pagina Prezzi per i prezzi del trasferimento di dati per il tipo di istanza Cloud SQL.
- I prezzi di una replica di lettura tra regioni sono gli stessi di quelli per la creazione di una nuova istanza Cloud SQL nella regione. Consulta la pagina Prezzi delle istanze Cloud SQL e seleziona la regione appropriata. Oltre al costo normale associato all'istanza, una replica 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 per il traffico in uscita dalla rete.
Riferimento rapido per le repliche di lettura Cloud SQL
Argomento | Discussione |
---|---|
Backup | Non puoi configurare backup nella replica. |
Core e memoria | Le repliche di lettura possono utilizzare un numero di core e una quantità di memoria diversi rispetto a quelli 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 dell'istanza principale. |
Disattivare il logging binario | Prima di poter disattivare i log binari su un'istanza principale, devi promuovere o eliminare tutte le relative repliche di lettura. |
Failover | Un'istanza principale può eseguire il failover a una replica solo se si tratta di una replica di RE. Le repliche di lettura non sono in grado di eseguire il failover in alcun modo durante un'interruzione. |
Alta disponibilità | Le repliche di lettura ti 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. 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 dell'istanza principale, tra cui la finestra di manutenzione, la riprogrammazione e il periodo di manutenzione negato. 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. |
Replicazione parallela | Per informazioni sull'utilizzo della replica parallela per le prestazioni miglioramenti, vedi Configurazione della replica parallela. |
IP privato | Se ti connetti a una replica utilizzando un indirizzo IP privato, non devi creare un'ulteriore connessione privata VPC per la replica, in quanto viene ereditata dall'istanza principale. |
Ripristino dell'istanza principale | Non puoi ripristinare l'istanza principale di una replica mentre quest'ultima esiste già. 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 MySQL dell'istanza principale vengono propagate alla replica, incluse la password root e le modifiche alla tabella utente. Modifiche a CPU e memoria non vengono propagate alla replica. |
Interrompere 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 con interruzione 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
- Scopri come creare una replica di lettura.
- Scopri come configurare la configurazione di una replica esterna.
- Scopri come replicare i dati da un server esterno.
- Scopri come configurare una configurazione del server esterno.
- Scopri di più sulla replica in MySQL.
- Scopri come configurare un'istanza per l'alta disponibilità.