pg_probackup icon indicating copy to clipboard operation
pg_probackup copied to clipboard

Ошибка при бекапе на реплике.

Open shab2 opened this issue 9 months ago • 2 comments

pg_probackup-14 2.5.15 (PostgreSQL 14.11) Архивация на строена на реплике. Бекап с реплики pg_probackup backup
-b FULL
--instance $instance_name
--threads 4
--delete-expired Ошибка в логе бекапа: INFO: Failed to find Recovery Time in WAL, forced to trust current_timestamp

shab2 avatar Mar 28 '25 07:03 shab2

если я делаю бекап с резервного сервера, то параметр --pghost должен указывать на праймари, или на реплику?

shab2 avatar Mar 28 '25 08:03 shab2

Ошибка в логе бекапа:

Это не ошибка, там же написано: INFO. Ошибка это ERROR, на худой конец WARNING. После завершения бекапа pg_probackup просматривает WAL от backup_stop LSN до backup_start LSN (в обратном порядке) в попытках найти хотя бы одну запись WAL, содержащую метку времени. Видимо, в базе нет транзакций пишущих за время снятие бекапа. Поэтому pg_probackup берет текущее время и записывает его как Recovery Time. В целом, это влияет только на восстановление на момент времени (PITR). Если вы не пользуетесь этим функционалом - можно не обращать внимание.

--pghost должен указывать на праймари, или на реплику?

Должен указывать на тот сервер, с которого хотите копировать файлы. В вашем случае - реплика. Пробекап запрашивает различные параметры с сервера. В том числе вызывается SELECT pg_catalog.pg_is_in_recovery(), чтобы понять откуда тянем данные: мастер или реплика. Так же, обращаю внимание, что 2.5 не умеет ругаться на несовпадение порта. Если на сервере находится несколько кластеров на разных портах - обязательно указывайте корректный --pgport, соответствующий PGDATA. Иначе команды pg_start/stop_backup() уйдут не на тот сервер и бекап будет битый с большой долей вероятности.

Ogurezzz avatar Nov 10 '25 09:11 Ogurezzz