Utilizzare la replica tra regioni

Questa pagina descrive come utilizzare la replica tra regioni di AlloyDB per PostgreSQL creando e lavorando con cluster secondari.

Per una panoramica concettuale della replica tra regioni, consulta Informazioni sulla replica tra regioni.

Prima di iniziare

  • Il Google Cloud progetto che stai utilizzando deve essere stato abilitato per accedere ad AlloyDB.
  • Devi disporre di uno di questi ruoli IAM nel Google Cloud progetto 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 uno 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 configurazioni del cluster primario, tra cui il recupero point-in-time (PITR) e la configurazione dei backup, al cluster secondario. AlloyDB non aggiunge istanze del pool di lettura al cluster secondario dopo la creazione, indipendentemente dal numero di istanze del pool di lettura presenti nel cluster primario.

Se aggiorni la configurazione del cluster primario dopo aver creato il cluster secondario, le modifiche non sono 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 eseguono la replica da una singola istanza primaria. 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:

Esempio di promozione di un cluster secondario.

Figura 1. Esempio di promozione di un cluster secondario.

Per creare un cluster secondario e un'istanza secondaria di AlloyDB:

Console

  1. Nella Google Cloud console, vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic su un cluster nella colonna Nome risorsa.

  3. Nella pagina Panoramica, fai clic su Crea cluster secondario.

  4. Configura il cluster secondario:

    1. Nel campo ID cluster, inserisci un ID risorsa per il cluster secondario.
    2. Seleziona una regione per il cluster secondario diversa dalla regione del cluster primario.
    3. 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:

    1. Fai clic su Opzioni di crittografia avanzate.
    2. Seleziona Chiave di crittografia gestita dal cliente (CMEK).
    3. Seleziona una chiave gestita dal cliente dal menu visualizzato.

      La Google Cloud console limita questo elenco alle chiavi all'interno dello stesso Google Cloud progetto e della stessa regione del nuovo cluster.

      Per utilizzare una chiave non presente in questo elenco:

      1. Fai clic su Non vedi la tua chiave? Inserisci il nome risorsa della chiave.
      2. Inserisci il nome della risorsa nel campo Nome risorsa della chiave.
      3. Fai clic su Salva.
      4. Fai clic su Continua.

    L'utilizzo della chiave CMEK con AlloyDB richiede una configurazione aggiuntiva. Per ulteriori informazioni, consulta Utilizzare CMEK.

    Se l'istanza primaria associata è criptata con una chiave CMEK, devi criptare anche il cluster secondario con una chiave CMEK.

  5. 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.

  6. Fai clic su Crea cluster.

gcloud

Per utilizzare gcloud CLI, puoi installare e inizializzare Google Cloud CLI oppure puoi utilizzare Cloud Shell.

Utilizza il gcloud alloydb clusters create-secondary comando.

 gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
 --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/ PRIMARY_CLUSTER_ID
 gcloud 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.
  • SECONDARY_INSTANCE_ID: l'ID dell'istanza secondaria che vuoi creare.
  • REGION_ID: l'ID della regione del cluster secondario, ad esempio us-central1.
  • PROJECT_ID: l'ID del progetto del cluster secondario.
  • LOCATION_ID: la località in cui si trova il cluster primario, ad esempio us-central1.
  • PRIMARY_CLUSTER_ID: l'ID del cluster primario a cui è associato il cluster secondario.
  • SECONDARY_CLUSTER_ID: l'ID del cluster secondario a cui è associata l'istanza secondaria.
  • ALLOWED_PSC_PROJECTS (facoltativo): l'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,my-project-n. Se il cluster utilizza Private Service Connect come metodo di connessione all'istanza, devi impostare un elenco di progetti o numeri consentiti.
  • --no-enable-automated-backup(facoltativo): disabilita la creazione di backup automatici nel cluster secondario.

Per creare un'istanza secondaria abilitata a 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_ID \
 gcloud 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 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. 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 all'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_IPV4

Facoltativamente, 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 sull'istanza.

Visualizza un cluster secondario

