Crea una replica di sola lettura

Seleziona una versione della documentazione:

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

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

Prima di iniziare

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

Configurare il server principale per la replica

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

  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 file del server principale 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 di replica. Ad esempio, 203.0.113.0/24.
    • DATA_DIR: il percorso della directory dei dati del server principale.
  4. Riavvia il server principale:

    sudo systemctl restart alloydbomni18

Creare e configurare il server di replica

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

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

    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 principale:

    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 di replica.
  4. Avvia l'istanza di replica:

    sudo systemctl start alloydbomni18

Verificare lo stato della replica sul server principale

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

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

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