PostgreSQL 14 é um sistema de gerenciamento de banco de dados relacional de código aberto conhecido por sua robustez, escalabilidade e amplo conjunto de recursos. Um dos principais recursos introduzidos no PostgreSQL 14 foi a capacidade de lidar com classificação incremental, o que melhorou significativamente o desempenho da consulta para cargas de trabalho específicas. Esta versão também aprimorou o processamento paralelo, a limpeza e o processamento JSON, tornando-a uma excelente opção para ambientes corporativos e de desenvolvimento. Embora esteja algumas versões atrás da versão mais recente, o PostgreSQL 14 continua sendo uma opção confiável e amplamente suportada.
Para instalar o PostgreSQL 14 no Fedora 40 ou 39 usando o terminal de linha de comando, você pode importar e instalar diretamente das compilações RPM do PostgreSQL. Este método garante que você tenha a versão mais recente e simplifica futuras atualizações.
Atualize o Fedora antes da instalação do PostgreSQL 14
Para começar, atualize seu sistema Fedora para garantir que todos os pacotes estejam atualizados. Esta etapa ajuda a evitar possíveis conflitos durante a instalação do PostgreSQL. Execute o comando abaixo:
sudo dnf update --refresh
Importar repositório de chaves PostgreSQL RPM GPG
Comece importando o repositório PostgreSQL. Esta ação garante acesso às versões mais recentes do PostgreSQL. Selecione e importe o repositório correspondente à sua versão do Fedora Linux.
Importar PostgreSQL 14
Nota: Lembre-se de importar a versão correta para a sua distribuição Fedora:
Para o Fedora 40, use este comando:
sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-40-x86_64/pgdg-fedora-repo-latest.noarch.rpm
Para o Fedora 39, o comando é um pouco diferente:
sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-39-x86_64/pgdg-fedora-repo-latest.noarch.rpm
Desativar módulo PostgreSQL padrão (se aplicável)
Os repositórios padrão do Fedora geralmente incluem PostgreSQL como módulo. Para priorizar a instalação do repositório PostgreSQL, é aconselhável desabilitar este módulo padrão. Use o seguinte comando para fazer isso:
sudo dnf -qy module disable postgresql
Finalizar a instalação do PostgreSQL 14
Prossiga com a instalação do PostgreSQL 14
.Use este comando para instalar o servidor PostgreSQL 14 e sua documentação:
sudo dnf install postgresql14-server postgresql14-docs -y
Além disso, você pode instalar o pacote de desenvolvimento da seguinte maneira.
sudo dnf install postgresql14-devel
Por último, você pode instalar alguns módulos, binários e bibliotecas adicionais de uso comum.
sudo dnf install postgresql14-libs postgresql14-odbc postgresql14-plperl postgresql14-plpython3 postgresql14-pltcl postgresql14-tcl postgresql14-contrib postgresql14-llvmjit
Inicializar banco de dados PostgreSQL 14
Depois de instalado, você deve executar o seguinte comando para inicializar o banco de dados; não fazer isso impedirá o funcionamento do PostgreSQL.
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
Habilitar serviço PostgreSQL 14 Systemd
Por padrão, o PostgreSQL não está ativado. Use o seguinte comando para iniciar o serviço imediatamente e na inicialização do sistema.
sudo systemctl enable postgresql-14 --now
Verifique a instalação do PostgreSQL 14
Em seguida, verifique o status para garantir que o software esteja instalado e ativado sem erros usando o comando a seguir.
systemctl status postgresql-14
Comandos de serviço Systemd para PostgreSQL 14
Gerenciando o serviço PostgreSQL 14
O servidor de banco de dados PostgreSQL opera como um serviço systemd denominado “postgresql-14” no Fedora. Os administradores de sistema podem gerenciar este serviço usando um conjunto de comandos systemd vitais para manutenção de rotina e solução de problemas.
Parando o servidor PostgreSQL 14
Para interromper o serviço PostgreSQL, talvez para manutenção ou alterações de configuração, use este comando:
sudo systemctl stop postgresql-14
Iniciando o servidor PostgreSQL 14
Para iniciar o serviço PostgreSQL, especialmente após uma parada ou instalação inicial, use o seguinte comando:
sudo systemctl start postgresql-14
Reiniciando o servidor PostgreSQL 14
O comando restart é útil se você precisar aplicar novas configurações ou redefinir o serviço PostgreSQL. Ele para e inicia o serviço em uma ação:
sudo systemctl restart postgresql-14
Recarregando o servidor PostgreSQL 14
O comando reload é ideal para aplicar alterações de configuração sem parar o banco de dados. Atualiza o serviço sem interromper a operação do banco de dados:
sudo systemctl reload postgresql-14
Verificando o status do serviço PostgreSQL 14
Para verificar o status operacional do serviço PostgreSQL, use este comando. Ele fornece informações sobre o estado do serviço, incluindo se ele está ativo, inativo ou com problemas:
systemctl status postgresql-14
Configurar PostgreSQL 14
Mudando para a conta Postgres 14
Acessando a conta Postgres 14
Durante a instalação do PostgreSQL, uma conta de usuário chamada ‘postgres’ é criada automaticamente. Esta conta está associada à função padrão do Postgres, que possui privilégios de superusuário. Para acessar o banco de dados PostgreSQL, mude para a conta ‘postgres’ usando o comando:
sudo -i -u postgres
Entrando no prompt do PostgreSQL 14
Depois de mudar para o usuário ‘postgres’, acesse o prompt do PostgreSQL diretamente digitando psql. Após a conexão bem-sucedida, o prompt do terminal muda para postgres=#, indicando uma conexão ativa com o banco de dados.
Para sair do banco de dados PostgreSQL, basta digitar:
psql
Método alternativo para acessar o PostgreSQL 14
Usando Sudo para acesso direto
Como alternativa, interaja com o banco de dados PostgreSQL sem trocar de conta usando:
exit
Alternativa para mudar de conta Postgres
Uma forma alternativa de interagir com o banco de dados Postgres sem alterar as contas de usuário é usar um comando sudo para conectar-se diretamente. Você pode fazer isso digitando:
sudo -u postgres psql
Este comando é eficiente para interações rápidas com o banco de dados, pois ignora comandos adicionais do terminal.
Para sair, como no primeiro método, digite exit.
exit
Crie usuário e banco de dados com PostgreSQL 14
Criando uma nova função de usuário
Somente superusuários e funções com privilégio createrole podem criar novas funções. Para criar um usuário, use o comando:
sudo su - postgres -c "createuser <name>"
Substituir com o nome de usuário desejado.
Criando um novo banco de dados
A seguir, crie um banco de dados PostgreSQL para o usuário recém-criado:
sudo su - postgres -c "createdb <namedb>"
Substituir com o nome do banco de dados desejado.
Concessão de permissões
Para conceder permissões ao novo usuário no novo banco de dados, primeiro conecte-se ao banco de dados PostgreSQL como superusuário:
sudo -u postgres psql
Em seguida, conceda todos os privilégios ao novo usuário:
GRANT ALL PRIVILEGES ON DATABASE <usernamedb> TO <name>;
Substituir com o nome do banco de dados e com o nome de usuário. Para sair, digite exit.
exit
Configurar Firewalld para PostgreSQL 14
Estabelecendo regras de Firewalld para PostgreSQL 14
Proteger o PostgreSQL envolve mais do que apenas instalar e executar o serviço; é crucial configurar os controles de acesso à rede de maneira eficaz. Isso protege o banco de dados e garante que apenas o tráfego legítimo chegue até ele. Veremos como configurar o firewalld, um gerenciador de firewall dinâmico no Fedora, para proteger o PostgreSQL.
Criando uma zona Firewalld para PostgreSQL
Primeiro, crie uma zona dedicada no firewalld para PostgreSQL. Esta abordagem permite um controle mais granular e clareza no gerenciamento de regras específicas do PostgreSQL:
sudo firewall-cmd --permanent --new-zone=postgres
Este comando estabelece uma zona 'postgres', isolando regras de firewall relacionadas ao PostgreSQL para facilitar o gerenciamento.
Restringindo o acesso a endereços IP conhecidos
Permitindo acesso de um único endereço IP
Para cenários onde apenas um cliente ou servidor deve acessar o PostgreSQL:
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
Substitua 1.2.3.4 pelo endereço IP específico que requer acesso ao banco de dados.
Permitindo uma sub-rede
Em ambientes como redes corporativas, pode ser necessário permitir uma sub-rede inteira:
sudo firewall-cmd --permanent --zone=postgres --add-source=192.168.1.0/24
Aqui, 192.168.1.0/24 representa a sub-rede. Ajuste este valor para corresponder ao intervalo de rede desejado.
Concedendo acesso a vários IPs específicos
Para cenários com vários IPs conhecidos que requerem acesso:
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.5
Repita este comando para cada endereço IP.
Gerenciando o acesso à porta para PostgreSQL 14
Configurando a porta PostgreSQL padrão
Para instalações padrão usando a porta padrão:
sudo firewall-cmd --permanent --zone=postgres --add-port=5432/tcp
Personalizando a configuração da porta
Se o PostgreSQL operar em uma porta não padrão (por exemplo, 5433):
sudo firewall-cmd --permanent --zone=postgres --add-port=5433/tcp
Altere o número da porta de acordo com sua configuração específica do PostgreSQL.
Implementando e verificando as novas regras de firewall
Aplicando as mudanças
Para ativar as novas regras, recarregue o firewalld:
sudo firewall-cmd --reload
Esta etapa garante que as novas configurações entrem em vigor imediatamente.
Verificando as configurações
Após a configuração, é prudente revisar as regras definidas para a zona ‘postgres’:
sudo firewall-cmd --list-all --zone=postgres
Este comando exibe todas as regras ativas na zona 'postgres', permitindo a verificação do setup.exp
Configuração de acesso remoto para PostgreSQL 14
Configurando interfaces de escuta para acesso remoto
Modificando a configuração do PostgreSQL
Para habilitar o acesso remoto ao PostgreSQL, é necessário ajustar as configurações da interface no arquivo postgresql.conf. Este processo permite que o PostgreSQL aceite conexões de várias fontes.
Certifique-se de que as configurações do FirewallD estejam em vigor para permitir o acesso remoto, conforme descrito nas seções anteriores.
Acessando o arquivo de configuração
Para modificar a configuração do PostgreSQL 14, use o editor de texto nano:
sudo nano /var/lib/pgsql/14/data/postgresql.conf
Editando o endereço de escuta
Na seção “Configurações de conexão”, altere listen_addresses de ‘localhost’ de acordo com seus requisitos:
- Ouvir em todas as interfaces: para aceitar conexões de qualquer fonte, defina listen_addresses como '*'.
listen_addresses = '*'
- Ouvir em uma interface específica: Especifique um endereço IP para restringir conexões a uma interface específica.
listen_addresses = '192.168.1.100'
Após a edição, salve o arquivo (Ctrl + O, depois Enter) e saia (Ctrl + X).
Reiniciando o serviço PostgreSQL 14
Aplique as alterações reiniciando o serviço PostgreSQL:
sudo systemctl restart postgresql-14
Confirmando portas de escuta
Use o utilitário ss para verificar se o PostgreSQL está escutando nas portas especificadas:
ss -nlt | grep 5432
Se for bem-sucedido, você deverá ver as portas na porta do seu terminal.
Configurações avançadas de conexão remota em pg_hba.conf
Adaptando o acesso no arquivo pg_hba.conf
Para controle refinado sobre conexões remotas, o arquivo pg_hba.conf oferece várias opções de personalização.
Editando pg_hba.conf
Abra o arquivo pg_hba.conf:
sudo nano /var/lib/pgsql/14/data/pg_hba.conf
Configurando regras de acesso remoto
Permitindo usuários e bancos de dados específicos
Para limitar o acesso a um usuário e banco de dados específicos a partir de um endereço IP específico:
hospedar meu banco de dados meu usuário 192.168.1.100/32 md5
Permitindo uma sub-rede
Para acesso mais amplo, como uma sub-rede inteira:
hospedar todos os 192.168.1.0/24 md5
Usando diferentes métodos de autenticação
Escolha um método de autenticação adequado ao seu ambiente. Para autenticação baseada em senha:
hospedar todos todos 0.0.0.0/0 md5
Para autenticação confiável (observe os riscos de segurança):
hospedar todos todos 0.0.0.0/0 confiança
Após configurar as regras desejadas, salve e saia do editor.
Aplicando e verificando alterações
Reinicie o PostgreSQL para implementar as novas configurações:
sudo systemctl restart postgresql-14
Verifique as configurações efetivas em pg_hba.conf usando:
cat /var/lib/pgsql/14/data/pg_hba.conf
Configurar SELinux para PostgreSQL 14
Ao configurar o PostgreSQL 14 no Fedora, é essencial configurar o SELinux (Security-Enhanced Linux) corretamente. SELinux adiciona uma camada de segurança ao impor políticas de controle de acesso. A configuração incorreta pode levar a problemas comuns, como negações de acesso ou interrupções de serviço.
Configurando o SELinux para modo permissivo para solução de problemas
Ajustando temporariamente o modo SELinux
Se você encontrar problemas com o PostgreSQL iniciando ou funcionando corretamente, considere configurar temporariamente o SELinux para o modo ‘Permissivo’. Este modo permite operações que seriam bloqueadas no modo 'Aplicar', mas registrá-las para revisão:
sudo setenforce 0
Logs de monitoramento para negações de AVC
Verifique os logs do SELinux para negações de AVC (Access Vector Cache):
sudo restorecon -Rv /var/lib/pgsql/14/data/
Este comando ajuda a identificar as políticas do SELinux que impedem o funcionamento correto do PostgreSQL.
Configurando políticas SELinux para PostgreSQL 14
Restaurando o contexto padrão do SELinux
Para garantir que os arquivos tenham o contexto SELinux correto, use o comando restorecon. Contextos incorretos em diretórios ou arquivos PostgreSQL podem causar problemas de acesso:
sudo setsebool -P postgresql_can_rnetwork 1
Este comando habilita o booleano postgresql_can_rnetwork, permitindo conexões de rede.
Configuração avançada do SELinux
Personalizando Políticas SELinux
Em configurações mais complexas, como quando o PostgreSQL interage com outros serviços ou portas personalizadas, pode ser necessária a criação de políticas SELinux personalizadas. Utilize a ferramenta audit2allow para gerar módulos de política personalizados com base em necessidades específicas.
Aplicando políticas personalizadas
Depois de criar políticas personalizadas, aplique-as usando:
sudo semodule -i my_postgresql.pp
Substitua my_postgresql.pp pelo nome do seu arquivo de política.
Verificando as configurações do SELinux
Verificando o status do SELinux
Confirme o status do SELinux para garantir que ele esteja configurado corretamente para a instalação do PostgreSQL:
sestatus
Validando Contextos de Arquivo
Verifique se os arquivos e diretórios relacionados ao PostgreSQL possuem os contextos SELinux apropriados:
ls -Z /var/lib/pgsql/14/data/
Conclusão
Com o PostgreSQL 14 instalado com sucesso em seu sistema Fedora, você pode aproveitar seus recursos avançados e desempenho robusto para as necessidades de seu banco de dados. Verifique regularmente se há atualizações e upgrades futuros das compilações RPM do PostgreSQL para manter seu sistema atualizado.
Para obter mais informações sobre como usar o PostgreSQL, visite o site oficial documentação.