Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 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 инстанс работает любой из инструментов и можно восстанавливаться без промежуточного места.

Находил видео с выступлением в двух частях Антона Дорошкевича. Там точно было

Суть: проблема не только в бэкапах. Постгрес надо постоянно мониторить и тюнить под конкретную базу и ее профиль нагрузки (выделяемая память, воркеры и прочие тонкие материи). И если Вы положите несколько баз в один инстанс, это снизит гибкость настроек

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации