Per mantenere la disponibilità tra regioni e scalare i workload di lettura a livello globale, puoi creare e gestire cluster secondari AlloyDB per PostgreSQL, aggiungere istanze di pool di lettura ed eseguire operazioni di cambio o promozione.
Per una panoramica concettuale della replica tra regioni, consulta la panoramica della replica tra regioni.
Prima di iniziare
- Il progetto Google Cloud che stai utilizzando deve essere stato abilitato per accedere ad AlloyDB.
- Devi disporre di uno di questi ruoli IAM nel progetto Google Cloud che stai utilizzando:
roles/alloydb.admin(il ruolo IAM predefinito AlloyDB Admin)roles/owner(il ruolo IAM di base Proprietario)roles/editor(il ruolo IAM di base Editor)
Se non disponi di nessuno di questi ruoli, contatta l'Amministratore organizzazione per richiedere l'accesso.
Crea un cluster secondario
Quando crei un cluster secondario, AlloyDB copia e applica alcune delle configurazioni del cluster primario, tra cui il recupero point-in-time (PITR) e la configurazione del backup, al cluster secondario. AlloyDB non aggiunge istanze del pool di lettura al cluster secondario dopo averlo creato, indipendentemente dal numero di istanze del pool di lettura presenti nel cluster principale.
Se aggiorni la configurazione del cluster primario dopo aver creato il cluster secondario, le modifiche non saranno disponibili nel cluster secondario. Tuttavia, puoi aggiornare manualmente il cluster secondario in modo che abbia la configurazione più recente disponibile nel cluster primario.
Puoi creare fino a cinque cluster secondari per un cluster primario. Tutti i cluster secondari vengono replicati da un'unica istanza principale. Se promuovi un cluster secondario, questo diventa un cluster primario indipendente.
Il seguente diagramma illustra come promuovere il cluster secondario denominato cluster-2 in us-east4:

