Postgres Kill Query Pid

Postgres Kill Query Pid

Enquanto trabalha no banco de dados PostgreSQL, podemos encontrar situações em que alguns dos processos são interrompidos ou enforcados, e não os queremos mais. Cada usuário de banco de dados tentará remover ou encerrar essas conexões do sistema de banco de dados em tal situação. PostgreSQL criou instruções simples para fazer isso. Ele fornece a função PG_CANCEL_BACKED () e PG_TERMINATE_BACKEND () para utilizar o ID do processo para uma consulta específica para cancelar e encerrar -a junto com a conexão que ela é mantida dentro de alguns segundos. Neste guia, discutiremos o uso de ambas as funções em nossas consultas de banco de dados para matar as consultas.

Usando PostgreSql Pgadmin GUI:

Vamos começar com a ilustração simples de matar uma sessão de um banco de dados PostgreSQL usando o ID do processo na consulta. Começaremos a partir da interface PGadmin GUI do banco de dados PostGresql. Abra -o usando a barra de pesquisa do seu sistema Windows 10. Adicione a senha do seu servidor e banco de dados. No nosso caso, o banco de dados é "aqsayasin". Você precisa abrir a "ferramenta de consulta" do seu banco de dados usando o ícone da ferramenta de consulta mantido no topo da GUI PGADMIN.

Vamos exibir todas as sessões ou processos do PostgreSQL na área de consulta. Para isso, você precisa usar a consulta selecionada com o sinal "*" junto com a palavra -chave "pg_stat_activity". Execute esta consulta usando a placa "Triângulo" na barra de tarefas de consulta pgadmin. Todos os processos atuais serão mostrados na sua área de saída de dados de pgadmin como abaixo. Um total de 8 registros foram encontrados.

Vamos matar um processo de identificação "908". Precisamos utilizar duas funções dentro da consulta selecionada na área de consulta para matar um processo. O primeiro é pg_cancel_backend () função e o segundo é pg_terminate_backend () função. A função pg_cancel_backend () é usada para simplesmente cancelar a consulta de um banco de dados usando o ID do processo para uma consulta específica. Não encerrar a conexão do banco de dados. Enquanto a função PG_TERMINATE_BACKEND () cancela a consulta usando o ID do processo para a consulta e fecha o banco de dados conectado. Então, estamos utilizando ambas as consultas simultaneamente na mesma ferramenta de consulta para matar o processo com ID “908”. Na execução, temos o valor booleano "verdadeiro" abaixo da coluna "pg_terminate_background". Isso significa que a consulta e a conexão foram encerradas com sucesso.

Vamos ver se a consulta selecionada de seu ID do processo foi encerrada ou não. Para isso, usamos a consulta Select novamente com a palavra -chave “PG_STAT_ACTIVIDADE”. A grade de saída mostra que a consulta "908" se foi.

Vamos deixá -lo mais claro selecionando apenas as consultas com estado igual a "ocioso". A mesma consulta será usada com a cláusula WHERE para colocar a condição de "estado = 'ocioso'". Em troca, temos apenas dois resultados para consultas com um estado 'ocioso'. Vamos matar o ID do processo “7316”.

Para matar a consulta do ID do processo "7316", precisamos cancelá -la primeiro usando a mesma consulta "Selecionar" com a função "pg_cancel_backend ()", tomando ID do processo como argumento. Execute a consulta mostrada na área de consulta com o botão de execução mantido na barra de tarefa PGADmin GUI. A saída mostra o valor booleano "True" na coluna "PG_Cancel_Backend". Isso significa que a consulta para um processo específica foi cancelada finalmente.

Vamos encerrar a consulta junto com a conexão do banco de dados. Portanto, a instrução SELECT foi usada mais uma vez até agora com a função "PG_TERMINAMENT_BACKEND ()". O ID do processo foi mencionado no argumento da função "PG_Terminate_backend ()". A saída para este programa exibe o valor booleano "verdadeiro" na coluna "PG_TERMINATE_BACKEND". Isso significa que a consulta com ID do processo “7316” finalmente terminou, e a conexão para esta consulta é encerrada junto com ela.

