TimescaleDB is the open-source relational database for time-series and analytics. Build powerful data-intensive applications.
Questa è la definizione che si trova sul sito relativamente a questa variante di PostgreSQL con funzioni di time series database.
Purtroppo la documentazione presente sul sito copre Red Hat Enterprise, Fedora e CentOS, ma non Oracle Linux, divenuta, dopo la trasformazione di CentOS 8 in CentOS Stream, una delle distribuzioni di riferimento in ambito enterprise.
Dato che ci siamo trovati nella necessità di installare questo DB su Oracle Linux 8, qua di seguito trovate le istruzioni per effettuare questa operazione.
Questa è la pagina della documentazione di TimescaleDB contenente le istruzioni per il setup:
https://docs.timescale.com/install/latest/self-hosted/installation-redhat/#where-to-next
Di seguito troverete le stesse istruzioni corrette per l’uso su Oracle Linux 8
Di default Oracle Linux 8 installa una versione di Postgres troppo vecchia per le nostre esigenze. Questo comando ce lo conferma:
dnf module list postgresql Last metadata expiration check: 0:00:27 ago on Tue Jun 21 15:47:39 2022. Oracle Linux 8 Application Stream (x86_64) Name Stream Profiles Summary postgresql 9.6 client, server [d] PostgreSQL server and client module postgresql 10 [d] client, server [d] PostgreSQL server and client module postgresql 12 client, server [d] PostgreSQL server and client module postgresql 13 client, server [d] PostgreSQL server and client module
Dovremo quindi installare il repository di Postgresql più recente:
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Ora dobbiamo creare il repository predefinito di Timescale:
vi /etc/yum.repos.d/timescale_timescaledb.repo
E inseriamo al suo interno queste righe:
[timescale_timescaledb] name=timescale_timescaledb baseurl=https://packagecloud.io/timescale/timescaledb/el/8/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300
Procediamo alla disabilitazione del modulo predefinito:
dnf -qy module disable postgresql
Finalmente possiamo installare PostgreSQL 14 nella versione con TimescaleDB:
yum install timescaledb-2-postgresql-14
Se tutto è andato correttamente procediamo a configurare l’estensione per TimescaleDB. Inizializziamo il DB:
/usr/pgsql-14/bin/postgresql-14-setup initdb
Abilitiamo e avviamo il servizio:
systemctl enable postgresql-14 systemctl start postgresql-14
Ora procediamo all’abilitazione della shared library di TimescaleDB nel file di configurazione di postgresql:
vi /var/lib/pgsql/14/data/postgresql.conf
Verso la fine troviamo una riga commentata con la dicitura “shared_preload_libraries”. Subito sotto inseriamo la seguente riga:
shared_preload_libraries = 'timescaledb'
Riavviamo il servizio:
systemctl restart postgresql-14
Se state installando TimescaleDB come backend per Zabbix fermatevi qua e proseguite con la procedura indicata nell’articolo dedicato, altrimenti proseguite.
Connettiamoci all’istanza di PostgreSQL come superuser:
su postgres -c psql
Riceveremo un messaggio di benvenuto simile a questo:
psql (14.4) Type "help" for help.
Al prompt diamo il comando per creare un DB vuoto:
CREATE database example;
Connettiamoci al DB appena creato:
\c example
Aggiungiamo al DB la TimescaleDB extension:
CREATE EXTENSION IF NOT EXISTS timescaledb;
Colleghiamoci al DB con questo comando:
su postgres -c 'psql -d example'
Dando il comando \dx all’interno del prompt di PostgreSQL possiamo verificare se l’estensione è attiva:
example=# \dx List of installed extensions Name | Version | Schema | Description -------------+---------+------------+------------------------------------------------------------------- plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language timescaledb | 2.7.0 | public | Enables scalable inserts and complex queries for time-series data (2 rows)
Da qua possiamo vedere che l’estensione è attiva e funzionante.
L’installazione di TimescaleDB su Oracle Linux 8 è terminata.