Instalação e Configuração do servidor PostgreSQL no Linux

Veja neste artigo os procedimentos necessários para realizar a instalação de um servidor do banco de dados PostgreSQL no sistema operacional Linux. Serão apresentados ainda fundamentos da arquitetura desse SGBD.


Figura 1: Logo do PostgreSQL

Um pouco de  fundamentos da arquitetura do PostgreSQL

Para entendermos um pouco da arquitetura do PostgreSQL é necessário  compreender como as partes do PostgreSQL interagem.

Existem dois processos (daemon) que atuam diretamente da execução do servidor.

Caso o cliente não esteja  no servidor, o mesmo se comunica com o servidor através de uma conexão de rede TCP/IP.

O servidor PostgreSQL pode tratar várias conexões  simultâneas de clientes. Para esta finalidade é iniciado um novo processo para cada conexão.

Composição do processo cliente postgres

Aplicativos Clientes

Aplicações que podem ser utilizados a partir de qualquer lugar com usuário pelo menos com privilégios de execução.

Aplicativos Servidor

Estes comandos só podem ser úteis quando executados no host onde o servidor de banco de dados reside.

Organização dos Arquivos de Bancos de Dados

Os dados necessários para um agrupamento de banco de Dados são armazenados dentro do diretório de Dados, geralmente é configurado através de  uma váriavel de ambiente denominada PGDATA. No linux, o caminho  padrão é /var/lib/pgsql/data.

Estrutura de Arquivos

Conteúdo do PGDATA

Quando uma tabela ou um índice excede 1Gb,  este é dividido em segmentos de até 1 GB. O nome do primeiro arquivo de segmento é o mesmo do filenode, os arquivos subseqüentes  são chamados de filenode.1, filenode.2, etc. Esta organização evita problemas em plataformas que possuem limitação de tamanho de arquivo.

