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
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.
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 principale prima dihost 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 principale.
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:
Assicurati che la replica abbia la connettività di rete al server principale:
ping SOURCE_IPSostituisci
SOURCE_IPcon l'indirizzo IP dell'istanza principale di AlloyDB Omni da cui eseguire la replica.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)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 principale di AlloyDB Omni 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 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.
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 principale. Devi anche assicurarti che il file pg_hba.conf del server principale 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