Crea una replica di sola lettura

Select a documentation version:

Per aumentare la velocità effettiva di lettura e la disponibilità, puoi creare un server replica di AlloyDB Omni per un server AlloyDB Omni esistente. Un server replica fornisce un clone di sola lettura del server di database primario. Aggiorna continuamente i propri dati per riflettere le modifiche ai dati del server primario.

Le sezioni seguenti forniscono i passaggi per configurare il server primario di AlloyDB Omni per la replica, configurare il server replica e verificare lo stato della replica sul server primario.

Prima di iniziare

Prima di procedere, installa e configura AlloyDB Omni utilizzando il pacchetto RPM. Per ulteriori informazioni, vedi Installare AlloyDB Omni utilizzando RPM.

Configurare il server primario per la replica

  1. Aggiorna le impostazioni di rete o firewall dell'host del server primario in modo che consenta il traffico in entrata dall'host del server replica tramite la porta Postgres del server primario.

  2. Crea un utente di replica:

    psql -h localhost -U postgres -c "create user REPLICA_USER with replication password 'PASSWORD';
    grant pg_read_all_settings to REPLICA_USER;"
  3. Aggiungi le seguenti righe nel file /DATA_DIR/pg_hba.conf del server primario prima di host all all all scram-sha-256 che esiste nel file:

    host alloydbmetadata    alloydbmetadata   IP_RANGE trust
    host replication        REPLICA_USER    IP_RANGE scram-sha-256
    

    Sostituisci quanto segue:

    • IP_RANGE: l'intervallo IP, in notazione CIDR, della subnet in cui si trova la macchina replica. Ad esempio, 203.0.113.0/24.
    • DATA_DIR: il percorso della directory dei dati del server primario.
  4. Riavvia il server primario:

    sudo systemctl restart alloydbomniPG_VERSION

Creare e configurare il server replica

Per creare e configurare un server replica di AlloyDB Omni, completa i seguenti passaggi:

  1. Assicurati che la replica abbia la connettività di rete al server primario:

    ping SOURCE_IP

    Sostituisci SOURCE_IP con l'indirizzo IP dell'istanza principale di AlloyDB Omni da cui eseguire la replica.

  2. Assicurati che la replica possa connettersi al server primario:

    psql "host=SOURCE_IP user=REPLICA_USER replication=1" -c "IDENTIFY_SYSTEM;"

    L'output dovrebbe essere simile al seguente:

           systemid       | timeline |  xlogpos  | dbname
     ---------------------+----------+-----------+--------
      7376500460465963036 |        1 | 0/454B670 |
      (1 row)
    
  3. La replica deve avere una posizione di archiviazione permanente sul disco:

    pg_basebackup \
      --pgdata=DATA_DIR \
      --checkpoint=fast \
      --host="SOURCE_IP" \
      --port="SOURCE_PORT" \
      --username=REPLICA_USER \
      --create-slot \
      --write-recovery-conf \
      --slot="SLOT_NAME"

    Sostituisci quanto segue:

    • SOURCE_PORT: la porta TCP dell'istanza principale di AlloyDB Omni da cui eseguire la replica. Se non fornisci questo valore, AlloyDB Omni applica un valore predefinito di 5432.
    • SLOT_NAME: l'etichetta per il nome dello slot di replica.
    • DATA_DIR: il percorso della directory dei dati per il server replica.
  4. Avvia l'istanza replica:

    sudo systemctl start alloydbomniPG_VERSION

Verificare lo stato della replica sul server primario

Per verificare che la replica sia configurata correttamente, esegui il seguente comando sull'host del server primario:

psql -h localhost -U postgres -c "select * from pg_stat_replication"

La tabella di output contiene una riga per ogni replica connessa al server di database primario.

Dopo aver configurato la replica, tutti gli inserimenti, gli aggiornamenti e le eliminazioni delle righe nel server di database primario diventano leggibili sulla replica in pochi secondi.