Come installare PostgreSQL 16 su Ubuntu 24.04, 22.04 o 20.04

PostgreSQL 16 segna un aggiornamento significativo nel mondo dei sistemi di gestione dei database. Rilasciato ufficialmente il 14 settembre 2023, PostgreSQL 16 introduce molte nuove funzionalità e miglioramenti, rafforzando la sua posizione di soluzione di database solida e versatile per utenti, amministratori e sviluppatori.

Di seguito sono riportate alcune delle caratteristiche principali di PostgreSQL 16:

  • Miglioramenti della parallelizzazione: PostgreSQL 16 consente la parallelizzazione di hash join FULL e interni right OUTER, migliorando significativamente le prestazioni delle query.
  • Miglioramenti della replica: Introduce la funzionalità di replica logica da server in standby e consente agli abbonati di applicare transazioni di grandi dimensioni in parallelo.
  • Capacità di monitoraggio: L'aggiunta della vista pg_stat_io consente un monitoraggio più approfondito delle statistiche I/O.
  • Supporto SQL/JSON: questa versione introduce costruttori SQL/JSON e funzioni di identità, ampliando le sue capacità di gestione dei dati.
  • Prestazioni di congelamento sotto vuoto: PostgreSQL 16 migliora le prestazioni del congelamento sottovuoto, favorendo una manutenzione efficiente del database.
  • Corrispondenza delle espressioni regolari: La corrispondenza delle espressioni regolari per i nomi utente e database in pg_hba.conf e i nomi utente in pg_ident.conf migliora la sicurezza e la flessibilità.

Ora passiamo alla procedura tecnica e approfondiamo il processo di installazione di PostgreSQL 16.

Prerequisiti per l'installazione di PostgreSQL 16

Per installare correttamente PostgreSQL 16 su Ubuntu, assicurati di soddisfare i seguenti requisiti:

Hardware consigliato e versioni Ubuntu supportate

ComponenteRequisiti
ProcessoreProcessore compatibile da 1 gigahertz (GHz) o più veloce
RAM2 GB o più
Spazio sul disco512 MB di HDD (spazio su disco aggiuntivo richiesto per dati o componenti di supporto)
Versioni supportateUbuntu 24.04 (Nobile), Ubuntu 22.04 (Jammy), Ubuntu 20.04 (focale)

Requisiti addizionali

RequisitiDescrizione
Connessione internetNecessario per scaricare PostgreSQL 16 e futuri aggiornamenti.
Convenzioni terminaliTutti i comandi del terminale devono essere eseguiti come utente normale con sudo privilegi.
Comandi CLIUtilizzare l'interfaccia della riga di comando (CLI) per l'installazione e la configurazione.

Importa il repository APT PostgreSQL

Aggiorna Ubuntu prima dell'installazione di PostgreSQL 16

Inizia assicurandoti che il tuo sistema Ubuntu sia aggiornato. Questo passaggio è fondamentale per mantenere la stabilità e la compatibilità del sistema:

sudo apt update

Successivamente, aggiorna tutti i pacchetti non aggiornati:

sudo apt upgrade

Installa i pacchetti iniziali per PostgreSQL 16

Per facilitare l'installazione del software del database, installare i seguenti pacchetti:

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

Aggiungi il repository APT PostgreSQL 16

Innanzitutto, importa la chiave GPG PostgreSQL. Si tratta di garantire che i pacchetti che stai per installare siano autentici e non manomessi:

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

Scegliere il giusto repository PostgreSQL 16

Ora è il momento di selezionare il repository PostgreSQL 16 appropriato per le tue esigenze.

Repository stabile per produzione/uso generale

Il repository stabile è il punto di riferimento per la maggior parte degli utenti, soprattutto in un ambiente di produzione. Viene regolarmente aggiornato con versioni stabili e sicure:

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

Repository di istantanee o test per sviluppatori

Considera gli snapshot o i repository di test se sei nella fase di sviluppo o test. Ricorda solo, tuttavia, che questi non sono destinati all'uso produttivo a causa della loro natura meno stabile.

Repository di istantanee per test all'avanguardia

Prendi le ultime istantanee qui:

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
Test del repository per le funzionalità più recenti

Per testare le funzionalità più recenti, questo comando ti configurerà:

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

Installa PostgreSQL 16 tramite i comandi del terminale

Aggiorna l'elenco delle origini dell'indice dei pacchetti APT

Dopo aver aggiunto il repository PostgreSQL stabile o di prova, è importante aggiornare l'elenco delle fonti del repository. Questa azione garantisce che il tuo sistema riconosca il repository PostgreSQL appena aggiunto:

