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