LINUX.ORG.RU
решено ФорумAdmin

Организация репликации баз данных с одним и тем-же именем в Postgres

 ,


0

1

Здравствуйте, имеется несколько серверов с одинаковыми названиями баз данных на Postgres, можно ли организовать репликацию этих баз на одном сервере slave и не будет ли конфликта в связи с идентичным названием баз?

Ответ на: комментарий от Rx0

Практической части с реализацией я не нашёл только теория, интересует каким образом это воплотить.

Необходимо будет создать для каждой базы данных путь к базе посредством команды

pg-setup initdb -D /usr/local/pgsql/data1 pg-setup set-server-port 5432
pg-setup initdb -D /usr/local/pgsql/data2 pg-setup set-server-port 5433
.
.
.
initdb -D /usr/local/pgsql/dataN set-server-port N
так-же в документации указано что: «Команда initdb не будет работать, если указанный каталог данных уже существует и содержит файлы; это мера предохранения от случайной перезаписи существующей инсталляции.»

В моем случае базы будут переноситься с помощью pg_basebackup и в дальнейшем будет производиться репликация используя этот сервер как slave.

Возникают следующие вопросы:

1. Правильно ли я представляю организацию запуска нескольких экземпляров postgres с помощью создания кластеров?

2. Существует ли другой метод запуска экземпляров postgres с указанием порта и пути базы данных, скажем через переменные и скрипт?

3. Каким образом осуществляется подключение к тому или иному экземпляру postgres (я так понимаю они будут объединены, но в моем случае базы называются одинаково)?

4. Можно-ли будет перенести в каталоги заданные под кластеры базы с помощью pg_basebackup?

depresnak
() автор топика

Может кому-то пригодиться

Создаем кластер для каждой бд

pg_createcluster -d /var/lib/postgresql/11/base1 11 base1
pg_createcluster -d /var/lib/postgresql/11/base2 11 base2
.
.
pg_createcluster -d /var/lib/postgresql/11/baseN 11 baseN

в /etc/postgresql/11/baseN

создаются конфиги при желании можно поменять порт

Удаляем созданные потраха

rm -R /var/lib/postgresql/11/base1

Бэкапим базу с существующего сервера

pg_basebackup -P -R -X stream -c fast -h 192.168.0.2 -U replica -D /var/lib/postgresql/11/base1/

стартуем базу

pg_ctlcluster 11 base1 start

Rx0 если вам нечего сказать кроме тыканья мануалом, то смысл вообще отвечать на пост

depresnak
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.