Le sezioni seguenti forniscono i passaggi per configurare il server primario AlloyDB Omni per la replica, configurare il server di 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
Aggiorna le impostazioni di rete o firewall dell'host del server primario in modo che consenta il traffico in entrata dall'host del server di replica tramite la porta Postgres del server primario.
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;"Aggiungi le seguenti righe nel file
/DATA_DIR/pg_hba.conffile del server primario primahost all all all scram-sha-256che esiste nel file:host alloydbmetadata alloydbmetadata IP_RANGE trust host replication REPLICA_USER IP_RANGE scram-sha-256Sostituisci 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 primario.
Riavvia il server primario:
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:
Assicurati che la replica abbia la connettività di rete al server primario:
ping SOURCE_IPSostituisci
SOURCE_IPcon l'indirizzo IP dell'istanza AlloyDB Omni primaria da cui eseguire la replica.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)La replica deve avere una posizione di archiviazione permanente sul disco:
sudo -u postgres 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 AlloyDB Omni primaria da cui eseguire la replica. Se non fornisci questo valore, AlloyDB Omni applica un valore predefinito di5432.SLOT_NAME: l'etichetta per il nome dello slot di replica.DATA_DIR: il percorso della directory dei dati per il server di replica.
Avvia l'istanza di replica:
sudo systemctl start alloydbomni18
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 nella replica in pochi secondi.
Scalare i carichi di lavoro di lettura utilizzando i pool di lettura
Per scalare i requisiti di reporting e di sola lettura, puoi eseguire il provisioning di più repliche di streaming asincrone per formare un pool di lettura. Puoi accedere al pool di lettura connettendoti direttamente agli indirizzi IP dei nodi di replica.
Prima di iniziare
Assicurati di aver creato REPLICA_USER con i privilegi REPLICATION sul server primario. Devi anche assicurarti che il file pg_hba.conf del server primario sia configurato per consentire le connessioni di replica dagli indirizzi IP dei nodi di replica.
Eseguire il provisioning di più repliche di sola lettura
Per creare più repliche, ripeti questi passaggi per ogni nodo di replica che vuoi includere nel pool.
Su ogni nodo di replica, esegui il comando pg_basebackup, assicurandoti di fornire un nome di slot di replica univoco per ogni nodo:
sudo -u postgres pg_basebackup \ --pgdata=DATA_DIR \ --checkpoint=fast \ --host="SOURCE_IP" \ --port="SOURCE_PORT" \ --username=REPLICA_USER \ --create-slot \ --write-recovery-conf \ --slot="UNIQUE_SLOT_NAME_PER_NODE" ```Once the backup is complete, start the database service on each replica:```posix-terminal sudo systemctl start alloydbomni18