Содержание
1. Первым делом необходимо проверить, что репликация одинаковая на обоих серверах
Для этого запустите на Master команду:
select * from pg_stat_replication \gx
На Slave команду:
select * from pg_stat_wal_receiver \gx
sent_lsn
были равны received_lsn
.Далее остановите службы 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.
Запустите службу PostgreSQL:
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