Queda e Recuperação
5 min
Queda da instância principal
Atenção: Executar as ações a seguir no nó secundário standby
Durante a interrupção da instância principal é necessário promover o postgres secundário:
docker exec -ti postgres pg_ctl promote
Recuperação da instância principal
Após a instancia principal se recuperar, é necessário realizar o resyncing da replica para a master principal novamente, e eleger novamente a primária.
Atenção: Executar as ações a seguir no nó primário
1 - Parar a instancia e remover os dados "antigos", remover os arquivos locais
cd /opt/apps/simon/docker
docker compose stop postgres
docker compose run --rm postgres rm -rf /var/lib/postgresql/data/*
rm -rf /dados/var/lib/postgresql/data3 - Realizar uma copia inicial do nó secundário:
docker run --rm --tty -ti \
--add-host "postgres_secondary:192.168.68.27" \
-e POSTGRES_HOST_AUTH_METHOD="scram-sha-256" \
-e POSTGRES_INITDB_ARGS="--auth-host=scram-sha-256" \
-v /dados/var/lib/postgresql/data:/var/lib/postgresql/data --name postgres-init docker.simonops.com/simonops/space-postgres:pg17 \
/bin/sh -c "echo 'Starting backup...' && env PGPASSWORD=repl1c4-us3rs-410p3 pg_basebackup -D /var/lib/postgresql/data -U replicator --progress --host=postgres_secondary --port=5432 --wal-method=stream --no-password && touch /var/lib/postgresql/data/standby.signal && chmod 0700 /var/lib/postgresql/data && chown -R postgres:postgres /var/lib/postgresql/data && echo 'Concluido'"4 - Subir o container e realizar o procedimento de standby signal
docker exec -ti postgres touch /var/lib/postgresql/data/standby.signal
docker exec -ti postgres psql -U postgres -c "SELECT pg_create_physical_replication_slot('replication_slot');"5 - Promover novamente o nó principal:
docker exec -ti postgres pg_ctl promote