PostgreSQL: восстановление на определенный момент времени для отдельной базы данных, а не для всего кластера - PullRequest
0 голосов
/ 09 апреля 2019

Согласно стандартной документации Postgres

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

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

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

Проблема в следующем: мне нужно настроить несколько кластеров Postgres , и у меня есть только 2 машины RHEL 7.6 для этого. Я пытаюсь сократить количество кластеров на этих двух компьютерах до двух. Я планирую создать несколько баз данных, а не несколько экземпляров для обработки пользовательских приложений. Но это означает, что я должен пожертвовать PITS, поскольку PITR может выполняться только на уровне экземпляра / кластера, а не на уровне базы данных (согласно официальной документации).

Может ли кто-нибудь помочь прояснить мое недоразумение.

1 Ответ

1 голос
/ 09 апреля 2019

Вы правы, вы можете выполнять PITR только для кластера баз данных PostgreSQL, но не для отдельной базы данных.

Существует только один поток WAL для всего кластера базы данных;WAL - это , а не для каждой базы данных.

Не стесняйтесь запускать несколько кластеров PostgreSQL на одной машине, если это выгодно для вас.

Небольшие накладные расходыв запуске второго кластера базы данных.Самый большой ресурс кластера - это общие буферы, но вы все равно хотите, чтобы он составлял лишь часть доступной оперативной памяти.Большая часть памяти должна быть оставлена ​​для кэша файловой системы, который используется всеми кластерами PostgreSQL.

...