Per visualizzare informazioni dettagliate su un cluster secondario di AlloyDB:

  1. Nella Google Cloud console, vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic su un cluster secondario nella colonna Nome risorsa.

  3. 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 in un'istanza secondaria

Per aggiungere, modificare o eliminare i flag di database:

Console

  1. Nella Google Cloud console, vai alla pagina Cluster.

    Vai a Cluster

  2. Nella colonna Nome risorsa, fai clic su un cluster secondario che vuoi modificare.

  3. Nella pagina Panoramica , vai a Istanze nel cluster, seleziona l'istanza secondaria e fai clic su Modifica secondaria.

  4. Aggiungi, modifica o elimina un flag di database dall'istanza:

    Aggiungi un flag

    1. Per aggiungere un flag di database all'istanza, fai clic su Aggiungi flag.
    2. Seleziona un flag dall'elenco Nuovo flag di database.
    3. Fornisci un valore per il flag.
    4. Fai clic su Fine.

    Modifica un flag

    1. 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.
    2. Fai clic su Fine.

    Elimina un flag

    1. Per eliminare un flag di database dall'istanza, seleziona un flag e fai clic sull'icona Elimina.
    2. Fai clic su Fine.
  5. Fai clic su Aggiorna secondaria.

gcloud

Utilizza il gcloud alloydb instances update comando 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_ID

Sostituisci 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, dal 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 è posizionata l'istanza secondaria, ad esempio us-central1.
  • CLUSTER_ID: l'ID del cluster in cui è posizionata l'istanza secondaria.
  • PROJECT_ID: l'ID del progetto in cui è posizionato il cluster secondario.

Scala il tipo di macchina dell'istanza secondaria

Per scalare il tipo di macchina dell'istanza secondaria:

Console

  1. Nella Google Cloud console, vai alla pagina Cluster.

    Vai a Cluster

  2. Nella colonna Nome risorsa, fai clic su un cluster secondario che vuoi modificare.

  3. 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 di Manutenzione. L'azione diventa di nuovo disponibile dopo che lo Stato cambia in Pronto.

  4. Seleziona un tipo di macchina.

  5. Fai clic su Aggiorna secondaria.

gcloud

Utilizza il gcloud alloydb instances update comando 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_ID

Sostituisci 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)
  • REGION_ID: la regione in cui è posizionata l'istanza.

  • CLUSTER_ID: l'ID del cluster in cui è posizionata l'istanza.

  • PROJECT_ID: l'ID del progetto in cui è posizionato 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. Ciò impedisce temporaneamente la riconfigurazione dell'istanza. Esegui di nuovo il comando dopo che il cluster torna allo stato READY.

Per controllare lo stato del cluster, consulta Visualizzare 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:

  1. Nella Google Cloud console, vai alla pagina Cluster.

    Vai a Cluster

  2. Nella colonna Nome risorsa, fai clic su un cluster secondario a cui vuoi aggiungere un'istanza del pool di lettura.

  3. Nella pagina Panoramica , vai alla sezione Istanze nel cluster e fai clic su Aggiungi pool di lettura.

  4. Configura l'istanza del pool di lettura:

    1. Nel campo ID istanza del pool di lettura, inserisci un ID per l'istanza del pool di lettura.
    2. Nel campo Conteggio nodi, inserisci un conteggio dei 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 in un cluster.
    3. Seleziona un tipo di macchina.
    4. (Facoltativo) Imposta flag personalizzati per l'istanza. Per ogni flag:

      1. Fai clic su Aggiungi flag.
      2. Seleziona un flag dall'elenco Nuovo flag di database.
      3. Fornisci un valore per il flag.
      4. Fai clic su Fine.
  5. Fai clic su Aggiungi pool di lettura.

Promuovi un cluster secondario

