A имеет конфигурацию PITR с postgresql 9.6, с главным сервером, промежуточным сервером и двумя подчиненными серверами, с горячим резервированием, но с переключением вручную, например:
Master
|
I1
/ \
S1 S2
Сбой запись на диск привела к тому, что главный сервер взломал sh. Партнер группы разработчиков исправил ошибку и затем перезапустил основную базу данных (вместо продвижения промежуточного сервера, что является установленной процедурой). Из-за этого в последовательности отсутствует поврежденный частичный WAL и целый WAL.
Теперь у меня нет пропущенных транзакций, но подчиненный 1, а также промежуточный сервер жалуются на отсутствующий wal (ОШИБКА: запрошенный сегмент WAL [...] уже удален), даже если они все еще обновляются ; s2 также жалуется (то же, что и выше, но ему предшествует (FATAL: не удалось получить данные из потока WAL :), и он не обновляется.
Поскольку транзакции, происходящие, когда главный сервер вышел из строя, имеют-уже - казнили, мне плевать на пропавших без вести. Поэтому правильные вопросы таковы:
1) Как избавиться от ворчания по поводу пропавшего Вала? Я уже пробовал pg_resetxlog -l (следующий действительный файл WAL) -f (который больше не жалуется, но не обновляет) и pg_basebackup, который, что неудивительно при повторных попытках, возвращается к ситуации, описанной выше.
2) Почему один из подчиненных обновляет (неожиданно), а другой - нет (ожидается)? Сначала я подумал, что, возможно, обновляющее ведомое устройство напрямую соединяется с ведущим, но это не так; Я проверил файлы конфигурации, и они идентичны в обоих ведомых устройствах.
Спасибо за внимание