Что это значит

pg_probackup хранит полные бэкапы и архив журнала WAL между ними. Чтобы восстановиться на любой момент, архив должен быть непрерывным. Ошибка означает, что в нём дыра: сегмент не заархивировался. Бэкап, которому нужен этот сегмент, не проходит проверку, и восстановление после него на момент времени не получится.

Дыры появляются, когда archive_command какое-то время падал (кончилось место, недоступен каталог архива), а потом сегменты удалились с сервера базы.

Как проверить

  1. Есть ли дыры и где:
pg_probackup show -B <каталог> --instance <экземпляр> --archive
  1. Журнал PostgreSQL за время дыры: ошибки archive command failed, см. отдельную статью.
  2. Проверка бэкапов:
pg_probackup validate -B <каталог> --instance <экземпляр>

Что сделать

  1. Починить архивирование, если оно ещё падает.
  2. Сразу снять новый полный бэкап: от него архив снова будет непрерывным.
  3. Старые бэкапы до дыры остаются годными для восстановления на момент самого бэкапа, но не дальше дыры.
  4. Поставить алерты на падение archive_command и на дыры в архиве, а раз в месяц проверять восстановление на отдельной машине.