Vamos ver se podemos encontrar a consulta justificada e terminada com ID de processo 7316 na área de saída ou não. Então, utilizamos a mesma consulta selecionada com a palavra -chave “PG_STAT_ACTIVIDADE” e a executamos na ferramenta de consulta do PosTregsql pgadmin. Ele não mostra o ID de consulta/ processo especificado na saída, que afirma que já foi.

Usando o PostgreSQL Shell Console:

Tudo o que fizemos é matar a consulta com sua conexão dentro da GUI pgadmin de PostgreSQL. Também podemos alcançá -lo usando o terminal de shell do PostGresql. Pesquise -o no aplicativo Windows 10 usando a barra de pesquisa na sua área de trabalho. Escreva "PSQL" e clique nele ao aparecer. Ele será aberto como uma tela preta pedindo que você adicione o nome do host local que você possui. Adicione isso e pressione Enter. Ele pedirá o nome do banco de dados em que você deseja trabalhar. Se não for nenhum, use o padrão "PostGres". Temos usado o banco de dados "Aqsayasin" até agora e o número da porta 5432. Adicionamos o nome de usuário e sua senha já criada em nosso banco de dados, eu.e., aqsayasin. Se você não tem nenhum usuário criado, vá com o nome de usuário "PostGres" padrão. Depois que todas as credenciais foram adicionadas, seu shell postgreSQL está pronto para ser usado.

Antes de matar qualquer consulta específica com seu ID do processo, precisamos ver as consultas e sessões atualmente funcionando, ativo, ocioso e apenas apresentando. Portanto, usaremos um comando "selecione" no shell junto com as colunas de informações que queremos exibir para a consulta específica através do utilitário pg_stat_atividade do banco de dados PostGresql.

Digamos que você queira ver o ID do processo de uma consulta, o nome de usuário pelo qual essa consulta foi executada, o banco de dados em que esta consulta foi usada e o estado de uma consulta. Afirmamos todos os nomes de colunas que queremos buscar para obter consultas. A instrução SELECT retornou 9 registros. Temos um total de 1 consulta ativa e 3 consultas/atividades ociosas.

Vamos tentar remover as consultas com um estado "ocioso". Por isso, usamos o ID do processo “10892” para remover a consulta relacionada a ele. Usamos o método "pg_cancel_backend" primeiro para cancelá -lo e depois a função "PG_TERMINATE_BACKEND ()" para encerrá -lo junto com a conexão. Ambas as consultas retornam “T” como verdadeiras para cancelar e remover.

Após a remoção de uma consulta estadual "ociosa", vamos remover a consulta com ID do processo “12488” também. Os mesmos comandos foram usados ​​aqui separadamente no terminal. Ambos retornam o valor booleano "verdadeiro", o que implica que a consulta e a conexão específicas se foram.

O mesmo processo foi usado novamente para a consulta com ID do processo “11164”, como mostrado.

Depois de matar as consultas de 3 'Idle' com seus IDs de processo, vamos ver se foi bem -sucedido ou não. Use a mesma instrução selecionada usando o utilitário "pg_stat_activity" para exibir a lista de todas as consultas/processos do sistema de banco de dados. A saída mostra que todas as consultas "ociosas" foram removidas e rescindidas permanentemente até agora.

Conclusão:

Este tutorial é um guia simples para usar a função pg_cancel_backend () e pg_terminate_backend () para matar a consulta específica e sua conexão. O principal objetivo de usar essas funções nas consultas é simplesmente remover as consultas indesejadas ou sessões de banco de dados, i I.e., parado. Assim, este artigo explicou a idéia de limpar seu sistema de banco de dados de consultas e conexões indesejadas e "ociosas" em segundos em segundos.