Предисловие.
Получил задание на работе: установить линукс, 1с, postgres и подрубить непрерывное архивирование. Дело легкое, но при сдаче мне сказали, что на сервере будет 2 базы. И это была проблема, т.к восстанавливать определенную базу на определенный момент нельзя - весь кластер будет откатываться до необходимой отметки и затрагивать вторую рабочую базу. Сразу в голову приходит мысль о втором кластере, но доходчивой инфы в интернете мало поэтому на освоение этой темы мне понадобилось 3 дня и 3 ночи.
Даю вам все готовое.
Создаем каталоги и выдаем права
mkdir -p /usr/local/pgsql/data2/
chown postgres:postgres /usr/local/pgsql/data2/
chmod 750 /usr/local/pgsql/data2/
Создаем второй кластер
#Создаение и запуск будут происходить о имени постгреса
su - postgres
/usr/lib/postgresql/12/bin/pg_ctl initdb -D /usr/local/pgsql/data2/
Перед запуском необходимо поменять порт
#Важно! Конфиг второго кластера лежит в самом кластере, помните этого когда будете делать восстановление
nano /usr/local/pgsql/data2/postgresql.conf
#Убираем со строчки комментарий
port = 5433
#При желании можно привязать второй кластер к статичному айпи, который вы сделали заранее
listen_addresses = '10.115.1.145'
#Запускаем второй кластер
/usr/lib/postgresql/12/bin/pg_ctl -w -D /usr/local/pgsql/data2/ start
#Подключение ко втормоу кластеру через psql
postgres@ubuntu:~$ psql -p 5433
Скрипт для запуска второго кластера при запуске машины. Задержка на запуск скрипта обязательна, можете указать минуту.
mkdir -p /scripts/
nano /scripts/startup_cluster.sh
#!/bin/sh
sleep 200
sudo -i -u postgres /usr/lib/postgresql/12/bin/pg_ctl -w -D /usr/local/pgsql/data2/ start
chmod +x /scripts/startup_cluster.sh
crontab -e
@reboot /scripts/startup_cluster.sh
Теперь давайте зайдем в 1С и создадим базу на втором кластере
#Подключившись к кластеру через psql мы можем создать нового пользователя и задать ему пароль, выдать права и т.д
Создать пользователя user_test
CREATE USER user_test WITH password 'test';
Создать БД db_test и назначить владельцем пользователя traccar_user
CREATE DATABASE db_test OWNER user_test;
Добавить права на бд db_test пользователю user_test
GRANT ALL privileges ON DATABASE db_test TO user_test;
Добавить супер права на постргресс пользователю
ALTER USER user_test WITH SUPERUSER;
Добавить другие права на роль более современная тема чем юзер
ALTER ROLE user_test WITH CREATEDB REPLICATION;
Есть нужно убрать роли то добавляем NOCREATEDB NOREPLICATION;
Про непрерывное архивирование.
Включение и настройка такая же, как и на первом кластере. Важно не забывать, что конфиг второго кластера лежит в самом кластере, поэтому сначала восстаналивайтесь из архива, а после прописывайте параметры восстановления.
Моя статья про это - //infostart.ru/1c/articles/1495441/