2013 11 24 Slackware 14.0 com PostgreSQL, pgAgent e Plugin Debugger
Post
Cancel

Slackware 14.0 com PostgreSQL, pgAgent e Plugin Debugger

A documentação abaixo, foi elaborada pelo Felipe AKA Carcamano, que autorizou a publicação no meu blog.

Este tutorial refere-se a instalação do PostgreSQL 9.2.5 compilada e distribuida pela EnterpriseDB. Em seguida iremos configurar o banco e diretórios para receber a instalação do pgAgent (Schedule Tasks Within a Postgres Database Server). E por fim iremos habilitar o Debuuger de PL/SQL (plpgsql) neste banco.

Então vamos lá!

INSTALANDO O POSTGRESQL

Para instalar a distribuição do PostgreSQL provida pela EnterpriseDB, vamos precisar do paconte linux-pam, baixe e instale:

root@slack14vm:~# wget http://slackpack.ludost.net/packages/slackware-13.1/linux-pam-1.1.3-i486-1gds.txz
root@slack14vm:~# installpkg linux-pam-1.1.3-i486-1gds.txz

Agora vamos baixar e instalar o PostgreSQL, todas as versões disponíveis podem sem encontradas em

http://www.enterprisedb.com/products-services-training/pgdownload, abaixo vou utilizar a x86-32 por conta do minha versão do Slackware:

root@slack14vm:~# wget http://get.enterprisedb.com/postgresql/postgresql-9.2.5-1-linux.run
root@slack14vm:~# chmod +x postgresql-9.2.5-1-linux.run
root@slack14vm:~# ./postgresql-9.2.5-1-linux.run

Neste ponto a instalação pode ser feita toda no padrão que virá no pacote. A única coisa que modifiquei foi a senha do usuário "postgres" no banco. Este usuário é o Super User do banco.

Pronto. O PostgreSQL está instalado e já está rodando! A partir deste ponto irei considerar que a instalação do PostgesSQL foi feita com os parâmetros default passados pelo Installer, ok?

Para testar que o Banco está rodando você pode logar no Banco e rodar o comando db que lhe retornará todas as Table Spaces disponíveis. O q dará quit no psql, veja:

root@slack14vm:~# /opt/PostgreSQL/9.2/bin/psql -U postgres
Password for user postgres:

postgres=# db

List of tablespaces
Name | Owner | Location
------------+----------+----------
pg_default | postgres |
pg_global | postgres |
(2 rows)

postgres=# q
root@slack14vm:~#

Agora vamos alterar alguns arquivos de configuração para facilitar algumas situações.

Adicione permanentemente ao $PATH o seguinte diretório. Para fazer isso você deve editar o arquivo "/etc/profile" :
- /opt/PostgreSQL/9.2/bin

Feito isso, iremos editar o arquivo pg_hba.conf com seu editor de texto preferido:

root@slack14vm:~# mcedit /opt/PostgreSQL/9.2/data/pg_hba.conf

Iremos alterar as entradas de localhost para autenticação "trust" ou seja, em localhost o banco não irá solicitar a senha.  Também será adicionada uma linha neste arquivo permitindo conexões de rede ao banco porém estas autenticadas por senha. a parte final do arquivo deverá ficar assim:

# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres md5
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5

Agora vamos preparar o arquivo de inicialização. Na verdade este arquivo já está pronto, mas foi copiado pelo instalador do pacote para um caminho que não me agrada, então irei alterá-lo:

root@slack14vm:~# mv /etc/init.d/postgresql-9.2 /etc/rc.d/rc.postgres

Agora precisamos reiniciar o PostgreSQL para reler o pg_hba.conf:

root@slack14vm:~# /etc/rc.d/rc.postgres restart

Pronto. Nossa instalação do PostgreSQL está concluída!

HABILITANDO PL/SQL DEBUGGER PARA O PGADMIN

O PL Debugger é um excelente recurso para desenvolvedores. Habilitar este recurso é mais simples o que parece (vale lembrar que este recurso está disponível somente na versão disponibilizada pela EnterpriseDB), o que a torna realmente difícil é que não existe uma explicação na internet que diga de fato como fazer.

