Atenção: por essa edição ser muito antiga não há arquivo PDF para download.
Os artigos dessa edição estão disponíveis somente através do formato HTML.

Clique aqui para ler todos os artigos desta edição

PostgreSQL

O caminho das pedras

Muitos programadores possuem o poder de decisão sobre o SGBD a ser utilizado em sua empresa. Com o avanço do Linux no mundo dos servidores e o aumento da qualidade e oferta dos BDs gratuitos, muitos optaram por migrar de um SGBD pago para um gratuito. Dentre os que optaram pela migração, muitos desistiram de utilizar o PostgreSQL devido a algumas dificuldades no primeiro contato com o software.

Senti essa dificuldade “na pele” quando decidi migrar vários sistemas do MSSQL para um SGBD gratuito. No começo foi um pouco difícil de acostumar com as diferenças de sintaxe, etc. Através de pesquisas, artigos e palestras, percebi que o PostgreSQL era um dos BDs mais recomendados, pois implementa todas as características de um SGBD de alto nível, além de ser muito robusto.

Neste artigo pretendo ensinar algumas técnicas de como trabalhar com o PostgreSQL, mostrando o caminho das pedras. Abordaremos tópicos desde a criação de tabelas até uma leve otimização do desempenho de queries.

Caso o leitor ainda esteja estudando qual SGBD utilizar, este artigo poderá lhe fornecer uma noção bem clara de como trabalhar com o PostgreSQL no Linux, e talvez seja um fator decisivo na sua escolha.

Configurações iniciais

É muito comum instalar o PostgreSQL através de pacotes RPM. Após a instalação, geralmente enfrentamos alguns problemas que podem ser resolvidos através de uma boa leitura na documentação. Um dos primeiros problemas enfrentados é a tentativa de conexão de um cliente com o servidor. Uma das perguntas mais freqüentes dos iniciantes é: “Porque consigo conectar o PostgreSQL através do console no servidor Linux, mas não de um terminal de rede?”. O fato aqui é que o servidor de banco de dados vem totalmente protegido, e para liberar conexões devemos editar alguns arquivos de configuração, são eles: pg_hba.conf e postgresql.conf, ambos localizados na pasta data, dentro do diretório onde foi instalado o PostgreSQL.

Habilitando a conexão de clientes

No arquivo pg_hba.conf, encontramos as configurações de IP e password do sistema. É por meio deste arquivo que dizemos ao PostgreSQL de quem ele deve aceitar conexões, e se estas conexões devem pedir senha. Através deste arquivo, determinamos também se o PostgreSQL deverá aceitar conexões de fora de sua rede local. O arquivo contém exemplos de configurações e descrições dos modos de autenticação disponíveis. Uma autenticação segura e muito utilizada é a md5. Há também exemplos de máscaras de IP’s para conexões de rede local e internet. Como estes arquivos estão devidamente comentados, e portanto são auto-explicativos, não entrarei em maiores detalhes. A pessoa mais indicada para configurá-los é o administrador de rede, podendo, por exemplo, liberar o acesso de sua rede interna e bloquear o acesso de usuários que não estejam no domínio através do endereço IP.

No exemplo da Listagem 1, a primeira linha libera o acesso a todos databases no console do próprio servidor, sem autenticação. A segunda linha libera o acesso ao database db_empresa somente para o IP especificado, utilizando a autenticação do tipo trust. A terceira linha libera o acesso a todos os databases de qualquer estação, utilizando a autenticação do tipo md5.

 

Listagem 1. pg_hba.conf.

#TYPE DATABASE     IP_ADDRESS            MASK           AUTH_TYPE   AUTH_ARGUMENT

local   all                127.0.0.1                255.255.255.0

host    db_empresa   168.192.137.12                 255.255.255.0         trust

host    all                0.0.0.0                            0.0.0.0                   md5

 

O arquivo postgresql.conf contém as configurações de inicialização do banco. É importante habilitarmos as conexões via tcp-ip / porta / max-connections / buffers. A pessoa mais indicada para configurar este arquivo é o próprio programador ou o DBA. É importante ressaltar que devemos remover a “#” do início da linha para que ela não seja interpretada como um comentário. Segundo a documentação do PostgreSQL, o valor para buffers deve ser o dobro do valor de max-connections. Na Listagem 2 vemos um exemplo de configuração. Perceba que as linhas não estão necessariamente nessa ordem no arquivo original.

 

...

Quer ler esse conteúdo completo? Tenha acesso completo