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

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

Instalar e configurar o Nftables com exemplos básicos de configurações

Instalação do Comodo Antivirus para Linux (CAVL) resolvendo o problema de dependências

Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha

Instalação do Ventoy, programa para criar pendrives inicializáveis

Enviar mensagem ao usuário trabalhando com as opções do php.ini

Leitura recomendada

Como migrar banco de dados MySQL para PostgreSQL

PostgreSQL - Instalação inicial no Debian Wheezy 64 bits

Postgres e os Sistemas Alterdata

Monitorando Banco de Dados Postgres com ZABBIX

Pool de Conexões Transparentes no Postgres usando o pgpool

  
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