бэкапы нескольких баз с помощью pg_probackup

1. user1865658 28.10.22 08:15 Сейчас в теме
Сервер на Debian, СУБД - postgresPro-12. Сейчас на этом одном сервере 4 информационные базы (две Документооборот и 2 ERP, они в одном кластере). Делаем бэкапы с помощью pg_probackup.

pg_probackup делает бэкап ВСЕХ баз вместе и если нужно восстановиться, то восстанавливает ВСЕ четыре. Есть ли возможность настроить бэкапы так, чтобы была возможность восстанавливать по 1 базе? Например, если нужно одну базу откатить на вчерашний день или на какой-то момент времени до критической ошибки, но остальные базы не трогать.
Может не pg_probackup, а какой-то другой инструмент это умеет? Требуется, чтобы была возможность по 1 базе восстанавливать к нужной точке во времени.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. rintik 19 28.10.22 08:27 Сейчас в теме
Можно разнести базы на разные кластеры PG?
4. user1865658 28.10.22 08:37 Сейчас в теме
(2) насколько я понимаю, 1 сервер - 1 кластер, если несколько кластеров, нужно запускать несколько экземпляров серверов postgres. Правильно ли так делать?
3. user1326147 28.10.22 08:31 Сейчас в теме
Можете pg_probackup делать резервные копии для аварии например, а для ваших рабочих моментов использовать pg_dump.
5. user1865658 28.10.22 08:42 Сейчас в теме
(3) если авария всего сервера(физической машины), то тут понятно - мы всё восстанавливаем. Но если у меня проблемы с 1 базой (кто-то случайно удалил лишнее) и мне нужно откатить конкретно эту базу на три часа назад, то мне pg_dump не поможет, он не поддерживает восстановление к точке во времени. К тому же, нужно параллельно поддерживать 2 вида бэкапов (делать регулярно и pg_dump, и pg_probackup)
9. user1326147 28.10.22 09:19 Сейчас в теме
(5)Не пользовался pg_probackup, это платная утилита?, спрашиваю т.к. утверждается, что pg_probackup позволяет частичное восстановление, вы же читали документацию?

Если вы подготовились к частичному восстановлению до того, как сделали резервную копию, вы можете восстановить только некоторые базы данных, используя параметры частичного восстановления с командой restore.

Чтобы восстановить только некоторые базы данных, выполните команду restore как минимум со следующими параметрами:

pg_probackup restore -B backup_dir --instance имя_экземпляра --db-include=имя_базы
10. user1865658 28.10.22 09:35 Сейчас в теме
(9) папка, в которую идет восстановление, должна быть пуста. то есть я удалю 4 базы, а восстановлю одну. Или мне нужно восстанавливать в другое место одну базу, а потом ее переносить, как предлагает ниже redfred :
8. redfred 28.10.22 09:08
Как вариант - разворачивать на промежуточном сервере весь кластер на нужный момент времени и уже там делать дамп конкретной базы




Хочется найти решение проще, если оно есть.

Утилита бесплатная
6. rintik 19 28.10.22 08:46 Сейчас в теме
(4) 1 сервер - 1 кластер - такой рекомендации чет не встречал. Сейчас работает 1 сервер 1С и 3 службы PG на разных портах в разных каталогах.
7. user1865658 28.10.22 09:01 Сейчас в теме
(6) можно мне литературу, ссылки как такое настраивается
8. redfred 28.10.22 09:08 Сейчас в теме
Как вариант - разворачивать на промежуточном сервере весь кластер на нужный момент времени и уже там делать дамп конкретной базы
23. user1865658 28.10.22 13:53 Сейчас в теме
(8) Да, это сработает, но хочется вариант проще
11. rintik 19 28.10.22 09:36 Сейчас в теме
(7) Поискать "run two instances postgres" пример https://stackoverflow.com/a/48903584
postgresql.conf указать порт и прочие настройки безопасности и производительности
Добавить пользователя
postgres=# CREATE USER postgres SUPERUSER;
postgres=# ALTER USER postgres PASSWORD 'КрепкийПароль';
Настроить подключение с сервера 1с на нужный порт
Бэкап
pg_basebackup -stream -p 5444 -U %PGUSER% --format=tar -z -D %PGBACKUP% -P 2>%LOGPATH%
Прикрепленные файлы:
12. XAKEP 28.10.22 12:35 Сейчас в теме
pg_dump — это программа для создания резервных копий базы данных Postgres Pro. Она создаёт целостные копии, даже если база параллельно используется. Программа pg_dump не препятствует доступу других пользователей к базе данных (ни для чтения, ни для записи).

Программа pg_dump выгружает только одну базу данных. Чтобы сохранить глобальные объекты, относящиеся ко всем базам в кластере, например, роли и табличные пространства, воспользуйтесь программой........
13. XAKEP 28.10.22 12:37 Сейчас в теме
pg_probackup — это утилита для управления резервным копированием и восстановлением кластеров баз данных Postgres Pro. Она предназначена для регулярного создания резервных копий экземпляра
14. user1865658 28.10.22 13:05 Сейчас в теме
(13) а есть ли какая-то утилита, которая будет делать бэкапы отдельных баз, с возможностью восстановиться к точке во времени?
18. XAKEP 28.10.22 13:15 Сейчас в теме
(14)
есть

злой админ
добрый админ
15. karamazoff 96 28.10.22 13:10 Сейчас в теме
16. karamazoff 96 28.10.22 13:10 Сейчас в теме
"C:\Program Files\PostgreSQL\11.10-2.1C\bin\pg_dump.exe" --host localhost --port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --section pre-data --section data --section post-data --encoding UTF8 --verbose --file "C:\1cBackupNew\BP_backup_%date:~6,4%-%date:~3,2%-%date:~0,2%.backup" "BP"
17. XAKEP 28.10.22 13:15 Сейчас в теме
19. karamazoff 96 28.10.22 13:16 Сейчас в теме
20. XAKEP 28.10.22 13:20 Сейчас в теме
"старик" будет - он вам ссылку на свою публикацию оставит
я не готов сейчас ее дать, не пользовался....

обучение и пример
https://wiki.postgresql.org/wiki/Automated_Backup_on_Linux
21. user1326147 28.10.22 13:35 Сейчас в теме
(20)
The idea is to run these in a nightly cron job.

Запускается по CRON каждую ночь.

TC делает резервные копии по часам.
22. user1865658 28.10.22 13:52 Сейчас в теме
(20)

За пример спасибо. Сценарий отличный, но он делает только pg_dump. То есть если я делаю бэкапы ночью, то и восстановиться могу только на состояние последней ночи. Это хорошо, но передо мной стоит задача восстанавливаться к определенному времени. Если сотрудник напортачил и удалил документ в конце рабочего дня в 17:30, нужно и восстанавливать базу в состояние 17:20 (или 17:00), но не в состояние ночного бэкапа (результат целого дня работы будет потерян).
24. XAKEP 28.10.22 17:47 Сейчас в теме
(22)
если на время восстанавливаться , то нужно держать архив wal .

полностью :)

но у меня не тот уровень знаний......
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот