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.
Per i dettagli, consulta Installare AlloyDB Omni su Kubernetes.
Configura 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: - Docker- docker exec CONTAINER_NAME psql -h localhost -U postgres -c "create user REPLICA_USER with replication password 'PASSWORD'"- Sostituisci quanto segue: - REPLICA_USER: il nome dell'utente replica.
- PASSWORD: la password per l'utente replica.
- CONTAINER_NAME: il nome che hai assegnato al container AlloyDB Omni durante l'installazione.
 - Podman- podman exec CONTAINER_NAME psql -h localhost -U postgres -c "create user REPLICA_USER with replication password 'PASSWORD'"- Sostituisci quanto segue: - REPLICA_USER: il nome dell'utente replica.
- PASSWORD: la password per l'utente replica.
- CONTAINER_NAME: il nome che hai assegnato al container AlloyDB Omni durante l'installazione.
 
- Aggiungi le seguenti righe al file - /DATA_DIR/pg_hba.confdel server principale prima di- host all all all scram-sha-256esistente 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 primario.
 
- Riavvia il server principale: - Docker- docker restart CONTAINER_NAME- Podman- podman restart CONTAINER_NAME
Crea e configura 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_IP- Sostituisci - 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: - Docker- docker run -it --rm google/alloydbomni psql "host=SOURCE_IP user=REPLICA_USER replication=1" -c "IDENTIFY_SYSTEM;"- Podman- podman run -it --rm google/alloydbomni 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: - Docker- mkdir alloydb && docker run --rm -it \ -e PGDATA=/var/lib/postgresql/data/pgdata \ -v "$PWD/alloydb":/var/lib/postgresql/data \ -p 5432:5432 \ --user $(id -u):$(id -g) \ google/alloydbomni \ /usr/lib/postgresql/15/bin/pg_basebackup \ --pgdata=/var/lib/postgresql/data/pgdata \ --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.
 - Podman- mkdir alloydb && podman run --rm -it \ -e PGDATA=/var/lib/postgresql/data/pgdata \ -v "$PWD/alloydb":/var/lib/postgresql/data \ -p 5432:5432 \ --user $(id -u):$(id -g) \ google/alloydbomni \ /usr/lib/postgresql/15/bin/pg_basebackup \ --pgdata=/var/lib/postgresql/data/pgdata \ --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.
 
- Avvia l'istanza replica: - Docker- docker run --detach \ --name pg-service \ -e POSTGRES_PASSWORD=a \ -e PGDATA=/var/lib/postgresql/data/pgdata \ -v "$PWD/alloydb":/var/lib/postgresql/data \ -v /dev/shm:/dev/shm \ -p 5432:5432 \ --user $(id -u):$(id -g) \ google/alloydbomni- Podman- podman run --detach \ --name pg-service \ -e POSTGRES_PASSWORD=a \ -e PGDATA=/var/lib/postgresql/data/pgdata \ -v "$PWD/alloydb":/var/lib/postgresql/data \ -v /dev/shm:/dev/shm \ -p 5432:5432 \ --user $(id -u):$(id -g) \ google/alloydbomni
Verifica lo stato della replica sul server primario
Per verificare che la replica sia configurata correttamente, esegui questo comando sull'host del server primario:
Docker
  docker exec -it CONTAINER_NAME psql -h localhost -U postgres -c "select * from pg_stat_replication"Podman
  podman exec -it CONTAINER_NAME 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 di righe nel server di database primario diventano leggibili nella replica in pochi secondi.