Как настроить два одинаковых сервера для автоматического перехода на другой ресурс в PostgreSQL 9.1.
Операционные системы
Centos 5
PostgreSQL 9.1 скомпилирован из исходного кода
Учетная запись пользователя postgres существует на обеих машинах и имеет ssh-пароль без пароля для подключения к обеим машинам.
Моя текущая настройка:
Конфигурация главного сервера:
postgresql.conf:
listen_address = '*'
wal_level = hot_standby
max_wal_senders = 3
checkpoint_segments = 16
wal_keep_segments = 8
archive_mode = on
archive_command = 'cp "%p" /opt/pgsql91/archive/"%f"'
pg_hba.conf:
host replication all 10.0.66.1/32 trust
host replication all 10.0.66.2/32 trust
Резервный сервер
postgresql.conf и pg_hba.conf идентичны тем, которые настроены на главном сервере.
recovery.conf:
standby_mode = 'on'
primary_conninfo = 'host=10.0.66.1'
trigger_file = '/opt/pgsql91/data/trigger.txt'
Благодаря hzRoot я теперь понимаю, как переключить сервер с резервного на главный.
Используя следующие команды, я могу синхронизировать нового ведомого с новым ведущим, а затем получить резервную копию репликации и запустить ее.
О новом мастере (10.0.66.2)
- су - постгрес
- коснитесь trigger.txt в / opt / pgsql91 / data /
- recovery.conf становится recovery.done
- psql -c "; SELECT pg_start_backup ('backup', true)";
- rsync -a -v -e ssh / opt / pgsql91 / data / 10.0.66.1:/opt/pgsql91/data/ --exclude postmaster.pid
- psql -c "; SELECT pg_stop_backup ()";
На новом рабе (10.0.66.1)
- создайте recovery.conf: cp recovery.done to recovery.conf
- vi recovery.conf изменить IP-адрес: primary_conninfo = 'host = 10.0.66.2'
- начать postgresql
Итак, мои вопросы сейчас:
- Это правильный способ поменяться ролями?
- Кто-нибудь автоматизировал этот процесс, если да, что вы делали?
- Если синхронная репликация включена, я заметил, что новый главный сервер не будет совершать никаких транзакций, потому что он ожидает ответа ведомого. Однако нет ведомого, потому что другой сервер, старый мастер не работает. Это правильно, или мне нужно временно отключить синхронную репликацию, когда новый ведомый не работает?