Como instalar o PostgreSQL 16 no Ubuntu 24.04, 22.04 ou 20.04

PostgreSQL 16 marca uma atualização significativa no mundo dos sistemas de gerenciamento de banco de dados. Lançado oficialmente em 14 de setembro de 2023, o PostgreSQL 16 apresenta muitos novos recursos e melhorias, fortalecendo sua posição como uma solução de banco de dados robusta e versátil para usuários, administradores e desenvolvedores.

Abaixo estão alguns dos principais destaques dos recursos do PostgreSQL 16:

  • Aprimoramentos de paralelização: O PostgreSQL 16 permite a paralelização de junções de hash FULL e internas direitas OUTER, melhorando significativamente o desempenho da consulta.
  • Melhorias na replicação: introduz a capacidade de replicação lógica de servidores em espera e permite que os assinantes apliquem grandes transações em paralelo.
  • Capacidades de monitoramento: adicionar a visualização pg_stat_io permite um monitoramento mais aprofundado das estatísticas de E/S.
  • Suporte SQL/JSON: esta versão apresenta construtores SQL/JSON e funções de identidade, ampliando seus recursos de manipulação de dados.
  • Desempenho de congelamento a vácuo: O PostgreSQL 16 melhora o desempenho do congelamento a vácuo, auxiliando na manutenção eficiente do banco de dados.
  • Correspondência de Expressões Regulares: A correspondência de expressões regulares para nomes de usuários e bancos de dados em pg_hba.conf e nomes de usuários em pg_ident.conf aumenta a segurança e a flexibilidade.

Agora, vamos prosseguir com as instruções técnicas e nos aprofundar no processo de instalação do PostgreSQL 16.

Pré-requisitos para instalação do PostgreSQL 16

Para instalar com êxito o PostgreSQL 16 no Ubuntu, certifique-se de atender aos seguintes requisitos:

Hardware recomendado e versões suportadas do Ubuntu

ComponenteRequerimento
ProcessadorProcessador compatível de 1 gigahertz (GHz) ou mais rápido
BATER2 GB ou mais
Espaço em disco512 MB de HDD (espaço em disco adicional necessário para dados ou componentes de suporte)
Versões suportadasUbuntu 24.04 (nobre), Ubuntu 22.04 (Jammy), Ubuntu 20.04 (Focal)

Requisitos adicionais

RequerimentoDescrição
Conexão de internetNecessário para baixar o PostgreSQL 16 e atualizações futuras.
Convenções TerminaisTodos os comandos do terminal devem ser executados como um usuário normal com sudo privilégios.
Comandos CLIUse a interface de linha de comando (CLI) para instalação e configuração.

Importar repositório PostgreSQL APT

Atualize o Ubuntu antes da instalação do PostgreSQL 16

Comece garantindo que seu sistema Ubuntu esteja atualizado. Esta etapa é crucial para manter a estabilidade e compatibilidade do sistema:

sudo apt update

Em seguida, atualize todos os pacotes que estão desatualizados:

sudo apt upgrade

Instale pacotes iniciais para PostgreSQL 16

Para auxiliar na instalação do software de banco de dados, instale os seguintes pacotes:

sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl -y

Adicionar repositório PostgreSQL 16 APT

Primeiro, importe a chave GPG do PostgreSQL. Trata-se de garantir que os pacotes que você está prestes a instalar sejam genuínos e não adulterados:

curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null

Escolhendo o repositório PostgreSQL 16 correto

Agora é hora de selecionar o repositório PostgreSQL 16 apropriado para suas necessidades.

Repositório Estável para Produção/Uso Geral

O repositório estável é a escolha certa para a maioria dos usuários, especialmente em um ambiente de produção. É atualizado regularmente com versões estáveis ​​e seguras:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list

Repositórios de instantâneos ou testes para desenvolvedores

Considere o instantâneo ou os repositórios de teste se você estiver na fase de desenvolvimento ou teste. Lembre-se, entretanto, de que estes não são para uso em produção devido à sua natureza menos estável.

Repositório de snapshots para testes de ponta

Obtenha os instantâneos mais recentes aqui:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-snapshot main | sudo tee /etc/apt/sources.list.d/postgresql.list
Repositório de teste para os recursos mais recentes

Para testar os recursos mais recentes, este comando irá configurar você:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-testing main | sudo tee /etc/apt/sources.list.d/postgresql.list

Instale o PostgreSQL 16 por meio de comandos de terminal

Atualizar lista de fontes de índice de pacotes APT

