Комментарии 7
по схеме каждой БД свой пользователь
А зачем? Обычно в идеологии постгреса стоит делать 1 БД = 1 инстанс. Иначе вы потеряете возможность двоичных бекапов (они делаются целиком на инстанс). Вы пытаетесь таки несколько БД развернуть в одном инстансе и каждой своего пользователя сделать?
Обычно в идеологии постгреса стоит делать 1 БД = 1 инстанс.
Видел рекомендации 1 БД = 1 сервер. Про 1 БД = 1 инстанс не встречалось. Где можно почитать?
Иначе вы потеряете возможность двоичных бекапов (они делаются целиком на инстанс).
Так и сделается бэкап всего инстанса со всеми базами, тут, если я правильно помню, проблем нет. Если Вам нужно восстановить из него только 1 базу, то это, опять же, насколько я помню, несколько обходным путём сделано, восстанавливаются все базы, просто не нужные восстанавливаются пустыми.
Вы пытаетесь таки несколько БД развернуть в одном инстансе и каждой своего пользователя сделать?
Именно так.
Видел рекомендации 1 БД = 1 сервер. Про 1 БД = 1 инстанс не встречалось. Где можно почитать?
https://www.postgresql.org/docs/current/app-pgbasebackup.html
"pg_basebackup is used to take a base backup of a running PostgreSQL database cluster. The backup is taken without affecting other clients of the database, and can be used both for point-in-time recovery (see Section 25.3) and as the starting point for a log-shipping or streaming-replication standby server"
Вот "...of a running PostgreSQL database cluster" и отсутствие опций в нем по выбору конкретной базы.
Так и сделается бэкап всего инстанса со всеми базами, тут, если я правильно помню, проблем нет. Если Вам нужно восстановить из него только 1 базу, то это, опять же, насколько я помню, несколько обходным путём сделано, восстанавливаются все базы, просто не нужные восстанавливаются пустыми.
Хорошо, вот кейс: на сервере 5 рабочих разных баз, только одну конкретную из них надо откатить из бекапа "на вчера". Как это сделать в вашей схеме, желательно недолго?
Усложним, баз 200 (как у меня)
https://www.postgresql.org/docs/current/app-pgbasebackup.html
Так это же просто документация, а не рекомендации по конфигурации.
Как это сделать в вашей схеме, желательно недолго?
Прежде всего, сама 1С рекомендует pg_dump.
Если использовать двоичные бэкапы то с pg_basebackup никак.
С pg_probackup в отдельный инстанс: https://postgrespro.com/docs/postgrespro/current/app-pgprobackup#PBK-PARTIAL-RESTORE-OPTIONS и потом перенести в основной, если всё ок.
Прежде всего, сама 1С рекомендует pg_dump.
Это решение для маленьких баз. Я как-то 60гиговую выгружал между 2 и 3 часами. Для теста даже загрузил ее обратно: ~8 часов. Двоичные бекапы - меньше, чем за 30 минут справляются.
С pg_probackup в отдельный инстанс: https://postgrespro.com/docs/postgrespro/current/app-pgprobackup#PBK-PARTIAL-RESTORE-OPTIONS и потом перенести в основной, если всё ок.
А с 1 бд = 1 инстанс работает любой из инструментов и можно восстанавливаться без промежуточного места.
Находил видео с выступлением в двух частях Антона Дорошкевича. Там точно было
Суть: проблема не только в бэкапах. Постгрес надо постоянно мониторить и тюнить под конкретную базу и ее профиль нагрузки (выделяемая память, воркеры и прочие тонкие материи). И если Вы положите несколько баз в один инстанс, это снизит гибкость настроек
Шпаргалка по настройке PostgresPro-1C для 1C по схеме каждой БД свой пользователь