O filenode da tabela geralmente corresponde ao seu OID(Object identifier, identificador de objeto=Número único gerado automaticamente para controle interno dos objetos.

WAL = Write Ahead Logging

Abordagem padrão para registrar transações, o conceito central aborda que as alterações nos arquivos de dados só poderão ser efetivadas quando a mesma poderá ser escrita em disco. Benefícios: tedução significativa no número de escritas em Disco.

Chega de teoria, vamos para prática.

Instalação do Servidor  PostgreSQL no Linux

A mais exercida no mundo Linux, através do repositório linux.

Listagem 1: Instalando do servidor PostgreSQL no Linux

apt-get install postgresql

A instalação é concluída em poucos segundos, após o download do pacote.

Instalação via pacote binário

Justificativa para devida instalação: desta forma iremos compilar o pacote do postgres e o mesmo será ajustável conforme o kernel do seu sistema operacional. Com isso podemos ganhar performance no servidor de Banco de dados.

Passos:

1 - www.postgresql.org/ftp/source/v8.2.22/

2 - Download da versão binary qualquer formato compactado. Usaremos aqui (tar.gz).

3 - Escolher um mirror.

4 - Descompactar o arquivo baixado.

5 - Entrar na pasta que foi gerada após a descompactação.

6 - Instalar os pacotes listados abaixo.

Listagem 2: Instalação dos pacotes binários

apt-get install g++ apt-get install libreadline-dev apt-get install zlib1g-dev

7 - ./configure --prefix=/etc/postgresql/ --with-pgport=5432     #pré configurado o pacote postgresql

8 - make #compilando o pacote postgresql

9- make install #instalando o pacote postgresql

10 - Adicionar um usuário postgres através do comando adduser postgres.

Obs.: O usuário postgres fora criado basicamente para gerenciar os serviços do bd, exemplo: inicializar e reinicializar o servidor de banco de dados.

11 - Criar um diretório para os arquivos de dados. Sugestao mkdir /etc/postgresql/data/

12 - Atribuir privilégios para usuário postgres na pasta /etc/postgresql/bin/ através do comando chown postgres /etc/postgresql/bin -R -f

13 - Atribuir privilégios para usuário postgres na pasta /etc/postgresql/data/ através do comando chown postgres /etc/postgresql/data -R –f

14 – Entrar na pasta com o comando cd /etc/postgresql/bin/

15 – Digitar su postgres e caso solicitada  digitar a senha cadastrada

16 - ./initdb –D /etc/postgresql/data /

17 - Para inicializar o servidor basta seguir as instruções da listagem abaixo.

18- Utilizando a ferramenta apt-get install vamos agora instalar a ferramenta pgadmin3. Com o comando apt-get install pgadmin3.

Obs.:Os passos 12 e 13 estamos definindo que o usuário postgres será o responsável por inicializar o servidor de banco de dados, bem como o dono do diretório /etc/postgresql/data por isso estejam atentos antes de executar os comandos localizados dentro do diretório /etc/postgresql/bin/.

Vale ressaltar que para inicializar o servidor de banco de dados. Você deverá entrar com usuário postgres.

Listagem 3: Comandos para inicializar o servidor

./postgres -D /etc/postgresql/data ou  ./pg_ctl -D /etc/postgresql/data -l logfile start

Listagem 4: Resultado do commando de inicialização do servidor

  LOG:  database system was shut down at 2011-12-01 16:11:47 AMT  LOG:  checkpoint record is at 0/42D5CC  LOG:  redo record is at 0/42D5CC; undo record is at 0/0; shutdown TRUE  LOG:  next transaction ID: 0/880; next OID: 16385  LOG:  next MultiXactId: 1; next MultiXactOffset: 0  LOG:  database system is ready 

Obs.: O sistema informa que o servidor de banco de dados já encontra-se pronto para “trabalhar”.

Para deixar o servidor rodando e você continuar utilizando o terminal, aperte a tecla Ctrl e a tecla Z do teclado e digite bg para rodar o processo em background e o terminal ficar disponível.

Os arquivos de configuração do PostgreSQL estarão disponível na seguinte pasta: /etc/postgresql/data/.

Voltemos para Composição do PGDATA. Atenção para esses arquivos.

pg_hba.conf: arquivo responsável por armazenar os usuários que possuem acesso ao servidor PostgreSQL. Este arquivo deverá ser configurado para fornecer o primeiro acesso ao Servidor de banco de dados PostgreSQL. No final do arquivo, localizar as informações abaixo e substituir md5 por trust, conforme exemplo abaixo.

Listagem 5: Conteúdo substituídoi do arquivo ph_hba.conf

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD  # IPv4 local connections:  host    all         all         127.0.0.1/32          trust  # IPv6 local connections:  host    all         all         ::1/128               trust 

postgresql.conf: arquivo carregado  durante a inicialização do servidor PostgreSQL,  neste arquivo encontram-se registradas informações do tipo qual porta que o servidor irá trabalhar, qual o endereço IP que ele atenderá a requisições.

Acessando o Pgadmin3 e Testando o servidor recém instalado

Abra pgadmin3 e preencha as seguintes informações.

O servidor de banco de dados já encontra-se instalado e pronto para ser utilizado, as alterações abaixo são para necessidades específicas.

Complementos

Listagem 6: Alterações no postgresql.conf para disponibilizar o servidor para um ip específico

Listen_adresses='localhost, 192.168.0.10' #ip_do_servidor onde fora instalado o postgres  Port =5432(default)  Max_connections=100 

Listagem 7: Alterações no pg_hba.conf para disponibilizar o servidor para uma rede específica – rede 25

#Significa que toda a rede 172.22.25.xx  poderá acessar o servidor PostgreSQL.  local    DB    user    cidr-address        method  Host     all     all     172.22.25.0/24     md5 #suporta senhas criptografadas 

O arquivo já vem configurado com uma breve descrição(manual)  para possíveis alterações. Adicionar no final do arquivo as linhas acima.

Ainda podemos especificar qual base de dados e qual usuário poderá acessar o servidor através da sintaxe abaixo.

Listagem 8: Alterações no pg_hba.conf para disponibilizar um banco para um ip específico

local    DB        user        cidr-address        method  Host     pgdayrr        participantes     172.22.25.103/32        md5 

Significa que o ip 172.22.25.103 só  poderá ter acesso apenas ao banco de dados pgdayrr com o usuário “participantes”.

Não é aconselhável deixar que  qualquer usuário acesse o servidor de banco de dados, já que o mesmo poderia ser um alvo de hacker na internet, por exemplo. E a opção trust no arquivo pg_hba.conf não deverá ficar configurada como trust, o correto é deixar como md5, pois com trust significa que o usuário não precisará de senha para acessar o servidor basta o usuário.

PostgreSQL live

São imagens de CD que permitem você rodar e utilizar o PostgreSQL e uma seleção de softwares e ferramentas correlatas sem instalar nada no seu PC. Extremamente útil para disponibilização de servidores PostgreSQL em poucos minutos.

Turnkey Linux e PostgreSQL - http://www.turnkeylinux.org/

Um live CD baseado no Ubuntu e um software pré-configurado caracterizado por uma interface Web com tema Mac OS e um console de instalação em Python.

Após o download do arquivo basta gravar a imagem em um cd, carregar o computador através do boot do cd, selecionar a segunda opção, que descreve “tentar executar o cd live sem modificações nenhuma no sistema atual”.

Após o carregamento do sistema o mesmo solicitará a senha para o administrador do sistema Linux e outra senha para usuário postgres. Após o sistema carregar, definir um endereço ip para tal servidor e pronto, o mesmo está acessível através do ip que você definiu.

Benefícios TURNKEY:

Mais informações

Conclusão

O PostgreSQL é uma poderosa ferramenta de banco de dados sendo utilizada em grandes aplicações principalmente pela sua robustez. A configuração que rege o sistema PostgreSQL é um  dos passos mais importantes para sua devida disponibilização.

Artigos relacionados