Depois de adicionar o repositório PostgreSQL estável ou de teste, é importante atualizar a lista de fontes do repositório. Esta ação garante que seu sistema reconheça o repositório PostgreSQL recém-adicionado:

sudo apt update

Instale o PostgreSQL 16 via comando APT

Agora, vamos prosseguir para a instalação do PostgreSQL 16. Este comando instala o cliente e o servidor PostgreSQL:

sudo apt install postgresql-client-16 postgresql-16

Verificando a instalação do PostgreSQL

Assim que a instalação for concluída, é crucial confirmar se o PostgreSQL está instalado e funcionando corretamente. Este comando verifica o status do serviço PostgreSQL:

systemctl status postgresql

Ativando PostgreSQL 16

Se o PostgreSQL não estiver ativo, use este comando para iniciar o serviço PostgreSQL. Isso também garante que o PostgreSQL seja iniciado automaticamente com o seu sistema:

sudo systemctl enable postgresql --now

Gerenciando o serviço PostgreSQL 16

Parando o servidor PostgreSQL 16

Para interromper temporariamente o serviço PostgreSQL, talvez para manutenção ou alterações de configuração, use este comando:

sudo systemctl stop postgresql

Iniciando o servidor PostgreSQL 16

Quando você estiver pronto para iniciar o serviço PostgreSQL, especialmente após uma parada ou instalação inicial, este comando será útil:

sudo systemctl start postgresql

Reiniciando o servidor PostgreSQL 16

Em cenários em que você alterou configurações ou atualizações, muitas vezes é necessário reiniciar. Este comando reinicia o serviço PostgreSQL, aplicando quaisquer novas alterações:

sudo systemctl restart postgresql

Recarregando o servidor PostgreSQL 16

Para recarregar o serviço PostgreSQL sem interromper sua operação, use este comando. É útil quando você precisa aplicar pequenas alterações na configuração:

sudo systemctl reload postgresql

Verificando o status do PostgreSQL 16

Para verificar o status operacional do serviço PostgreSQL, incluindo se ele está ativo e funcionando sem problemas, use:

systemctl status postgresql

Habilitando PostgreSQL 16 na inicialização do sistema

Se o PostgreSQL não estiver configurado para iniciar automaticamente, este comando irá habilitá-lo, garantindo que ele esteja ativo imediatamente e nas inicializações subsequentes do sistema:

sudo systemctl enable postgresql --now

Comandos de exemplo básicos com PostgreSQL 16

Acessando a conta de usuário Postgres

No PostgreSQL, o usuário 'postgres' é uma função de superusuário padrão. Esta conta é fundamental para a execução de comandos administrativos. Para mudar para esta conta, use:

sudo -i -u postgres

Uma vez na conta, entre na interface de linha de comando do PostgreSQL:

psql

O prompt postgres=# confirma sua conexão com o ambiente PostgreSQL. Para sair, basta digitar exit.

Acesso rápido ao PostgreSQL sem troca de usuário

Para operações rápidas sem alterar a conta do usuário, acesse diretamente o PostgreSQL:

sudo -u postgres psql

Este comando economiza tempo para tarefas rotineiras. Para sair desta interface, digite exit.

Criando uma nova função de usuário PostgreSQL

A flexibilidade do PostgreSQL permite que superusuários criem funções de usuário. Para estabelecer uma nova função de usuário, emita este comando:

sudo su - postgres -c "createuser <username>"

Substituir <username> com o nome de usuário desejado.

Iniciando um novo banco de dados PostgreSQL

Para configurar um novo banco de dados para seu usuário:

sudo su - postgres -c "createdb <database_name>"

Substituir <database_name> com o nome pretendido para seu banco de dados.

Atribuindo privilégios de usuário a um banco de dados

Atribua acesso ao banco de dados com segurança:

sudo -u postgres psql
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>;

Substituto <database_name> e <username> como requerido. Conclua digitando exit.

Configurar o Firewall UFW para PostgreSQL 16

Instalando e ativando o firewall UFW

Certifique-se de que o UFW (Firewall Descomplicado) esteja instalado e ativado em seu sistema. O UFW simplifica o gerenciamento do firewall e é essencial para proteger o tráfego de rede:

sudo apt install ufw
sudo ufw enable

Configurando regras UFW para PostgreSQL 16

O PostgreSQL se comunica na porta 5432 por padrão. É necessário configurar o UFW para permitir o tráfego nesta porta, principalmente ao conectar-se de locais remotos.

Permitindo acesso à sub-rede

Para permitir o acesso a um intervalo de endereços IP dentro de uma sub-rede, use este comando:

sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432

Substituir 192.168.1.0/24 com seu intervalo de sub-rede específico.

