@xxx44yyy

Куда копать в сторону поиска ошибки с репликой?

Есть один мастер с несколькими репликами. Всё работало вроде хорошо, но потом периодически у пользователей на сайте стала появляться ошибка, что-то вроде "нет соединения с базой". Решил посмотреть что происходить.

Отрываю лог мастера postgres, а там:
2022-01-01 23:56:02.501 MSK [4416] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:56:07.505 MSK [4417] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:56:12.505 MSK [4419] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:56:17.510 MSK [4457] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:56:22.507 MSK [4459] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:59:17.635 MSK [4954] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:59:22.642 MSK [4957] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:59:27.639 MSK [4958] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:59:32.643 MSK [4997] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:59:37.652 MSK [4998] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:59:42.652 MSK [4999] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:59:47.661 MSK [5037] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:59:52.667 MSK [5039] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006
2022-01-01 23:59:57.658 MSK [5040] replicator@[unknown] ERROR:  replication slot "japan_replica" is active for PID 3006


И таких сообщений тысячи. В реплике japan_replica открываю лог базы и там пусто на эту дату (есть сообщения в предыдущие дни).

Не понимаю куда копать в поисках ошибки. Ощущение, что после ERROR: чего-то не хватает.
  • Вопрос задан
  • 464 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Сообщение самодостаточное, ничего не пропущено.
У вас есть replication slot под названием japan_replica. Неких хост, настроенный как реплика с primary_slot_name = japan_replica каждые wal_retrieve_retry_interval (5 секунд) пытается продолжить репликацию, подключаясь к primary_conninfo. Указанный в primary_conninfo сервер отвечает "товарищ, ты что-то путаешь, этот слот репликации уже используется".
Один слот репликации = только один читатель.

Ищите ошибку в конфигурации. Может быть завели вторую реплику на неправильный слот.
Вьюшки pg_stat_replication, pg_replication_slots и добавление %h в log_line_prefix помогут прояснить происходящее.

К "нет соединения с базой" отношения не имеет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы