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.621 ]

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

Manual traduzido do Squid

Instalação do PostgreSQL com Apache 2, PHP 5, OpenSSL no Debian Wheezy 7.7 64 bits com systemd e chroot

Instalar OBS Studio e VLC no Slackware 15

Configuração do sistema, DHCP, compartilhamento e DNS no Debian Squeeze

Encapsulando BIND 9 e Apache 2 para obter maior segurança

Leitura recomendada

PostgreSQL 9.4 - Replicação com slots

Autenticação no PostgreSQL - com exemplos

Monitorando Banco de Dados Postgres com ZABBIX

Microsiga Protheus com Postgres

Vacuum - otimizando sua base de dados 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