Figura 1. Esempio di promozione di un cluster secondario.
Per creare un cluster secondario e un'istanza secondaria AlloyDB, segui questi passaggi:
Per impostazione predefinita, AlloyDB crea istanze secondarie con la stessa configurazione della macchina dell'istanza principale al momento della creazione. Tuttavia, se esegui lo scale up dell'istanza principale dopo aver creato quella secondaria, AlloyDB non esegue automaticamente lo scale up dell'istanza secondaria, ma devi farlo manualmente.
Console
Nella console Google Cloud , vai alla pagina Cluster.
Fai clic su un cluster nella colonna Nome risorsa.
Nella pagina Panoramica, fai clic su Crea cluster secondario.
Configura il cluster secondario:
- Nel campo ID cluster, inserisci un ID risorsa per il cluster secondario.
- Seleziona una regione per il cluster secondario diversa da quella del cluster principale.
- Seleziona la crittografia predefinita gestita da Google o una chiave gestita dal cliente (CMEK) come metodo di crittografia per criptare il cluster secondario.
Se vuoi criptare questo cluster utilizzando la chiave CMEK, segui questi passaggi:
- Fai clic su Opzioni di crittografia avanzate.
- Seleziona Chiave di crittografia gestita dal cliente (CMEK).
Seleziona una chiave gestita dal cliente dal menu visualizzato.
La console Google Cloud limita questo elenco alle chiavi all'interno dello stesso progetto e della stessa regioneGoogle Cloud del nuovo cluster.
Per utilizzare una chiave non presente in questo elenco, segui questi passaggi:
- Fai clic su Non trovi la chiave? Inserisci il nome risorsa della chiave.
- Inserisci il nome della risorsa nel campo Nome risorsa della chiave.
- Fai clic su Salva.
- Fai clic su Continua.
L'utilizzo della chiave CMEK con AlloyDB richiede una configurazione aggiuntiva. Per saperne di più, consulta Utilizza CMEK.
Se l'istanza principale associata è criptata con una chiave CMEK, devi criptare anche il cluster secondario con una chiave CMEK.
Configura l'istanza secondaria. Nel campo ID istanza, inserisci un ID risorsa per l'istanza secondaria. L'ID risorsa deve essere univoco in un cluster.
Fai clic su Crea cluster.
gcloud
Per utilizzare gcloud CLI, puoi installare e inizializzare Google Cloud CLI oppure puoi utilizzare Cloud Shell.
Utilizza il comando gcloud alloydb clusters create-secondary.
gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/PRIMARY_CLUSTER_IDgcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \ --cluster=SECONDARY_CLUSTER_ID \ --region=REGION_ID
Sostituisci quanto segue:
SECONDARY_CLUSTER_ID: l'ID del cluster secondario che vuoi creare e a cui vuoi associare l'istanza secondaria.SECONDARY_INSTANCE_ID: l'ID dell'istanza secondaria che vuoi creare.REGION_ID: l'ID della regione del cluster secondario, ad esempious-central1.PROJECT_ID: l'ID del progetto del cluster principale.LOCATION_ID: la località in cui si trova il cluster principale, ad esempious-central1.PRIMARY_CLUSTER_ID: l'ID del cluster primario a cui è associato il cluster secondario.
Per disattivare la creazione di backup automatici nel cluster secondario, passa il flag --no-enable-automated-backup al comando gcloud alloydb clusters create-secondary.
Per creare un'istanza secondaria abilitata per Private Service Connect, aggiungi il flag --allowed-psc-projects per impostare un elenco separato da virgole di ID progetto o numeri di progetto a cui vuoi consentire l'accesso all'istanza, ad esempio my-project-1, 12345 e my-project-n.
gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/PRIMARY_CLUSTER_IDgcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \ --cluster=SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --allowed-psc-projects=ALLOWED_PSC_PROJECTS
Sostituisci quanto segue:
ALLOWED_PSC_PROJECTS(facoltativo): l'elenco separato da virgole degli ID progetto o dei numeri di progetto a cui vuoi consentire l'accesso all'istanza, ad esempiomy-project-1,12345emy-project-n. Se il cluster utilizza Private Service Connect come metodo di connessione all'istanza, devi impostare un elenco di progetti o numeri consentiti.
Per creare un'istanza secondaria per un cluster abilitato per l'IP pubblico, aggiungi il parametro --assign-inbound-public-ip=ASSIGN_IPV4.
gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \
--cluster=SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--assign-inbound-public-ip=ASSIGN_IPV4Facoltativamente, passa l'elenco separato da virgole di blocchi CIDR, ad esempio 64.233.160.0/16, al parametro --authorized-external-networks per impostare le reti esterne autorizzate sulla tua istanza.
Visualizza un cluster secondario
Per visualizzare informazioni dettagliate su un cluster secondario AlloyDB, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Cluster.
Fai clic su un cluster secondario nella colonna Nome risorsa.
Nella pagina Panoramica, visualizza tutti i dettagli del cluster secondario.
Aggiorna un'istanza secondaria
Puoi aggiornare un'istanza secondaria per aggiungere, modificare o eliminare i flag di database. Puoi anche scalare il tipo di macchina dell'istanza secondaria.
Configura i flag di database su un'istanza secondaria
Per aggiungere, modificare o eliminare i flag di database, completa i seguenti passaggi:
Console
Nella console Google Cloud , vai alla pagina Cluster.
Nella colonna Nome risorsa, fai clic su un cluster secondario che vuoi modificare.
Nella pagina Panoramica, vai a Istanze nel cluster, seleziona l'istanza secondaria e fai clic su Modifica secondaria.
Aggiungi, modifica o elimina un flag di database dalla tua istanza:
Aggiungi un flag
- Per aggiungere un flag di database all'istanza, fai clic su Aggiungi flag.
- Seleziona un flag dall'elenco Nuovo flag di database.
- Specifica un valore per il flag.
- Fai clic su Fine.
Modifica un flag
- Per modificare un flag di database presente nell'istanza, espandi il flag di database e modifica il valore del flag esistente nella sezione Modifica flag di database.
- Fai clic su Fine.
Elimina un flag
- Per eliminare un flag di database dall'istanza, seleziona un flag e fai clic sull'icona Elimina.
- Fai clic su Fine.
Fai clic su Aggiorna secondario.
gcloud
Utilizza il comando gcloud alloydb instances update per modificare i flag di database per un'istanza secondaria.
gcloud alloydb instances update SECONDARY_INSTANCE_ID \
--database-flags FLAGS_LIST \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDSostituisci quanto segue:
SECONDARY_INSTANCE_ID: l'ID dell'istanza secondaria.FLAGS_LIST: un elenco separato da virgole di una o più specifiche dei flag di database. Ogni specifica è costituita dal nome del flag, da un segno di uguale (=) e dal valore da assegnare ai flag. Per i flag di database che non accettano valori, fornisci il nome del flag seguito da un segno di uguale (=).REGION_ID: la regione in cui si trova l'istanza secondaria, ad esempious-central1.CLUSTER_ID: l'ID del cluster in cui si trova l'istanza secondaria.PROJECT_ID: l'ID del progetto in cui si trova il cluster secondario.
Scala il tipo di macchina dell'istanza secondaria
Per scalare il tipo di macchina dell'istanza secondaria, completa i seguenti passaggi:
Console
Nella console Google Cloud , vai alla pagina Cluster.
Nella colonna Nome risorsa, fai clic su un cluster secondario che vuoi modificare.
Nella pagina Panoramica, vai alla sezione Istanze nel cluster e fai clic su Modifica secondaria.
Tieni presente che questa azione non è disponibile se la pagina segnala uno stato del cluster impostato su Manutenzione. L'azione diventa nuovamente disponibile dopo che lo Stato diventa Pronto.
Seleziona un tipo di macchina.
Fai clic su Aggiorna secondario.
gcloud
Utilizza il comando gcloud alloydb instances
update per modificare il tipo di macchina dell'istanza secondaria.
gcloud alloydb instances update SECONDARY_INSTANCE_ID \
--cpu-count=CPU_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDSostituisci quanto segue:
SECONDARY_INSTANCE_ID: l'ID dell'istanza secondaria che stai aggiornando.CPU_COUNT: il numero di vCPU che vuoi per l'istanza. I valori validi includono:2(2 vCPU, 16 GB di RAM)4(4 vCPU, 32 GB di RAM)8(8 vCPU, 64 GB di RAM)16(16 vCPU, 128 GB di RAM)32(32 vCPU, 256 GB di RAM)64(64 vCPU, 512 GB di RAM)96(96 vCPU, 768 GB di RAM)128(128 vCPU, 864 GB di RAM)
REGION_ID: la regione in cui si trova l'istanza.
CLUSTER_ID: l'ID del cluster in cui si trova l'istanza.
PROJECT_ID: l'ID del progetto in cui si trova il cluster.
Se il comando restituisce un messaggio di errore che include la frase invalid cluster state MAINTENANCE, significa che il cluster è in fase di manutenzione di routine. In questo modo, la riconfigurazione dell'istanza viene temporaneamente disattivata. Esegui di nuovo il comando dopo che il cluster è tornato allo stato READY.
Per controllare lo stato del cluster, consulta Visualizza i dettagli del cluster.
Aggiungi istanze del pool di lettura a un cluster secondario
Per aggiungere un'istanza del pool di lettura a un cluster secondario, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Cluster.
Nella colonna Nome risorsa, fai clic su un cluster secondario a cui vuoi aggiungere un'istanza del pool di lettura.
Nella pagina Panoramica, vai alla sezione Istanze nel cluster e fai clic su Aggiungi pool di lettura.
Configura l'istanza del pool di lettura:
- Nel campo ID istanza pool di lettura, inserisci un ID per l'istanza del pool di lettura.
- Nel campo Numero di nodi, inserisci un numero di nodi. Il numero di nodi in un'istanza del pool di lettura determina la capacità di calcolo complessiva dell'istanza. Puoi avere un massimo di 20 nodi in tutte le istanze del pool di lettura di un cluster.
- Seleziona un tipo di macchina.
(Facoltativo) Imposta flag personalizzati per l'istanza. Per ogni flag, segui questi passaggi:
- Fai clic su Aggiungi flag.
- Seleziona un flag dall'elenco Nuovo flag di database.
- Specifica un valore per il flag.
- Fai clic su Fine.
Fai clic su Aggiungi pool di lettura.
Disaster recovery avanzato
Per scenari di ripristino di emergenza avanzati, AlloyDB supporta lo switchover e il failover tra regioni:
Esegui un cambio
Il cambio ti consente di invertire i ruoli dei cluster primario e secondario senza perdita di dati. Utilizza questa operazione per migrazioni pianificate, manutenzione di routine o esercitazioni di ripristino di emergenza. Quando completi lo switchover, la direzione della replica viene invertita.
Se esegui un cambio quando hai più cluster secondari, si verificano le seguenti modifiche:
- Il cluster secondario che riceve il comando di switchover diventa un cluster primario.
- Il cluster primario precedente diventa un cluster secondario, che esegue la replica dal nuovo cluster primario.
- Tutti gli altri cluster secondari passano alla replica dal nuovo cluster principale.
Il seguente diagramma illustra un cambio da cluster-1 in us-central1 a cluster-2 in us-east4:

