Introdução
A melhor forma de iniciar o trabalho com o PostgreSQL é instalando-o e começando a brincar um pouco com ele. Como a maioria das pessoas ainda utiliza o Windows no seu desktop, esse acaba sendo o principal ponto de partida. O PostgreSQL nasceu para rodar em ambientes Unix e derivados, mas, desde a versão 8.0, lançada em 2005, há uma versão nativa para o Windows que funciona muito bem. Ok, é fato que, se quer realmente tirar o melhor proveito do desempenho do PostgreSQL, você vai provavelmente rodá-lo em Linux ou num FreeBSD, no entanto, se está só querendo testar, desenvolver ou se performance não é um grande problema para você, ajeite-se na cadeira e mãos à obra!
Neste tutorial, veremos todo o processo de instalação, desde o download, as janelas e as etapas do instalador (bem como suas opções e curiosidades) até a pós-finalização do processo com as ferramentas Stack Builder e pgAdmin 4.
Download
Para começar, você deve baixá-lo diretamente da página oficial do PostgreSQL. Após clicar em “Download the installer”, é feito um redirecionamento para uma página contendo as versões disponíveis. Aconselhamos que baixe a mais recente ou verifique qual versão do PostgreSQL é homologada para o seu software (aqui, escolhemos a versão 16.1 para processador x86-64, a mais recente na data em que este texto foi escrito). Há também a opção de baixar o instalador compactado, em arquivo zip.
![Página oficial PostgreSQL](https://i0.wp.com/savepoint.blog.br/wp-_content/uploads/2024/06/Captura-de-tela-2024-06-04-123905-1024x455.jpg?resize=800%2C355&ssl=1)
![EDB PostgreSQL download: escolha sua versão](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-tela-2024-06-04-124322.jpg?resize=800%2C305&ssl=1)
Instalação
Após o download e ao abrir o arquivo do instalador, você verá a janela abaixo:
![Instalador PostgreSQL: boas-vindas](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-tela-2024-06-04-124445.jpg?resize=800%2C627&ssl=1)
O instalador é em inglês, mas isso não é um problema, pois não dificulta em nada a experiência. Nesta etapa, você deve clicar em ‘Next’ (Próximo) para, na sequência, escolher o local onde o PostgreSQL será instalado no computador (é recomendável manter a estrutura de pasta sugerida):
![Instalador do PostgreSQL: escolha o local de instalação](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-14.45.40.png?resize=800%2C628&ssl=1)
Após escolhido o local, você deve selecionar quais componentes deseja instalar, sendo uma boa opção deixar tudo marcado. Entre esses componentes, estão:
- PostgreSQL Server: servidor do PostgreSQL indispensável na instalação para uso local, sendo responsável pelas solicitações de conexão, consultas e funções essenciais do banco. Você só não vai instalar o server se já o tiver instalado em outro servidor e for utilizar esta máquina apenas para acessá-lo remotamente;
- pgAdmin 4: interface gráfica para administração do banco (caso não seja selecionado, é possível instalá-lo posteriormente através desta página, também do site oficial). É muito incomum não instalar o pgAdmin 4 aqui. Você ainda pode acessar localmente o banco de dados utilizando o “Command Line Tools”, mas a maioria das pessoas vai achar importante instalar o pgAdmin localmente para fazer uma administração local em modo gráfico;
- Stack Builder: ferramenta que permite a instalação de extensões adicionais. No começo, é difícil saber quais ferramentas adicionais você vai precisar, e pode ser que você não precise de nenhuma inicialmente. De qualquer forma, é possível rodar o instalador novamente e instalar novos componentes depois. Nem sempre é uma boa ideia sair instalando um monte de coisas que você não vai utilizar depois. Vamos comentar um pouco sobre os componentes mais adiante;
- Command Line Tools: ferramenta de linha de comando para interação com PostgreSQL. Não é todo mundo que gosta de ferramentas em modo texto na famosa tela da linha de comando do Windows. Mas os usuários mais tradicionais não abrem mão de usar o famoso “psql”. Recomendamos fortemente que você aprenda a usá-lo. Falaremos dele com calma em outro artigo mais para a frente.
Ao clicar em cada componente, é possível ter acesso à sua descrição. Para prosseguir, basta clicar novamente em ‘Next’ (Próximo).
![Instalador do PostgreSQL: selecione os componentes desejados](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-14.59.41.png?resize=800%2C628&ssl=1)
Nesta etapa, você deve escolher o local onde os dados desse programa serão salvos, ou seja, suas bases criadas. Se for para testes, estudos ou aplicações de portfólio, recomendamos deixar a estrutura de pastas padrão. Já em ambientes de produção, é recomendável separar um disco ou uma partição só para o banco de dados e talvez até para os logs. Também é importante avaliar o espaço em disco no destino se você tiver em mente o tamanho do banco de dados que deseja acomodar. E, então, mais uma vez, clicar em ‘Next’ (Próximo).
![Instalador do PostgreSQL: escolha o local de armazenamento de dados](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.29.07.png?resize=800%2C578&ssl=1)
Estamos chegando ao fim! Agora, você deve escolher a senha do superusuário (usuário do banco que possui todos os privilégios), que preferencialmente deve ser uma “senha forte”, seguindo alguns padrões de segurança como no mínimo 8 caracteres, maiúsculos, minúsculos, especiais e números.
![Instalador do PostgreSQL: definição de senha do superusuário](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.30.30.png?resize=800%2C629&ssl=1)
Na penúltima tela de configuração, você tem a opção de escolher a porta para utilização do servidor do banco. Aconselhamos deixar na padrão 5432, mas também é possível escolher outra que esteja disponível. Caso você já tenha uma versão de PostgreSQL instalada em seu desktop, não será possível instalar na porta já utilizada, sendo necessário que você escolha outra ou deixe para o próprio instalador sugerir uma porta diferente (no nosso caso, foi na 5433, conforme imagem abaixo).
É importante observar que, se você planeja permitir acesso externo ao servidor, é necessário combinar o número da porta escolhida com o administrador de rede para liberar rotas nessa porta. Além disso, é bom que se diga que mudar a porta padrão 5432 para outra não vai aumentar o nível de segurança da sua instalação.
![Instalador do PostgreSQL: selecione a porta para o servidor](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.31.19.png?resize=800%2C629&ssl=1)
E como última etapa de setup, você deve selecionar a localidade a ser utilizada no PostgreSQL (opção ‘Portuguese-Brazil’).
![Instalador do PostgreSQL: selecione a localidade a ser utilizado pelo banco de dados](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.32.32.png?resize=800%2C629&ssl=1)
A seguir, você verá uma tela com as informações das configurações escolhidas para a instalação, como um resumo do que foi feito até aqui. Aí, se estiver tudo certo, basta confirmar novamente clicando em ‘Next’ nesta e na próxima tela, que é uma confirmação da instalação:
![Instalador do PostgreSQL: pronto para instalar](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.35.57.png?resize=800%2C629&ssl=1)
Então, aguarde a barra de carregamento ficar completa e pronto: você terá a tela final da instalação do PostgreSQL! Ao deixar a caixinha selecionada, o Stack Builder é aberto em uma nova janela para instalar suas extensões e ferramentas adicionais.
![Instalador do PostgreSQL: instalação concluída](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.37.00.png?resize=800%2C629&ssl=1)
Stack Builder
Caso deseje incrementar seu PostgreSQL, o primeiro passo no Stack Builder é escolher para qual versão instalada do PostgreSQL as ferramentas adicionais serão baixadas, conforme na imagem abaixo:
![Stack Builder: selecione sua instalação do PostgreSQL](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.38.15.png?resize=800%2C548&ssl=1)
Após isso, você verá uma tela com as aplicações disponíveis para serem instaladas e, então, é só selecionar a caixinha da opção desejada (para ver o detalhamento de cada categoria, basta clicar nos “+” ao lado das bandeirinhas vermelhas).
![Stack Builder: selecione as aplicações que deseja instalar](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.39.48.png?resize=800%2C547&ssl=1)
Abaixo estão as descrições resumidas de cada extensão, também disponíveis no próprio Stack Builder em inglês (para ver, basta clicar na extensão desejada):
Ferramentas:
- EDB Language pack: contém as versões necessárias do Python, Perl e TCL/TK para serem utilizadas com pl/python, pl/perl e pl/tcl no PostgreSQL e EPAS. Por padrão, o PostgreSQL vem com o pl/pgSQL, que é a linguagem procedural mais utilizada por aí, mas existe todo um universo de possibilidades para serem exploradas. Use com ponderação;
- pgAgent: agente de agendamento de tarefas para o PostgreSQL, capaz de executar tarefas em lote/multifase, comandos de shell e consultas SQL em cronogramas complexos. Pode ser gerenciado usando o pgAdmin;
- pgBouncer: software que trabalha como um pool de conexões do lado do PostgreSQL (em geral, vemos pools de conexões do lado da aplicação). Ele gerencia e reutiliza conexões de banco de dados.
Drivers (instale de acordo com a linguagem de programação que você utiliza):
- Npgsql: provedor de dados .NET para PostgreSQL;
- pgJDBC: coleção de drivers JDBC para PostgreSQL (JDBC3, JDBC4 e JDBC41). Empacotado pela EnterpriseDB;
- psqlODBC: driver ODBC oficial do PostgreSQL (versão 32 bits). Empacotado pela EnterpriseDB.
Produtos de registro necessários e de avaliação: são softwares desenvolvidos pela EnterpriseDB (EDB) que não fazem parte do PostgreSQL desenvolvido pela comunidade. Algumas destas ferramentas são proprietárias e oferecidas apenas na versão de avaliação. A EDB faz um bom trabalho com o instalador do Windows e de quebra acaba vendendo o seu peixe. Você provavelmente não precisa destas ferramentas agora, mas pode estudar mais sobre elas no site da EDB:
- Migration Toolkit: ferramenta de linha de comando para migrar bancos de dados de Oracle, MySQL e SQL Server para o PostgreSQL;
- PEM SQL Profiler Plugin for PostgreSQL: Plugin SQL Profiler para o Postgres Enterprise Manager (ferramenta para monitorar, gerenciar e ajustar implantações de Postgres);
- Postgres Enterprise Manager Agent: agente de monitoramento para o Postgres Enterprise Manager, para acompanhamento de servidores;
- Replication Server: oferece suporte à replicação de tabelas baseadas na partição declarativa do PostgreSQL;
- SQL/Protect for PostgreSQL: módulo para proteção de bancos de dados Postgres contra diversos tipos de ataques de injeção de SQL.
Extensões espaciais:
- PostGIS: “habilita espacialmente” o servidor PostgreSQL, permitindo que seja utilizado como um banco de dados espacial de backend para sistemas de informações geográficas (GIS).
Desenvolvimento web:
- PEM-HTTPD: servidor web Apache pré-configurado, compilado para ser usado com o PostgreSQL.
Esta é a primeira visão do pgAdmin após a instalação. Faremos um breve tutorial só sobre esta ferramenta mais adiante:
![pgAdmin 4](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.42.23.png?resize=800%2C365&ssl=1)
Informações adicionais
Serviço
- O PostgreSQL é instalado com inicialização automática nos serviços do Windows, por isso não há preocupação em subi-lo e descê-lo toda vez que for se conectar em uma base;
- Para mudar a inicialização para manual, é só acessar o ‘Services’ (Serviços) do Windows, clicar com o botão direito em cima de ‘postgresql’ e selecionar ‘Propriedades’ > ‘Tipo de inicialização’;
- Caso queira interromper o serviço, também é pelo ‘Services’ (Serviços), bastando clicar com o botão direito em cima dele e depois em ‘Parar’;
- Para casos de duas versões instaladas do PostgreSQL, ambas ficam visíveis e identificáveis entre os serviços.
![Serviços: postgresql](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.43.57.png?resize=800%2C165&ssl=1)
![Serviços: duas versões de PostgreSQL](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.44.56.png?resize=800%2C74&ssl=1)
Arquivos
Após a instalação, dentro da pasta do PostgreSQL (C:\Program Files\PostgreSQL\16), há uma estrutura de pastas onde as principais são ‘bin’ e ‘data’, sendo a primeira o local para armazenamento dos arquivos binários (executáveis) e a segunda, dados das bases criadas, conforme citado anteriormente.
Na pasta ‘data’, existem subpastas e, dentre elas, a ‘base’, sendo ela a responsável por guardar os dados das bases de dados, separando em mais um nível de subpastas para cada base. Falaremos também com mais detalhes sobre esses arquivos e essas pastas num artigo mais adiante.
Os arquivos de configuração (.conf) são:
- postgresql: arquivo de configuração principal;
- pg_hba: controla os detalhes de autenticação e segurança do servidor;
- pg_ident: mapeia usuários do sistema operacional, o Windows neste caso, para usuários do banco.
Na pasta ‘bin’, estão os arquivos responsáveis por realizar várias operações relacionadas ao banco de dados, sendo alguns dos principais:
- initdb: inicializa um novo cluster de banco de dados;
- pg_ctl: inicia, para, reinicia e controla o servidor PostgreSQL;
- pg_dump: realiza backups lógicos;
- pg_restore: restaura bancos de dados a partir dos backups feitos pelo pg_dump;
- pg_config: fornece informações de configuração sobre instalação do PostgreSQL;
- psql: interface de linha de comando para interação com banco de dados PostgreSQL;
- createdb: cria novos bancos de dados;
- createuser: cria novos usuários dos bancos;
- pgbench: ferramenta de benchmarking para PostgreSQL, que permite simular o desempenho do banco de dados em diferentes cenários.
![Gerenciador de arquivos: arquivos do PostgreSQL](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.47.10.png?resize=800%2C498&ssl=1)
Processos
Abaixo estão alguns dos processos que rodam na execução de um servidor do PostgreSQL. Infelizmente, no Windows, não podemos conferir os diferentes tipos de processos rodando. Alguns desses processos são relativos à instância do PostgreSQL (serviços internos para acessar os dados, gravar logs, realizar checkpoints etc.) e outros são conexões dos usuários com o banco de dados. Nos próximos artigos, veremos que, no Linux, é possível diferenciar cada um desses processos pelo sistema operacional.
![Processos do PostgreSQL](https://i0.wp.com/savepoint.blog.br/wp-content/uploads/2024/06/Captura-de-Tela-2024-06-04-as-15.49.34.png?resize=800%2C361&ssl=1)
Documentação
Para mais informações, basta consultar a documentação oficial, presente no mesmo site que você acessou para fazer o download.
Conclusão
Vimos que o processo de instalação do PostgreSQL é simples e rápido (leva menos de 10 minutos dependendo da sua máquina e das opções que você escolher). No entanto, há escolhas que você precisa fazer no caminho, e essas escolhas podem ser importantes principalmente se você estiver fazendo a instalação para um ambiente de produção. Mas, se não for o caso, apenas relaxe e siga em frente, você tem todo o direito de mudar de ideia e refazer esses passos depois.