Primeiro precisamos saber se o banco sabe onde está o diretório de Libs, rode o comando:

root@slack14vm:~# pg_config --pkglibdir

Voce deve obter /opt/PostgreSQL/9.2/lib/postgresql como retorno.

Agora precisamos habilitar a lib. Edite o arquivo "/opt/PostgreSQL/9.2/data/postgresql.conf" procure por "shared_preload_libraries". Descomente e coloque o valor '$libdir/plugin_debugger.so'. A linha deverá ficar assim:

shared_preload_libraries = '$libdir/plugin_debugger.so'

Precisamos também executar o Script de debbug, veja:

 

root@slack14vm:~# psql -U postgres -f /opt/PostgreSQL/9.2/share/postgresql/extension/pldbgapi--1.0.sql

 

Agora basta reiniciar o banco que o Debugger estará funcionando:

root@slack14vm:~# /etc/rc.d/rc.postgres restart

INSTALANDO O PGAGENT

O pgAgent é um software auxiliar ao PostgreSQL. Minha necessidade de com ele é o Schedule de Jobs dentro do banco. O pgAgent basicamente fica rodando como serviço e verificando algumas tabelas em banco, literalmente conferindo se há algum Job para rodar, e se houver ele roda.

Os jobs podem ser criados tanto em ambiente gráfico com o pgAdmin (mesmo com o pgAdmin como client em Windows) quanto com Inserts em SQL, mas iremos nos limitar neste tutorial a instalar o pgAgent, os Jobs ficam para outra hora e também porque são muito simples de serem criados dentro do pgAdmin.

O pgAgent é bastante complexo de compilar, pois ele demanda das bibliotecas wxGTK e wxWidgets, por isso vou utilizar uma versão que já deixei preparada para está versão e que pode ser baixada pelo Stackbuilder. Apenas a titulo de curiosidade, o Stackbuilder também é distribuído pela EnterpriseDB e é um excelente assistente gráfico para instalação de plugins e extensões do PostgreSQL, mas como nem sempre temos acesso gráfico ao servidor, vou deixar uma versão já pronta para download.

Nota: Para rodar o Stackbuilder, você irá precisar criar dois links simbólicos, são:

root@slack14vm:~# ln -s /opt/PostgreSQL/9.2/pgAdmin3/lib/libtiff.so.5 /usr/lib/libtiff.so.5
root@slack14vm:~# ln -s /opt/PostgreSQL/9.2/lib/libiconv.so.2 /usr/lib/libiconv.so.2

Bom, vamos colocar esse pgAgent para rodar!

root@slack14vm:~# cd /opt/PostgreSQL/9.2/
root@slack14vm:/opt/PostgreSQL/9.2# wget http://www.bcj.com.br/download/postgres/pgAgent-3.3.0.tar.gz
root@slack14vm:/opt/PostgreSQL/9.2# tar -zxvf pgAgent-3.3.0.tar.gz
root@slack14vm:/opt/PostgreSQL/9.2# psql -U postgres -f /opt/PostgreSQL/9.2/pgAgent/share/pgagent.sql
root@slack14vm:/opt/PostgreSQL/9.2# mv /opt/PostgreSQL/9.2/pgAgent/rc.pgagent /etc/rc.d/rc.pgagent
root@slack14vm:/opt/PostgreSQL/9.2# /etc/rc.d/rc.pgagent start
root@slack14vm:/opt/PostgreSQL/9.2# rm pgAgent-3.3.0.tar.gz
root@slack14vm:/opt/PostgreSQL/9.2# cd ~

CONCLUSÃO

Como queríamos demonstrar a instação do PostgreSQL é simples dependendo de como você quer fazê-la. O que na minha opinião faltava era um tutorial simples.

Tudo que foi feito aqui pode ser feito baixando os fontes e compilando. Mas se você tiver uma situação de instalação em ambiente de produção em massa, por exemplo, ter que instalar em 30 ou 40 servidores, este tutorial pode te ajudar muito.

Espero ter ajudado, boa sorte a todos!

This post is licensed under CC BY 4.0 by the author.