sudo apt update

Installa PostgreSQL 16 tramite il comando APT

Passiamo ora all'installazione di PostgreSQL 16. Questo comando installa sia il client che il server PostgreSQL:

sudo apt install postgresql-client-16 postgresql-16

Verifica dell'installazione di PostgreSQL

Una volta completata l'installazione, è fondamentale verificare che PostgreSQL sia installato e funzionante correttamente. Questo comando controlla lo stato del servizio PostgreSQL:

systemctl status postgresql

Attivazione di PostgreSQL 16

Se PostgreSQL non è attivo, utilizza questo comando per avviare il servizio PostgreSQL. Ciò garantisce inoltre che PostgreSQL si avvii automaticamente con il tuo sistema:

sudo systemctl enable postgresql --now

Gestione del servizio PostgreSQL 16

Arresto del server PostgreSQL 16

Per arrestare temporaneamente il servizio PostgreSQL, magari per manutenzione o modifiche alla configurazione, utilizza questo comando:

sudo systemctl stop postgresql

Avvio del server PostgreSQL 16

Quando sei pronto per avviare il servizio PostgreSQL, soprattutto dopo un arresto o un'installazione iniziale, questo comando torna utile:

sudo systemctl start postgresql

Riavvio del server PostgreSQL 16

Negli scenari in cui sono state modificate configurazioni o aggiornamenti, spesso è necessario un riavvio. Questo comando riavvia il servizio PostgreSQL, applicando eventuali nuove modifiche:

sudo systemctl restart postgresql

Ricaricamento del server PostgreSQL 16

Per ricaricare il servizio PostgreSQL senza interromperne il funzionamento, utilizzare questo comando. È utile quando è necessario applicare modifiche minori alla configurazione:

sudo systemctl reload postgresql

Controllo dello stato di PostgreSQL 16

Per verificare lo stato operativo del servizio PostgreSQL, incluso se è attivo e funziona senza problemi, utilizzare:

systemctl status postgresql

Abilitazione di PostgreSQL 16 all'avvio del sistema

Se PostgreSQL non è impostato per l'avvio automatico, questo comando lo abiliterà, assicurando che sia attivo immediatamente e ai successivi avvii del sistema:

sudo systemctl enable postgresql --now

Comandi di esempio di base con PostgreSQL 16

Accesso all'account utente Postgres

In PostgreSQL, l'utente 'postgres' è un ruolo di superutente predefinito. Questo account è fondamentale per l'esecuzione dei comandi amministrativi. Per passare a questo account, utilizza:

sudo -i -u postgres

Una volta nell'account, accedi all'interfaccia della riga di comando di PostgreSQL:

psql

Il suggerimento postgres=# conferma la tua connessione all'ambiente PostgreSQL. Per uscire è sufficiente digitare exit.

Accesso rapido a PostgreSQL senza cambio utente

Per operazioni rapide senza modificare l'account utente, accedi direttamente a PostgreSQL:

sudo -u postgres psql

Questo comando consente di risparmiare tempo nelle attività di routine. Per uscire da questa interfaccia, digitare exit.

Creazione di un nuovo ruolo utente PostgreSQL

La flessibilità di PostgreSQL consente ai superutenti di creare ruoli utente. Per stabilire un nuovo ruolo utente, immetti questo comando:

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

Sostituire <username> con il nome utente desiderato.

Avvio di un nuovo database PostgreSQL

Per impostare un nuovo database per il tuo utente:

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

Sostituire <database_name> con il nome previsto per il database.

Assegnazione dei privilegi utente a un database

Assegna in modo sicuro l'accesso al database:

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

Sostituire <database_name> E <username> come richiesto. Concludi digitando exit.

Configura il firewall UFW per PostgreSQL 16

Installazione e attivazione del firewall UFW

Assicurati che UFW (Uncomplicated Firewall) sia installato e attivato sul tuo sistema. UFW semplifica la gestione del firewall ed è essenziale per proteggere il traffico di rete:

sudo apt install ufw
sudo ufw enable

Impostazione delle regole UFW per PostgreSQL 16

PostgreSQL comunica sulla porta 5432 per impostazione predefinita. È necessario configurare UFW per consentire il traffico su questa porta, soprattutto quando ci si connette da posizioni remote.

Consentire l'accesso alla sottorete

Per consentire l'accesso a un intervallo di indirizzi IP all'interno di una sottorete, utilizzare questo comando:

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

Sostituire 192.168.1.0/24 con l'intervallo di sottorete specifico.

Consentire l'accesso IP individuale

Per garantire l'accesso a PostgreSQL da un singolo indirizzo IP, utilizzare:

sudo ufw allow proto tcp from 192.168.1.0 to any port 5432

Modificare 192.168.1.0 all'indirizzo IP che desideri consentire.

Questi sono solo esempi basilari. Dovresti considerare di bloccare il più possibile qualsiasi database rivolto al pubblico a lungo termine.

Configura PostgreSQL 16

Abilita l'accesso remoto in PostgreSQL 16

La configurazione di PostgreSQL per accettare connessioni remote comporta la regolazione dell'indirizzo di ascolto dall'interfaccia locale predefinita.

Modifica della configurazione per l'accesso remoto

Accedi al file di configurazione PostgreSQL:

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

Nella sezione "Impostazioni di connessione", modifica listen_addresses = 'localhost' alle tue esigenze specifiche:

  • Sostituisci "localhost" con l'indirizzo IP desiderato per un singolo IP.
  • Per consentire le connessioni su tutte le interfacce, utilizzare listen_addresses = '*'.

Dopo aver apportato le modifiche, salva con CTRL+O ed esci con CTRL+X. Quindi riavvia PostgreSQL:

sudo systemctl restart postgresql

Verifica le modifiche con:

ss -nlt | grep 5432

Nell'output, dovresti vedere la porta 5432 attiva.

Configurazione di pg_hba.conf per la sicurezza avanzata

Modifica il pg_hba.conf file per il controllo degli accessi ottimizzato:

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

Personalizzazione dell'accesso utente e al database

In pg_hba.conf, è possibile specificare quali utenti e database possono connettersi e da quali indirizzi. Ecco alcune configurazioni comuni:

  • Accesso specifico dell'utente: sostituisci "tutti" con un nome utente specifico per limitare l'accesso solo a quell'utente.
  • Accesso specifico al database: specificare un database particolare invece di consentire l'accesso a tutti i database.
  • Restrizioni sugli indirizzi: definire indirizzi o intervalli IP specifici (ad es. 192.168.1.0/24) per limitare la posizione in cui possono avere origine le connessioni.

Scelta dei metodi di autenticazione

PostgreSQL supporta vari metodi di autenticazione:

  • MD5: Richiede una password e la crittografa con MD5.
  • Parola d'ordine: utilizza password in testo semplice (meno sicure, non consigliate per la produzione).
  • Pari: si basa sull'identità utente a livello di sistema operativo (comune per le connessioni locali).
  • Ident: simile a "peer", generalmente utilizzato per le connessioni di rete.
  • SCRAM-SHA-256: un metodo più sicuro, consigliato rispetto a MD5 o password.

Ottimizzazione delle prestazioni postgresql.conf

Per l'ottimizzazione delle prestazioni, considera queste impostazioni in postgresql.conf:

  • buffer_condivisi: regola la quantità di memoria utilizzata da PostgreSQL per i buffer di memoria condivisa.
  • lavoro_mem: imposta la memoria utilizzata per le operazioni di ordinamento e hashing interne.
  • max_connections: controlla il numero massimo di connessioni simultanee al database.

Monitoraggio e diagnostica

Abilita la registrazione dettagliata per ottenere informazioni dettagliate sulle prestazioni e sui problemi del database:

  • log_istruzione: impostato su "all" per registrare ogni istruzione SQL eseguita.
  • log_durata: se abilitato, registra la durata di ciascuna istruzione SQL completata.

Conclusione

Abbiamo appena esaminato una guida completa per configurare PostgreSQL 16 su Ubuntu, coprendo tutto, dall'installazione e configurazione dell'accesso remoto al rafforzamento della sicurezza con le regole del firewall. Ricorda, anche se è fantastico avere PostgreSQL installato e funzionante, la vera chiave sta nella manutenzione regolare e nei controlli di sicurezza.

link utili

Ecco alcuni collegamenti utili relativi all'installazione di PostgreSQL 16 su Ubuntu Linux:

  • Note sulla versione di PostgreSQL 16: leggi le note sulla versione di PostgreSQL 16 per conoscere nuove funzionalità, miglioramenti e correzioni di bug.
  • Repository GitHub PostgreSQL: Visita il repository ufficiale PostgreSQL GitHub per accedere al codice sorgente, segnalare problemi e contribuire allo sviluppo.
  • Documentazione PostgreSQL: accedi alla documentazione completa di PostgreSQL per guide dettagliate su installazione, configurazione e utilizzo.
  • Comunità PostgreSQL: Unisciti alla comunità PostgreSQL per connetterti con altri utenti, partecipare alle discussioni e ottenere supporto.
Joshua James
Seguimi
Ultimi post di Joshua James (vedi tutto)

Lascia un commento