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

Por: Buckminster em 22/02/2023


Instalação e Configuração



Instalação

Depois de já instalado o Postgresql e o pgAdmin4 (versão do pgAdmin) no Debian e derivados utilize os seguintes comandos no terminal:

# apt-get update
# apt-get install pgagent

Não será abordada aqui a instalação "na unha".

Configuração

Antes de usar o pgAdmin para gerenciar o pgAgent você deve criar as extensões pgAgent do banco de dados no pgAdmin.

Para instalar/configurar o pgAgent em um host PostgreSQL, abra o pgAdmin (desktop ou web) e conecte-se ao seu banco de dados.

Para versões de servidor 9.1 ou posterior e pgAgent 3.4.0 ou posterior, clique na ferramenta Consulta (Query Tool), insira o seguinte comando:

CREATE EXTENSION pgagent;

e clique no ícone Executar (Execute/Refresh).

Depois insira o seguinte comando:

CREATE LANGUAGE plpgsql;

e clique no ícone Executar (Execute/Refresh).

Feito isso volte ao terminal e vamos criar/configurar quatro arquivos necessários para o bom funcionamento do pgAgent.

No final terão as explicações do porquê é necessário cada arquivo.

# vim /etc/init.d/pgagent.sh

(usei o vim, use o teu editor de texto preferido)

Coloque dentro:

#!/bin/bash
systemctl start pgagent
exit 0

Salve, saia e dê permissão de execução:

# chmod +x /etc/init.d/pgagent.sh

Verifique se já tem o arquivo rc-local.service:

# find / -type f -name rc-local.service

Caso já tiver o arquivo, somente verifique o conteúdo e vá para o próximo passo.

Caso não tiver, vamos criá-lo:

# vim /usr/lib/systemd/system/rc-local.service

NOTA: para Debian e derivados (Ubuntu etc), caso tua distribuição seja outra verifique o caminho certo.

Coloque dentro:

#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

Salve e saia. Não é necessário dar permissão de execução.

Crie o arquivo rc.local:

# vim /etc/rc.local

Coloque dentro:

#!/bin/bash
systemctl start pgagent
pgagent hostaddr=127.0.0.1 port=5433 dbname=banco1 user=postgres  # essa linha você deve modificar de acordo com teu banco, explicações no final
pgagent hostaddr=127.0.0.1 port=5432 dbname=banco2 user=postgres  # essa linha você deve modificar de acordo com teu banco, explicações no final
exit 0

Salve, saia e dê permissão de execução:

# chmod +x /etc/rc.local

NOTA: estamos usando o rc.local em conjunto com o rc-local.service do Systemd por uma questão de organização e facilidade.

Pesquise pelo arquivo pgagent.service:

# find / -type f -name pgagent.service

Caso não exista, vamos criá-lo:

# vim /usr/lib/systemd/system/pgagent.service

Coloque dentro:

[Unit]
Description=Arquivo do PgAgent feito por eu mesmo
ConditionFileIsExecutable=/usr/bin/pgagent
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/pgagent start
ExecStop=/usr/bin/pgagent stop
ExecReload=/usr/bin/pgagent restart
Restart=always
RestartSec=10
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Salve e saia. Não é necessário dar permissão de execução.

E está feita toda a configuração necessária para o bom funcionamento do pgAgent.

Com essas configurações você pode executar no terminal:

Para torná-lo inicializável com o sistema:

# systemctl enable pgagent

Para iniciá-lo:

# systemctl start pgagent

Para pará-lo:

# systemctl stop pgagent

Para reiniciá-lo:

# systemctl restart pgagent

Para verificar o status de funcionamento:

# systemctl status pgagent

Página anterior     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 OBS Studio e VLC no Slackware 15

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

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

Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg

Compilação do Squid 3 no Debian Wheezy

Leitura recomendada

PostGIS no Slackware

Pool de Conexões Transparentes no Postgres usando o pgpool

Sincronizando Dados do PostgreSQL no Elasticsearch

PostgreSQL: comandos básicos

Encoding do Postgres (latin1) e encoding do SO (Debian/Ubuntu)

  
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 => 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