Installare TimescaleDB su Oracle Linux 8

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.

© 2024 Catfish Blog | Tema: Storto di CrestaProject WordPress Themes.