Содержание
1. Первым делом необходимо проверить, что репликация одинаковая на обоих серверах
Для этого запустите на Master команду:
select * from pg_stat_replication \gx
На Slave команду:
select * from pg_stat_wal_receiver \gx
Далее остановите службы postgresql
systemctl start postgresql
Сервер Master можно выключить или изолировать от сети, чтобы никто не пытался подключаться к нему и не изменились значения в базе.
2. Настройка SLAVE сервера
Далее подключитесь к SLAVE серверу и начните готовить его к смене роли.
Необходимо чтобы сервер остановил репликацию, для этого создадим триггер, который сообщит серверу, что он теперь Master и выйдет из режима READONLY.
nano /var/lib/postgresql/11/main/recovery.conf
#Добавьте триггер файл trigger_file = '/tmp/to_master'
Запустите службу postgresql и создадите файл-триггер
sudo systemctl start postgresql touch /tmp/to_master
Произведите настройку файла pg_hba.conf
#добавьте строки host cddisk cddisk 192.168.26.19/32 md5 host replication repluser 127.0.0.1/32 md5 host replication repluser 192.168.26.16/32 md5 host replication repluser 192.168.26.23/32 md5
Где
- 192.168.26.19 – cddisk сервер;
- 192.168.26.16 – Master сервер;
- 192.168.26.23 –сервер Slave.
Добавьте разрешение на подключение к серверу по порту 5432
sudo firewall-cmd --zone=public --permanent --add-port=5432/tcp sudo firewall-cmd --reload
Измените настройки конфигурационного файла postgresql.conf
wal_level = replica max_wal_senders = 1 max_replication_slots = 2 hot_standby = on hot_standby_feedback = on
Снова перезапустите службу postgresql
systemctl restart postgresql
На этом подготовка смены роли Slave на Master окончена.
3. Настройка Master
Подключитесь теперь к Master серверу и настройте его на роль Slave.
Остановите службу postgresql, если она еще включена
systemctl stop postgresql
Внесите изменения в конфигурационный файл
sudo nano /etc/postgresql/11/main/pg_hba.conf
#Убирите две записи host replication repluser 192.168.26.16/32 md5 host replication repluser 192.168.26.23/32 md5
Загрузите базу
su - postgres -c "pg_basebackup --host=192.168.26.23 --username=repluser --pgdata=/var/lib/postgresql/11/main --wal-method=stream --write-recovery-conf"
Где
- 192.168.26.23 – новый Master.
Запустите службу postgesql
systemctl start postgresql
4. Настройка КС2024
КС2024 настроен на подключение к старому Master серверу. Необходимо внести изменения в конфигурационные файлы.
Перейдите в директорию /opt/r7-office
измените адреса на новый Master в следующих файлах конфигурации:
/Api/appsettings.json /Sso.Api/appsettings.json /Processing/appsettings.json
Перезапустите службы:
sudo supervisorctl restart cddisk:api cddisk:processing
Далее проверить, что репликация работает можно следующим способом:
Для этого запустите на Master команду:
select * from pg_stat_replication \gx
На Slave команду:
select * from pg_stat_wal_receiver \gx