Postgresql Репликация главный-подчиненный отстала, но pgpool отправлял трафик c обоим дБ (master-n-slave) - PullRequest
0 голосов
/ 30 апреля 2020

Мы выполняем балансировку нагрузки базы данных, используя pgpool2 framwork (master + 1 slave).

Вчера я получил несколько ошибок базы данных на тестовом сервере, говоря: ' столбец X не существует 'После отладки мы обнаружили, что репликация ведущий-ведомый остановлена ​​или отстала из-за того, что миграция django была выполнена только на главном сервере, но не на ведомом . pgppol все еще отправлял запросы на чтение на подчиненный сервер.

Как я могу избежать таких проблем или автоматизировать, чтобы сработала сигнализация или , если что-то случится.

1 Ответ

1 голос
/ 02 мая 2020

Если вы используете потоковый режим (который используется по умолчанию)

master_slave_mode = on
                                   # Activate master/slave mode
                                   # (change requires restart)

Вам необходимо настроить следующие параметры для проверки состояния репликации:

# - Streaming -

sr_check_period = 10
                                   # Streaming replication check period
                                   # Disabled (0) by default
sr_check_user = 'nobody'
                                   # Streaming replication check user
                                   # This is neccessary even if you disable streaming
                                   # replication delay check by sr_check_period = 0
sr_check_password = ''
                                   # Password for streaming replication check user
                                   # Leaving it empty will make Pgpool-II to first look for the
                                   # Password in pool_passwd file before using the empty password

sr_check_database = 'postgres'
                                   # Database name for streaming replication check
delay_threshold = 10000000
                                   # Threshold before not dispatching query to standby node
                                   # Unit is in bytes
                                   # Disabled (0) by default

Вот документация этого будущего: https://www.pgpool.net/docs/latest/en/html/runtime-streaming-replication-check.html

...