Мы используем Postgres (9.3) Hot Standby для создания копии базы данных только для чтения. У нас есть пользовательский интерфейс, который читается с материализованного представления.Postgres материализованные виды с горячим резервом
Когда мы пытаемся прочитать из материализованного представления в резервной базе данных, запрос зависает.
Материализованный вид занимает ~ 10 секунд для восстановления в основной базе данных. Мы ожидали более 30 минут запроса в резервной базе данных и, похоже, никогда не завершаем.
Примечательно, что материализованный вид существует в резервной базе данных. Конечно, мы не можем его обновить (поскольку БД только для чтения)
В документации не найдено ничего, что указывает на то, что материализованные представления не могут использоваться в резервных базах данных, но это похоже на случай ,
У кого-нибудь есть это на работе и/или на что рекомендуется работать?
Прекрасно работает для меня в 9.5. Что означает ['pg_stat_activity.waiting'] (https://www.postgresql.org/docs/9.3/static/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW) для вашего резервного запроса? Где/когда/как вы обновляете свой взгляд на основной? Включает ли ваш запрос другие таблицы? –
Может быть проблемой блокировки. Посмотрите в 'pg_locks', если сеанс ожидает блокировки, удерживаемой кем-то другим. –
@LaurenzAlbe да. В процессе восстановления есть исключительная блокировка. Это может показаться проблемой, поскольку этот процесс всегда работает. Не знаете, что делать? –