Использование JPA для запроса статуса репликации postgres - PullRequest
0 голосов
/ 16 октября 2018

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

em.createNativeQuery("SELECT application_name, backend_start, state, cast(write_lag as text) FROM pg_stat_replication;").getResultList();

К сожалению, все столбцы, кроме application_name, возвращают ноль.Даже если я только запускаю

 em.createNativeQuery("SELECT backend_start FROM pg_stat_replication;").getResultList();

, я получаю нулевой результат.Если я выполню тот же запрос в клиенте командной строки postgres, я получу значимый результат:

dbname=# select backend_start from pg_stat_replication;
         backend_start         
-------------------------------
 2018-10-16 09:01:58.262578+02
(1 row)

Я использую spring-boot 1.2.6 с hibernate и postgresql 10.5.

Что я могу сделать, чтобы получить результаты для этого запроса?

1 Ответ

0 голосов
/ 16 октября 2018

Сразу после публикации я понял, что я использую разных пользователей в CLI и из Java.Очевидно, пользователь должен быть суперпользователем или иметь роль по умолчанию pg_read_all_stats.Как это:

GRANT pg_read_all_stats TO user;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...