Слежение за запросами с помощью ps

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



Рубрика: Женский интерес

Комментарии закрыты.