Figura 2. Esempio di esecuzione di un cambio a uno dei due cluster secondari.
Prima di eseguire uno switchover, verifica che tutte le regioni a cui appartengono le istanze principali e secondarie siano online e che le istanze siano in uno stato integro. Per saperne di più, consulta Monitora un'istanza utilizzando la dashboard Insight di sistema di AlloyDB.
Per eseguire uno switchover, segui questi passaggi:
Console
Nella console Google Cloud , vai alla pagina Cluster.
Nella colonna Nome risorsa, fai clic su un cluster secondario che vuoi impostare come cluster principale.
Nella pagina Panoramica, fai clic su Switchover.
Nella finestra di dialogo visualizzata, inserisci l'ID del cluster secondario per confermare che vuoi eseguire il cambio del cluster.
Fai clic su Cambio.
Dopo il cambio del cluster, Tipo: cluster secondario nella pagina Panoramica viene aggiornato in
Tipo di cluster: cluster principale e Tipo di cluster: cluster secondario.
gcloud
Utilizza il comando gcloud alloydb clusters switchover:
gcloud alloydb clusters switchover SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_IDSostituisci quanto segue:
SECONDARY_CLUSTER_ID: l'ID del cluster secondario che vuoi cambiare.REGION_ID: l'ID della regione del cluster secondario, ad esempious-central1.PROJECT_ID: l'ID del progetto del cluster secondario.
(Facoltativo) Verifica lo stato della replica
Per assicurarti che il cambio venga completato rapidamente e senza perdita di dati, verifica che il cluster secondario abbia applicato tutte le transazioni ricevute dal cluster primario:
- Interrompi tutte le scritture nel cluster principale.
Controlla lo stato della replica del cluster secondario completando i seguenti passaggi:
Nella console Google Cloud , vai alla pagina Cluster.
Nell'elenco dei cluster, fai clic sul nome del cluster secondario che vuoi cambiare.
Nella pagina dei dettagli del cluster, fai clic su Monitoraggio.
Nell'elenco Monitoraggio, seleziona l'istanza secondaria. Viene visualizzato nell'elenco come Secondario: INSTANCE_NAME.
Nell'elenco delle metriche, individua il grafico Ritardo della replica dall'istanza principale.
Verifica che il grafico mostri un ritardo minimo.
Un valore di ritardo pari a
0è ottimale. Se il ritardo è superiore a0, l'operazione di switchover potrebbe richiedere più tempo per essere completata mentre applica le transazioni rimanenti.Nell'elenco delle metriche, individua il grafico Stato della replica.
Verifica che tutti i nodi rappresentati nel grafico abbiano un valore pari a
streaming.
Promuovi un cluster secondario
La promozione di un cluster secondario lo rende un cluster primario autonomo con funzionalità di lettura e scrittura complete. Utilizza questa operazione principalmente per ripristino di emergenza quando la regione che ospita il cluster primario non è disponibile.
Per impostazione predefinita, la promozione rende il cluster secondario un cluster primario autonomo. Tuttavia, puoi attivare facoltativamente il failover tra regioni (anteprima) per automatizzare la ricreazione dell'istanza principale originale. Il failover tra regioni è supportato solo per le topologie con un singolo cluster primario e un singolo cluster secondario.
Per promuovere un cluster secondario a cluster primario o per aggiungere facoltativamente l'orchestrazione del failover, segui questi passaggi:
Console
Nella console Google Cloud , vai alla pagina Cluster.
Nella colonna Nome risorsa, fai clic su un cluster secondario che vuoi promuovere a cluster primario.
Nella pagina Panoramica, fai clic su Promuovi cluster.
Nella finestra di dialogo visualizzata, inserisci l'ID del cluster secondario per confermare che vuoi promuovere il cluster.
Fai clic su Promuovi.
Dopo la promozione del cluster, il campo Tipo: cluster secondario (alta affidabilità) nella pagina Panoramica viene aggiornato in Tipo: alta affidabilità con pool di lettura.
gcloud
Per promuovere un cluster secondario a un cluster primario autonomo, utilizza il comando gcloud alloydb clusters promote:
gcloud alloydb clusters promote SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_IDPer eseguire una promozione con l'orchestrazione del failover (anteprima), aggiungi il flag facoltativo --failover. In questo modo, l'istanza principale originale viene ricreata automaticamente come secondaria e gli endpoint associati vengono aggiornati per instradare il traffico al nuovo cluster principale.
gcloud beta alloydb clusters promote SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
--failoverSostituisci quanto segue:
SECONDARY_CLUSTER_ID: l'ID del cluster secondario che vuoi promuovere.REGION_ID: l'ID della regione del cluster secondario,ad esempious-central1.PROJECT_ID: l'ID del progetto del cluster secondario.
Utilizza gli endpoint di scrittura per evitare lo split-brain
Per semplificare ulteriormente il flusso di lavoro di ripristino di emergenza durante un failover tra regioni, Google consiglia di gestire le connessioni al database con endpoint di scrittura per connetterti al cluster.
Quando esegui un failover tra regioni, AlloyDB aggiorna automaticamente il record DNS dell'endpoint di scrittura in modo che punti al nuovo cluster principale. In questo modo, il nuovo traffico di scrittura viene indirizzato lontano dall'istanza principale originale e verso quella nuova.
Prima di utilizzare gli endpoint di scrittura durante un failover tra regioni, tieni presente quanto segue:
- Aggiornamento DNS immediato: il record DNS per l'endpoint di scrittura viene aggiornato immediatamente dopo la promozione.
- Aggiornamento dei metadati ritardato: i metadati dell'endpoint di scrittura potrebbero continuare a mostrare l'indirizzo dell'istanza primaria originale fino al ripristino della regione del cluster primario originale.
Recupero dati durante il failover tra regioni
Quando esegui un failover tra regioni, AlloyDB esegue automaticamente il backup del cluster primario originale prima di ricrearlo come cluster secondario. Uno scenario di split-brain si verifica quando sia il cluster primario originale sia quello nuovo accettano scritture contemporaneamente. Per evitare questi scenari, le scritture nell'istanza principale originale vengono interrotte prima dell'esecuzione del backup. Utilizza questo backup per recuperare le transazioni che non sono state replicate nel cluster secondario a causa di un ritardo durante il failover.
Questo backup viene creato automaticamente nell'ambito dell'orchestrazione del failover ed è distinto dai backup automatici pianificati regolarmente e dai backup on demand. Puoi utilizzarlo per creare un nuovo cluster temporaneo e riconciliare manualmente i dati mancanti.
Questo backup acquisisce le scritture accettate dall'istanza principale originale prima che venisse arrestata, ma non unisce automaticamente le scritture nel nuovo cluster principale.