En las siguientes secciones, se proporcionan los pasos para configurar tu servidor principal de AlloyDB Omni para la replicación, configurar el servidor de réplica y verificar el estado de la replicación en el servidor principal.
Para obtener más información, consulta Cómo instalar AlloyDB Omni en Kubernetes.
Configura tu servidor principal para la replicación
- Actualiza la configuración de red o firewall del host de tu servidor principal para que permita el tráfico de entrada desde el host del servidor de réplica a través del puerto de Postgres del servidor principal. 
- Crea un usuario de replicación: - docker exec CONTAINER_NAME psql -h localhost -U postgres -c "create user REPLICA_USER with replication password 'PASSWORD'"- Reemplaza lo siguiente: - REPLICA_USER: Es el nombre del usuario de la réplica.
- PASSWORD: La contraseña del usuario de la réplica.
- CONTAINER_NAME: Es el nombre que le asignaste al contenedor de AlloyDB Omni cuando lo instalaste.
 
- Agrega las siguientes líneas en el archivo - /DATA_DIR/pg_hba.confantes de- host all all all scram-sha-256que existe en el archivo:- host alloydbmetadata alloydbmetadata IP_RANGE trust host replication REPLICA_USER IP_RANGE scram-sha-256- Reemplaza lo siguiente: - IP_RANGE: Es el rango de IP, en notación CIDR, de la subred en la que se encuentra tu máquina de réplica. Por ejemplo,- 203.0.113.0/24
- DATA_DIR: Es la ruta de acceso del sistema de archivos que deseas que use esta réplica para su directorio de datos.
 
- Reinicia el servidor principal: - docker restart CONTAINER_NAME
Crea y configura el servidor de réplica
Para crear y configurar un servidor de réplica de AlloyDB Omni, completa los siguientes pasos:
- Asegúrate de que la réplica tenga conectividad de red con el servidor principal: - ping SOURCE_IP- Reemplaza - SOURCE_IPpor la dirección IP de la instancia principal de AlloyDB Omni desde la que se realizará la replicación.
- Asegúrate de que la réplica pueda conectarse al servidor principal: - docker run -it --rm google/alloydbomni psql "host=SOURCE_IP user=REPLICA_USER replication=1" -c "IDENTIFY_SYSTEM;"- El resultado debería ser similar al siguiente: - systemid | timeline | xlogpos | dbname ---------------------+----------+-----------+-------- 7376500460465963036 | 1 | 0/454B670 | (1 row)
- La réplica debe tener una ubicación de almacenamiento persistente en el disco: - 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"- Reemplaza lo siguiente: - SOURCE_PORT: Es el puerto TCP de la instancia principal de AlloyDB Omni desde la que se realizará la replicación. Si no proporcionas este valor, AlloyDB Omni aplica un valor predeterminado de- 5432.
- SLOT_NAME: Es la etiqueta del nombre de la ranura de replicación.
 
- Inicia tu instancia de réplica: - 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
Verifica el estado de la replicación en el servidor principal
Para verificar que la replicación esté configurada correctamente, ejecuta el siguiente comando en el host del servidor principal:
  docker exec -it CONTAINER_NAME psql -h localhost -U postgres -c "select * from pg_stat_replication"La tabla de salida contiene una fila para cada réplica conectada a tu servidor de base de datos principal.
Después de configurar la replicación, todas las inserciones, actualizaciones y eliminaciones de filas en tu servidor de base de datos principal se podrán leer en tu réplica en cuestión de segundos.