Модули/Failover и pg_rewind/Что такое Failover
1

Что такое Failover

Понятие failover, сценарии, RPO и RTO

25 минУрок 1 из 9
Прогресс0%

Теория

Failover — процесс переключения на резервный сервер при выходе из строя основного.

RPO (Recovery Point Objective) — максимальная потеря данных в единицу времени.

RTO (Recovery Time Objective) — время восстановления работы после сбоя.

Синхронная репликация гарантирует zero RPO, но увеличивает латентность записи.

Асинхронная репликация быстрее, но возможна потеря данных при failover.

Практика

1. Проверка состояния кластера

Посмотрите текущее состояние мастер-реплика:

Проверка состояния кластера
Команда
sudo -u postgres psql -c "SELECT pid, usename, application_name, client_addr, state, sync_state FROM pg_stat_replication;"
Вывод:
  pid  | usename  | application_name | client_addr | state    | sync_state 
-------+----------+------------------+-------------+----------+------------
 12345 | replicator | walreceiver    | standby-ip  | streaming | async

2. Проверка расстояния до мастера

Проверьте, как далеко реплика от мастера:

Проверка расстояния до мастера
Команда
sudo -u postgres psql -c "SELECT pg_wal_lsn_diff(pg_current_wal_lsn(), replay_lsn) AS replay_lag_bytes FROM pg_stat_replication;"
Вывод:
 replay_lag_bytes 
------------------
               0

Проверка

Убедитесь, что репликация работает:

Проверка
Команда
sudo -u postgres psql -c "SELECT state FROM pg_stat_replication;"
Вывод:
 state    
----------
 streaming

Пройдите викторину

Для завершения урока необходимо пройти викторину