La replica è la capacità di creare copie di un'istanza Cloud SQL e di trasferire il lavoro alle copie.
Introduzione
Il motivo principale per utilizzare la replica è scalare l'utilizzo dei dati in un database senza compromettere le prestazioni.
Altri motivi per la replica includono la migrazione dei dati tra regioni.
Inoltre, se un'istanza originale è danneggiata, una replica potrebbe essere promossa a istanza autonoma (in questo caso, le repliche esistenti non considererebbero quell'istanza come principale).
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 tutte in Cloud SQL.
Quando viene creata la prima replica:
- L'istanza principale è impostata sul modello di recupero completo per tutti i database nell'istanza principale.
Viene creato un disco temporaneo, viene eseguito un backup completo e archiviato sul disco temporaneo. Il disco temporaneo viene eliminato al termine del processo di creazione della replica.
Se, nel periodo di tempo della creazione della prima replica, l'utente passa al modello di recupero semplice, la creazione della replica non va a buon fine.
Quanto segue si applica ai database aggiunti all'istanza principale dopo la creazione delle repliche:
- I database vengono aggiunti automaticamente ai gruppi di disponibilità e vengono compilati nelle repliche utilizzando il seeding automatico.
- Ogni creazione di replica richiama un backup completo (modello di recupero con registrazione completa) dei database
nell'istanza principale. Gli accessi e gli oggetti server creati dopo la creazione della replica non vengono replicati automaticamente. Per trasferire i nuovi accessi a una replica esistente, utilizza la stored procedure
sp_help_revlogin.
Cloud SQL supporta i seguenti tipi di repliche:
Utilizzando l'applicazione forzata del connettore, puoi imporre l'utilizzo esclusivo del Cloud SQL Auth Proxy o dei connettori dei linguaggi di Cloud SQL per connetterti alle istanze Cloud SQL. Con l'applicazione del connettore, Cloud SQL rifiuta le connessioni dirette al database. Non puoi creare repliche di lettura per un'istanza in cui è abilitata l'applicazione del connettore. Analogamente, se un'istanza ha repliche di lettura, non puoi abilitare l'applicazione del connettore per l'istanza.
Cloud SQL non supporta la replica tra due server esterni.
Repliche di lettura
Utilizza 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 le altre modifiche nell'istanza principale vengono replicati e applicati in modo asincrono alla replica di lettura.
Le repliche di lettura sono di sola lettura; non puoi scrivere su di esse. La replica di lettura elabora le query, le richieste di lettura e il traffico di analisi, riducendo così il carico sull'istanza principale. Puoi avere fino a 8 repliche di lettura per 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 una connessione privata VPC aggiuntiva 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 rispetto all'istanza principale quando utilizzi l'alta affidabilità nell'istanza principale. In questo modo, le repliche di lettura continuano a funzionare quando la zona che contiene l'istanza principale subisce un'interruzione. Per saperne di più, consulta la panoramica dell'alta affidabilità.
Selezione di un tipo di macchina appropriato
Le repliche di lettura possono avere un numero di vCPU e una quantità di memoria diversi rispetto all'istanza principale. Devi monitorare le metriche dell'istanza, ad esempio l'utilizzo di CPU e memoria utilizzata, per assicurarti che l'istanza di replica sia dimensionata correttamente per il suo workload, soprattutto se è più piccola dell'istanza principale. Un'istanza di replica sottodimensionata è più soggetta a prestazioni scadenti, come frequenti eventi di memoria esaurita (OOM).
Capacità di archiviazione nelle repliche di lettura
Quando un'istanza principale viene ridimensionata, tutte le sue repliche di lettura vengono ridimensionate, se necessario, in modo che abbiano almeno la stessa capacità di archiviazione dell'istanza principale aggiornata.
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.
Nel caso delle repliche di lettura di SQL Server, si presume che la replica si trovi nella stessa rete virtuale della replica principale o che comunichino utilizzando l'IP pubblico.Repliche tra regioni:
- Migliora le prestazioni di lettura rendendo disponibili le repliche più vicine alla regione della tua applicazione.
- Fornire una funzionalità di ripristino di emergenza aggiuntiva per proteggersi da un errore a livello di regione.
- Eseguire la migrazione dei dati da una regione all'altra.
Per saperne di più sulle repliche tra regioni, consulta Promozione delle repliche per la migrazione regionale o il disaster recovery.
Repliche di lettura in cascata
La replica a cascata consente di creare una replica di lettura sotto un'altra replica di lettura nella stessa regione o in una regione diversa. Le repliche a cascata vengono implementate utilizzando gruppi di disponibilità distribuiti. Ecco alcuni casi d'uso per le repliche a cascata:
- Disaster recovery: puoi utilizzare una gerarchia di repliche di lettura a cascata per simulare la topologia dell'istanza principale e delle relative repliche di lettura. Durante un'interruzione, quando promuovi una replica di lettura a istanza principale, le repliche di lettura di questa nuova istanza principale continuano a replicare e sono pronte per l'uso. La vecchia istanza principale diventa un'istanza secondaria della nuova istanza principale quando diventa disponibile e puoi tornare alla vecchia istanza principale una volta che si è ripresa utilizzando uno switchover. Per saperne di più sull'utilizzo delle repliche a cascata per ripristino di emergenza, consulta Informazioni sul disaster recovery.
- Miglioramento delle prestazioni: riduci il carico sull'istanza principale trasferendo il lavoro di replica a più repliche di lettura.
- Scalabilità delle letture: 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 replica tra regioni in altre regioni.
Terminologia
- Replica a cascata: una replica di lettura tra regioni che può essere utilizzata per le operazioni di switchover e failover della replica nel disaster ripristino di emergenza (RE) avanzato con Cloud SQL per SQL Server.
- Replica a cascata: una replica di lettura che può avere una propria replica.
- Livelli: puoi creare livelli di repliche in una gerarchia di repliche a cascata. Ad esempio, se aggiungi quattro repliche a un'istanza, queste quattro repliche si trovano allo stesso livello.
- Istanze di pari livello: più repliche che eseguono la replica dalla stessa istanza principale. Le repliche di pari livello si trovano allo stesso livello nella gerarchia delle repliche. Una replica può avere ufficialmente fino a otto repliche di pari livello.
- 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. Quando viene promossa, la gerarchia delle repliche a cascata della replica viene mantenuta.
Configura le repliche a cascata
Le repliche 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 in cima a una gerarchia di repliche a cascata, questa diventa un'istanza principale e le sue repliche a cascata continuano a replicare.
Per saperne di più sulla configurazione dei gruppi di disponibilità distribuiti, consulta Configura un gruppo di disponibilità distribuito Always On.
Limitazioni
- Non puoi eliminare una replica che ha delle repliche al di sotto. Per eliminare la replica, devi iniziare dalle repliche foglia e procedere verso l'alto nella gerarchia.
- La dipendenza circolare tra regioni non è supportata. Non puoi eseguire la replica da una regione all'altra e poi di nuovo alla regione originale. Affinché la replica di una replica a cascata si trovi nella stessa regione dell'istanza principale, anche la replica a cascata deve trovarsi nella stessa regione.
- Devi creare repliche con possibilità di replica a cascata in una regione diversa da quella dell'istanza principale. Puoi quindi creare repliche a cascata nella stessa regione della replica idonea alla replica a cascata.
Casi d'uso della replica
I seguenti casi d'uso si applicano a ciascun 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 SQL Server | Istanza esterna a Cloud SQL | Istanza Cloud SQL per SQL Server |
|
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.
- I prezzi per una replica di lettura tra regioni sono gli stessi della creazione di una nuova istanza Cloud SQL nella regione. Consulta i 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 del traffico di rete in uscita.
Riferimento rapido per le repliche di lettura di 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 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. |
| Eliminazione di un database replicato | Puoi eliminare un database SQL Server replicato utilizzando la console Google Cloud o il comando gcloud. L'eliminazione viene propagata automaticamente alle repliche. Non puoi eliminare un database SQL Server replicato utilizzando i comandi T-SQL. |
| Failover | Un'istanza principale può eseguire il failover su una replica solo se quest'ultima è una replica a cascata. Le repliche di lettura non possono eseguire il failover in alcun modo durante un'interruzione. |
| Bilanciamento del carico | Cloud SQL non fornisce il bilanciamento del carico tra le repliche. |
| 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 il periodo di manutenzione, la riprogrammazione e il periodo in cui evitare la manutenzione. Durante la manutenzione, Cloud SQL aggiorna prima tutte le repliche di lettura e poi l'istanza principale. |
| Più repliche di lettura | Puoi creare fino a 8 repliche di lettura per una singola istanza principale. |
| IP privato | Se ti connetti a una replica utilizzando un indirizzo IP privato, non devi 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, devi promuovere o eliminare tutte le sue repliche. |
| Impostazioni | Le impostazioni dell'istanza principale vengono propagate alla replica, incluse le modifiche ai dati sugli utenti che possono accedere all'istanza. |
| Arresto di una replica | Non puoi stop una replica. Puoi restart o delete l'istanza, ma non puoi arrestarla come faresti con un'istanza principale. |
| Upgrade di una replica | Le repliche di lettura possono subire un upgrade invasivo in qualsiasi momento. |
| Tabelle degli utenti | Non puoi apportare modifiche alla replica. Tutte le modifiche degli utenti devono essere eseguite sull'istanza principale. |
Limitazioni
Questa funzionalità si applica solo alle seguenti versioni di Cloud SQL per SQL Server:
- SQL Server 2017 Enterprise
- SQL Server 2019 Enterprise
- SQL Server 2022 Enterprise
Cloud SQL non supporta le repliche di disaster ripristino di emergenza (RE) avanzato nella stessa regione. Se vuoi creare una replica di lettura nella stessa regione dell'origine, puoi promuoverla solo a una nuova istanza principale.
Le repliche a cascata sono disponibili solo con la versione Cloud SQL Enterprise Plus.
Non puoi creare una replica a cascata dalla console Google Cloud .
Se esistono accessi nell'istanza principale quando Cloud SQL crea la replica, Cloud SQL li copia nella nuova replica. In seguito, se aggiungi accessi all'istanza principale, Cloud SQL non li propaga automaticamente alle repliche esistenti. Tuttavia, puoi trasferire manualmente i nuovi accessi alle repliche esistenti utilizzando la stored procedure
sp_help_revlogin.Devi monitorare la replica utilizzando T-SQL e/o SQL Server Management Studio.
Prima di eliminare un database, devi chiudere le connessioni al database.
Quando crei una replica, l'istanza principale non può contenere database in modalità utente singolo. In caso contrario, la creazione della replica non va a buon fine.
Per creare una replica, l'istanza principale deve soddisfare i seguenti requisiti:
- Non deve contenere database in modalità utente singolo.
- Non deve contenere database in stato
OFFLINE. - Non deve contenere database in modalità di sola lettura.
- Non deve contenere database con chiusura automatica abilitata.
- Non deve essere utilizzato come database di distribuzione.
- Non deve avere la replica transazionale push abilitata.
- Non deve essere uno snapshot del database.
Se l'istanza principale non soddisfa i requisiti necessari, la creazione della replica non va a buon fine e viene restituito il seguente messaggio di errore:
La replica non può essere configurata su un'istanza configurata con la replica esterna.
Passaggi successivi
- Scopri come creare una replica di lettura.
- Scopri come configurare un'istanza per l'alta affidabilità.
- Scopri di più sul disaster ripristino di emergenza (RE) avanzato