Permitindo acesso IP individual

Para conceder acesso ao PostgreSQL a partir de um único endereço IP, use:

sudo ufw allow proto tcp from 192.168.1.0 to any port 5432

Modificar 192.168.1.0 para o endereço IP que você deseja permitir.

Estes são apenas exemplos básicos. Você deve considerar bloquear qualquer banco de dados público, tanto quanto possível, a longo prazo.

Configurar PostgreSQL 16

Habilite o acesso remoto no PostgreSQL 16

Configurar o PostgreSQL para aceitar conexões remotas envolve ajustar o endereço de escuta da interface local padrão.

Modificando a configuração para acesso remoto

Acesse o arquivo de configuração do PostgreSQL:

sudo nano /etc/postgresql/16/main/postgresql.conf

Na seção “Configurações de conexão”, altere listen_addresses = 'localhost' às suas necessidades específicas:

  • Substitua 'localhost' pelo endereço IP desejado para um único IP.
  • Para permitir conexões em todas as interfaces, use listen_addresses = '*'.

Após fazer as alterações, salve com CTRL+O e saia com CTRL+X. Em seguida, reinicie o PostgreSQL:

sudo systemctl restart postgresql

Verifique as alterações com:

ss -nlt | grep 5432

Na saída, você deverá ver a porta 5432 ativa.

Configurando pg_hba.conf para segurança aprimorada

Edite o pg_hba.conf arquivo para controle de acesso ajustado:

sudo nano /etc/postgresql/16/main/pg_hba.conf

Personalizando o acesso de usuários e bancos de dados

Em pg_hba.conf, você pode especificar quais usuários e bancos de dados podem se conectar e de quais endereços. Aqui estão algumas configurações comuns:

  • Acesso específico do usuário: substitua 'todos' por um nome de usuário específico para restringir o acesso apenas a esse usuário.
  • Acesso específico ao banco de dados: especifique um banco de dados específico em vez de permitir acesso a todos os bancos de dados.
  • Restrições de endereço: Defina endereços IP ou intervalos específicos (por exemplo, 192.168.1.0/24) para limitar onde as conexões podem se originar.

Escolhendo métodos de autenticação

PostgreSQL oferece suporte a vários métodos de autenticação:

  • MD5: Requer uma senha e a criptografa com MD5.
  • Senha: usa senhas de texto simples (menos seguras, não recomendadas para produção).
  • Par: depende da identidade do usuário no nível do sistema operacional (comum para conexões locais).
  • Identidade: semelhante a 'peer', normalmente usado para conexões de rede.
  • SCRAM-SHA-256: Um método mais seguro, recomendado em vez de MD5 ou senha.

Ajustando o desempenho em postgresql.conf

Para otimização de desempenho, considere estas configurações em postgresql.conf:

  • buffers_compartilhados: ajusta a quantidade de memória que o PostgreSQL usa para buffers de memória compartilhada.
  • trabalho_mem: define a memória usada para operações internas de classificação e hash.
  • max_connections: controla o número máximo de conexões simultâneas com o banco de dados.

Monitoramento e Diagnóstico

Ative o registro detalhado para obter insights sobre problemas e desempenho do banco de dados:

  • log_statement: defina como 'all' para registrar todas as instruções SQL executadas.
  • duração_log: quando ativado, registra a duração de cada instrução SQL concluída.

Conclusão

Acabamos de percorrer um guia completo para configurar o PostgreSQL 16 no Ubuntu, cobrindo tudo, desde a instalação e configuração do acesso remoto até o reforço da segurança com regras de firewall. Lembre-se, embora seja ótimo ter o PostgreSQL instalado e funcionando, a verdadeira chave está na manutenção regular e nas verificações de segurança.

Links Úteis

Aqui estão alguns links úteis relacionados à instalação do PostgreSQL 16 no Ubuntu Linux:

  • Notas de versão do PostgreSQL 16: leia as notas de versão do PostgreSQL 16 para saber mais sobre novos recursos, melhorias e correções de bugs.
  • Repositório PostgreSQL GitHub: Visite o repositório GitHub oficial do PostgreSQL para acessar o código-fonte, relatar problemas e contribuir com o desenvolvimento.
  • Documentação PostgreSQL: acesse a documentação abrangente do PostgreSQL para obter guias detalhados de instalação, configuração e uso.
  • Comunidade PostgreSQL: Participe da comunidade PostgreSQL para se conectar com outros usuários, participar de discussões e obter suporte.
Joshua James
Me siga
Últimos posts por Joshua James (exibir todos)

Deixe um comentário