Prima di promuovere un cluster secondario, segui questi passaggi per verificare che il cluster secondario abbia applicato tutte le transazioni ricevute dal cluster primario:

  1. Interrompi tutte le scritture nel cluster primario.
  2. Controlla lo stato della replica del cluster secondario completando i seguenti passaggi:

    1. Nella Google Cloud console, vai alla pagina Cluster.

      Vai a Cluster

    2. Nell'elenco dei cluster, fai clic sul nome del cluster secondario che vuoi promuovere.

    3. Nella pagina dei dettagli del cluster, fai clic su Monitoring.

    4. Nell'elenco Monitoring, seleziona l'istanza secondaria. Nell'elenco viene visualizzata come Secondaria: INSTANCE_NAME.

    5. Nell'elenco delle metriche, individua il grafico Ritardo di replica dall'istanza primaria.

    6. Verifica che il grafico mostri un ritardo minimo.

      Un valore di ritardo pari a 0 è l'ideale. Se il ritardo è maggiore di 0, puoi comunque promuovere il cluster secondario, con il rischio di perdere alcune transazioni recenti già eseguite nel cluster primario.

    7. Nell'elenco delle metriche, individua il grafico Stato della replica.

    8. Verifica che tutti i nodi rappresentati nel grafico abbiano un valore di streaming.

Per promuovere un cluster secondario a cluster primario:

Console

  1. Nella Google Cloud console, vai alla pagina Cluster.

    Vai a Cluster

  2. Nella colonna Nome risorsa, fai clic su un cluster secondario che vuoi promuovere come cluster primario.

  3. Nella pagina Panoramica, fai clic su Promuovi cluster.

  4. Nella finestra di dialogo visualizzata, inserisci l'ID del cluster secondario per confermare che vuoi promuovere il cluster.

  5. Fai clic su Promuovi.

    Dopo la promozione del cluster, il campo Tipo: cluster secondario (disponibilità elevata) nella pagina Panoramica viene aggiornato a Tipo: disponibilità elevata con pool di lettura.

gcloud

Utilizza il gcloud alloydb clusters promote comando:

 gcloud alloydb clusters promote SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
 --project=PROJECT_ID \

Sostituisci quanto segue:

  • SECONDARY_CLUSTER_ID: l'ID del cluster secondario che vuoi promuovere.
  • REGION_ID: l'ID della regione del cluster secondario,ad esempio us-central1.
  • PROJECT_ID: l'ID del progetto del cluster secondario.

Esegui un cambio

Prima di eseguire un cambio, verifica che tutte le regioni a cui appartengono le istanze primaria e secondaria siano online e che le istanze siano in stato integro. Per ulteriori informazioni, consulta Monitorare un'istanza utilizzando la dashboard di AlloyDB System Insights.

Se esegui un cambio quando hai più cluster secondari, si verificano le seguenti modifiche:

  • Il cluster secondario che riceve il comando di cambio 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 primario.

Il seguente diagramma illustra un cambio da cluster-1 in us-central1 a cluster-2 in us-east4:

Esempio di esecuzione di un failover su uno dei due cluster secondari.

Figura 2. Esempio di esecuzione di un cambio a uno dei due cluster secondari.

Per eseguire un cambio:

Console

  1. Nella Google Cloud console, vai alla pagina Cluster.

    Vai a Cluster

  2. Nella colonna Nome risorsa, fai clic su un cluster secondario che vuoi cambiare come cluster primario.

  3. Nella pagina Panoramica, fai clic su Cambio.

  4. Nella finestra di dialogo visualizzata, inserisci l'ID del cluster secondario per confermare che vuoi cambiare il cluster.

  5. Fai clic su Cambio.

Dopo il cambio del cluster, il campo Tipo: cluster secondario nella pagina Panoramica viene aggiornato a
Tipo di cluster: cluster primario e Tipo di cluster: cluster secondario.

gcloud

Utilizza il gcloud alloydb clusters switchover comando:

 gcloud alloydb clusters switchover SECONDARY_CLUSTER_ID \
   --region=REGION_ID \
   --project=PROJECT_ID \

Sostituisci quanto segue:

  • SECONDARY_CLUSTER_ID: l'ID del cluster secondario che vuoi promuovere.
  • REGION_ID: l'ID della regione del cluster secondario, ad esempio us-central1.
  • PROJECT_ID: l'ID del progetto del cluster secondario.

Passaggi successivi