Задержка главного подчиненного (активировать синхронную фиксацию) и pg_xlog на отдельном диске
Мы готовимся добавить repmgr в существующий кластер потоковой репликации Postgresql 9.3 с двумя узлами.
Ранее у нас была серьезная проблема, которая затрагивала наш основной бизнес, проблема заключалась в задержке между ведущим и ведомым устройствами, которую мы решили, изменив конфигурацию следующим образом:
основной конфиг postgresql:
archive_timeout = 60
synchronous_commit = on
synchronous_standby_names = 'slave1'
archive_command = 'test ! -f /walshare/%f && cp %p /walshare/%f'
ведомое recovery.conf:
standby_mode = 'on'
primary_conninfo = 'host=master port=5432 user=repuser password=xxx application_name=slave1'
restore_command = 'cp /walshare/%f "%p"'
slave1 mount / walshare через NFS от мастера:
postgres@slave1:~$ mount -t nfs
master:/walshare on /walshare type nfs (rw,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800,addr=xx.xx.xx.xx,clientaddr=xx.xx.xx.xx)
Через активацию синхронного коммита мы наконец решили проблему задержки между ведущим и ведомым.
Нет, мы хотим перенастроить текущий кластер для управления с помощью repmgr для упрощения задач администрирования и отработки отказа.
Я создал новую виртуальную машину (с PG-9.4) и планирую перенести базу данных из старого кластера в новый.
Чтобы избежать проблемы с дисковым пространством pg_xlog, я решил поместить каталог pg_xlog в отдельный логический том на той же группе томов, что и логический том PGDATA.
/dev/mapper/datavg-pgsqllv mounted on /var/lib/pgsql
/dev/mapper/datavg-pgxloglv mounted on /var/lib/pgsql/9.4/data/pg_xlog
Мои вопросы:
- Это repmgr изначально активировать синхронную фиксацию, или я должен добавить его вручную в мастер postgresql.conf?
- Если синхронная фиксация включена, Master не работает, если подчиненный не отвечает, как repmgr управляет ситуацией?
- Когда repmgr создает нового ведомого (мастер-клон), удаляет ли он /var/lib/pgsql/9.4/data/pg_xlog и воссоздает нового?
- Наличие pgsqllv и pgxloglv в одной группе томов не влияет на производительность ввода-вывода? я должен использовать посвященный диск для pg_xlog?
- Следуя официальной документации repmgr, wal_keep_segments = 5000, для которой требуется pg_xlog, требуется 80 ГБ, 80 ГБ - это исправление, или минимальное пространство, если я должен создать свой логический том, достаточно большой, на 100 ГБ, например, для увеличения пространства на диске управления pg_xlog?
благодарю за помощь,
1 ответ
Ответ уже дан в дискуссионной группе repmgr: