Уберите отстающую реплику из чтения и кандидатов на переключение, затем выясните, теряется время на получение WAL или на его применение.
Кластер PostgreSQL на Patroni + HAProxy держит 10 тысяч подключений. Внезапно упала репликация, и реплика начала отставать на несколько ГБ WAL-архивов. Как быстро привести реплику в норму без даунтайма?
Уберите отстающую реплику из чтения и кандидатов на переключение, затем выясните, теряется время на получение WAL или на его применение.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Уберите отстающую реплику из чтения и кандидатов на переключение, затем выясните, теряется время на получение WAL или на его применение.
Проверьте сеть, диски, WAL receiver/replay, доступность архива и удержание сегментов. Наличие 10 тысяч подключений требует отдельной оценки пула, но не доказывает причину отставания. Если нужные WAL сохранены, устраните bottleneck и дайте реплике догнать; если они утрачены, пересоздайте именно реплику из проверенного источника. Не переключайте трафик на заведомо отставший узел и контролируйте нагрузку на primary.