Если вы хотите, чтобы выполняемые процессы отображались в именах процессов, установите параметр Хотя ps или top — не лучший способ слежения за запросами к базе данных, в некоторых случаях это может иметь смысл. Если вы обнаружили, что некий запрос блокирован, надо выяснить, кто или что блокирует его. Как и в других случаях, используйте учетную запись суперпользователя для выполнения запросов. Иногда для того, чтобы система в целом могла продолжать работать, необходимо принудительно завершить сеансы обращения к базе данных, которые ведут себя неправильно. Принудительное завершение сеанса — не всегда лучшее решение, поэтому рассмотрите другие варианты. Возможно, предпочтительнее использовать менее жесткий вариант,
Разница состоит в том, что pg_cancei_backend отменяет выполняемый запрос, в то время как pg_terminate_backend принудительно завершает сеанс/процесс PostgreSQL целиком.
Если pg_terminate_backend не может принудительно завершить сеанс и необходимо, чтобы база данных продолжала обслуживать запросы, остается послать сигнал sigkill, процессу. Это можно сделать только через командную строку от имени системного администратора или пользователя postgres на том компьютере, где установлена база данных, с помощью команды:
Которая без промедления завершает сеанс, не позволяя закончить его корректно и заставляя таким образом postmaster завершить другие сеансы и перезапустить весь кластер. Поэтому не имеет значения, какой именно из сеансов получает SIGKILL. Учтите, что при значении параметра synchronous_commit равном off вы можете потерять некоторые предположительно завершенные транзакции, если «убиваете» сеанс. Итак, kin -9 является крайним средством на случай, если ничто другое не помогает, и не годится для повседневного использования.
Рубрика: Женский интерес