Instalando e Configurando o pgAgent no Linux (pgAdmin e PostgreSQL)

O pgAgent é um agente de agendamento de tarefas para o banco de dados Postgresql. O pgAgent executa scripts em lote (batch), shell scripts e várias tarefas SQL em agendamentos até complexos. Será mostrado como configurar corretamente o pgAgent para seu bom funcionamento.

[ Hits: 5.632 ]

Por: Buckminster em 22/02/2023


Introdução



O pgAgent é um agente de agendamento de tarefas para o banco de dados Postgresql. O pgAgent executa scripts em lote (batch), shell scripts e várias tarefas SQL em agendamentos até complexos. Será mostrado como configurar corretamente o pgAgent para seu bom funcionamento.

O pgAgent é também um agente de agendamento que executa e gerencia trabalhos como o Cron no Linux ou o Agendador de Tarefas no Windows. Cada tarefa no pgAgent consiste em uma ou mais etapas e cronogramas. Se dois ou mais jobs forem agendados para execução simultânea o pgAgent executará os jobs em paralelo (cada um com sua própria thread).

O pgAgent é executado como um daemon em sistemas Unix e como um serviço em sistemas Windows. Na maioria dos casos ele será executado no próprio servidor do banco de dados e por esse motivo o pgAgent não é configurado automaticamente quando o pgAdmin é instalado.

O pgAgent é distribuído independentemente do pgAdmin.

Trabalhos individuais podem ser direcionados a um host específico ou deixados para execução por qualquer host. O bloqueio impede a execução da mesma instância de um trabalho por vários hosts.

Você pode ter um ou mais jobs com o mesmo agendamento ou pode ter um agendamento para cada job (trabalho ou tarefa) como pode ter vários agendamentos para o mesmo job.

Ainda que não seja muito aconselhável abusar do pgAgent, pois não é função do banco de dados gerenciar agendamentos, podemos utilizar o pgAgent do pgAdmin para algumas tarefas selecionadas que não exijam muito do banco, pois, como já visto, na maioria dos casos o pgAgent é executado no próprio servidor do banco de dados.

Tarefas mais pesadas, como backup, por exemplo, prefira o Cron ou o Agendador de Tarefas.

Por exemplo, aqui no servidor temos dois campos em duas tabelas onde é necessário fazer update todos os dias tornando-os nulos com o comando "UPDATE schema.tabela SET campo = null WHERE data_atual <= CURRENT_DATE-1;" então agendamos essas tarefas no pgAgent para todos os dias à meia-noite.

Prefira o Cron do Linux ou o Agendador de Tarefas do Windows para agendar tarefas mais pesadas do Postgresql, porém, você sabendo dosar nada há que impeça o uso do pgAgent.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação e Configuração
   3. Informações sobre os arquivos
Outros artigos deste autor

Squid - Entendendo um pouco as configurações

Instalar Minecraft, League of Legends e Fortnite no Linux

Compilação do Squid 3 no Debian Wheezy

VMD no Debian - Instalação e configuração

Problema no GRUB no Debian Squeeze 6.0.7 [Resolvido]

Leitura recomendada

Replicação de dados síncrona com Postgres

Programando PostgreSQL + PHP

PostGIS no Slackware

PgBouncer - Instalação no Debian 6.0 Squeeze

Diagrama Entidade-Relacionamento com Dia e tedia2sql para o PostgreSQL

  
Comentários
[1] Comentário enviado por removido em 22/02/2023 - 15:07h

Estranho configurar dessa forma. Com base na documentação oficial => https://uploadme.me/view/N18



[2] Comentário enviado por Buckminster em 23/02/2023 - 14:01h


[1] Comentário enviado por amarildosertorio em 22/02/2023 - 15:07h

Estranho configurar dessa forma. Com base na documentação oficial =&gt; https://uploadme.me/view/N18





O arquivo /etc/pgagent/pgagent_12.conf não tem no Debian nem no Ubuntu.
Na instalação (apt-get install pgagent) é criado somente o /usr/bin/pgagent que é o executável.

[3] Comentário enviado por removido em 24/02/2023 - 18:08h


O arquivo /etc/pgagent/pgagent_12.conf não tem no Debian nem no Ubuntu.
Na instalação (apt-get install pgagent) é criado somente o /usr/bin/pgagent que é o executável.


https://gist.github.com/peterneave/83cefce2a081add244ad7dc1c53bc0c3

[4] Comentário enviado por Buckminster em 24/02/2023 - 22:10h


[3] Comentário enviado por amarildosertorio em 24/02/2023 - 18:08h


O arquivo /etc/pgagent/pgagent_12.conf não tem no Debian nem no Ubuntu.
Na instalação (apt-get install pgagent) é criado somente o /usr/bin/pgagent que é o executável.


https://gist.github.com/peterneave/83cefce2a081add244ad7dc1c53bc0c3



Sim, é outra forma de instalar e configurar o PgAgent.
Aqui o comando update-rc.d pgagent.sh defaults não surtiu efeito (talvez coisas do systemd), por isso tive que criar o rc.local.

E no arquivo /usr/lib/systemd/system/pgagent.service tice que mudar a linha
ExecStart=/usr/bin/pgagent -s ${LOGFILE} -l ${LOGLEVEL} host=${DBHOST} dbname=${DBNAME} user=${DBUSER} port=${DBPORT}
para
ExecStart=/etc/rc.local start e criar o rc.local assim mesmo, pois com a linha original estava dando o erro
pgagent.service: start request repeated too quickly.
e não iniciava o serviço nem na reinicialização e nem com o comando systemctl start pgagent.service

Somente deu certo quando fiz a alteração.
Como eu disse, são várias formas de configurar no Linux.


[5] Comentário enviado por maurixnovatrento em 12/03/2023 - 14:59h


bom artigo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts