Installazione di PostgreSQL 12 su Ubuntu

PostgreSQL e' un potente DBMS relazionale Open Source noto per la robustezza e la ricchezza di funzionalita'. Questo documento descrive l'installazione della versione PostgreSQL 12 su Ubuntu (per altre versioni / distribuzioni Linux: Installazione di PostgreSQL 11 su CentOS 8, Installazione di PostgreSQL 9.x su RHEL7).

Per chi non conosce PostgreSQL un documento introduttivo e' Introduzione a PostgreSQL mentre un documento piu' completo ed un poco piu' aggiornato e' Qualcosa in piu' su PostgreSQL.

L'installazione di PostgreSQL puo' essere effettuata in modi diversi. In questo documento vengono utilizzati i repository PostgreSQL ufficiali per Ubuntu/Debian.

Nella scelta della versione di sistema operativo Ubuntu e' sempre meglio indirizzarsi una versione LTS. L'ultima disponibile e' la 20.04 Focal Fossa [NdA ovviamente va installata l'ultima release che al momento e' la 20.04.2]. Il repository di Focal Fossa gia' contiene Postgres12, non sempre e' cosi' aggiornato...

Per disporre delle versioni piu' aggiorante in ogni caso useremo il repository PostgreSQL. Il primo passo e' scegliere la versione di interesse dall'elenco repository ufficiale PostgreSQL. La nostra scelta ricade sulla versione 12 [NdA major release come e' chiamata con Postgres], di questa va scelta sempre l'ultima minor release disponibile. Non e' l'ultima versione di PostgreSQL... ma generalmente conviene attendere un paio di update [NdA ad oggi, 14 Febbraio ❤️ San Valentino, la versione 13 sembra gia' ben stabile ma l'ho vista ancora poco in produzione]. Ma basta parole... installiamo!

Infine e' naturalmente possibile partire dal codice sorgente e compilare tutto... si puo' fare senza grosse difficolta' ma richiede piu' tempo, sicuramente piu' pratica e non da alcun vantaggio rispetto ad utilizzare i repository (a meno che non si voglia sviluppare qualcosa).

Installazione

I passi per installare PostgreSQL 12 sono:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update sudo apt-get -y install postgresql cd /var/lib/pgsql/12/data vi postgresql.conf vi pg_hba.conf pg_ctlcluster 12 main restart sudo su - postgres psql SQL> create database mydb; ^D $ psql mydb SQL> create extension adminpack; SQL> create extension pg_stat_statements; SQL> create extension pg_buffercache; SQL> ... SQL> alter user postgres with password 'xxx';

Gia' fatto!

I comandi dovrebbero essere chiari...
Ma se non lo fossero eccone la descrizione riga per riga:

Ora e' possibile utilizzare PosgreSQL!

Varie ed eventuali

Oltre che da linea di comando [NdA psql] sono sicuramente molto comode le GUI... questo documento e' abbastanza aggiornato e riporta tutti i tool che uso [NdA ed anche un paio che non mi piacciono ma non importa].

Su Ubuntu/Debian si utilizzano i comandi pg_ctlcluster che fondamentalmente sono un wrap dei pg_ctl classici ed hanno la stessa sintassi. Ad esempio pg_ctlcluster 12 main reload per rileggere la configurazione [NdA ma per lo stop e' meglio il solito sudo systemctl stop postgresql@12-main]; per creare un cluster si usa pg_createcluster (ma l'installazione gia' lo esegue) e per elencare i cluster esistenti pg_lsclusters.

Su Ubuntu/Debian si utilizzano i comandi apt per la gestione dei pacchetti di sistema. Vanno lanciati come root o, ed e' questa il modo piu' comune, con sudo. Dalla versione 14 l'elenco dei pacchetti installati si ottiene facilmente con sudo apt list --installed.

Spesso si utilizza una directory differente al default per PGDATA. Su Ubuntu/Debian il modo corretto di impostarla e' nel file: /etc/postgresql/12/main/postgresql.conf

Sono molti i pacchetti aggiuntivi su PostgreSQL disponibili su Ubuntu/Debian... per esempio il PostGIS si installa con sudo apt install postgis postgresql-12-postgis-3 e quindi naturalmente CREATE EXTENSION postgis.

Buon divertimento!


Titolo: Installazione di PostgreSQL 12 su Ubuntu
Livello: Avanzato (3/5)
Data: 14 Febbraio 2021 ❤️ San Valentino
Versione: 1.0.1 - 14 Febbraio 2021
Autore: mail [AT] meo.bogliolo.name