// blog

Cum instalezi și configurezi PostgreSQL pe un VPS Linux: ghid complet

August 31, 2026 · by Alex M.

Cum instalezi și configurezi PostgreSQL pe un VPS Linux: ghid complet

PostgreSQL este unul dintre cele mai robuste și mai mature sisteme de gestionare a bazelor de date relaționale (RDBMS) open-source din lume. Alegerea sa în fața MySQL sau MariaDB se justifică adesea prin suportul avansat pentru tipuri de date complexe, integritate tranzacțională strictă (ACID), extensibilitate și performanță remarcabilă la volume mari de date.

Dacă rulezi aplicații web moderne, API-uri REST, sisteme ERP sau platforme de analiză pe un VPS NVMe, PostgreSQL poate fi alegerea ideală. Acest ghid îți arată cum să instalezi, securizezi și optimizezi PostgreSQL pe un VPS cu Ubuntu 22.04 sau Debian 12.


De ce PostgreSQL în loc de MySQL?

Înainte de a trece la instalare, merită să înțelegi de ce PostgreSQL câștigă teren rapid:

  • Tipuri de date avansate: JSON/JSONB nativ, array-uri, hstore, tipuri geometrice
  • Conformitate SQL strictă: PostgreSQL respectă standardele SQL mai riguros
  • Tranzacții fiabile: suport complet ACID, inclusiv DDL transactional
  • Extensii puternice: PostGIS (date geografice), pg_trgm (căutare full-text), TimescaleDB etc.
  • Performanță la scară: ideal pentru baze de date mari, cu indexare avansată (GiST, GIN, BRIN)

Pentru proiecte serioase care rulează pe un VPS SSD, PostgreSQL oferă un fundament solid și scalabil.


Cerințe preliminare

  • Un VPS cu Ubuntu 22.04 LTS sau Debian 12
  • Acces root sau utilizator cu privilegii sudo
  • Minim 1 GB RAM (recomandat 2 GB+)
  • Conexiune SSH activă

Dacă nu ai încă un server, poți comanda un VPS Linux gestionat direct de la CLIQHOST.


Pasul 1: Actualizarea sistemului

Înainte de orice instalare, actualizează lista de pachete și sistemul:

sudo apt update && sudo apt upgrade -y

Acest pas previne conflictele de dependențe și asigură că instalezi versiunea cea mai recentă disponibilă.


Pasul 2: Instalarea PostgreSQL

Varianta 1 — Din repository-ul Ubuntu/Debian (rapidă)

sudo apt install postgresql postgresql-contrib -y

Pachetul postgresql-contrib include extensii utile: uuid-ossp, pg_stat_statements, hstore și altele.

Varianta 2 — Din repository-ul oficial PostgreSQL (versiune mai recentă)

Pentru a instala cea mai nouă versiune stabilă (ex. PostgreSQL 16):

# Instalare dependențe
sudo apt install -y gnupg2 wget

# Adăugare cheie GPG
wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Adăugare repository
echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | \
  sudo tee /etc/apt/sources.list.d/pgdg.list

# Actualizare și instalare
sudo apt update && sudo apt install postgresql-16 postgresql-client-16 -y

Verificare instalare

sudo systemctl status postgresql
psql --version

Ar trebui să vezi ceva similar cu: psql (PostgreSQL) 16.x


Pasul 3: Prima conectare — utilizatorul postgres

PostgreSQL creează automat un utilizator de sistem numit postgres, asociat cu superuserul de bază de date. Conectează-te astfel:

sudo -i -u postgres
psql

Sau direct:

sudo -u postgres psql

Vei vedea promptul postgres=#. Ieși cu \q.


Pasul 4: Securizarea instalării PostgreSQL

Acesta este cel mai important pas. O instalare neprotejată este o vulnerabilitate majoră.

4.1 Setarea parolei pentru superuser

sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'ParolaFoarteSigura!2024';
\q

4.2 Crearea unui utilizator dedicat (recomandat)

Nu folosi niciodată superuserul postgres direct în aplicații. Creează utilizatori separați cu privilegii minime:

CREATE USER app_user WITH PASSWORD 'ParolaAplicatie!456';
CREATE DATABASE app_db OWNER app_user;
GRANT ALL PRIVILEGES ON DATABASE app_db TO app_user;

4.3 Configurarea fișierului pg_hba.conf

Fișierul pg_hba.conf controlează autentificarea. Găsești fișierul la:

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

Pentru conexiuni locale sigure, asigură-te că linia pentru local și 127.0.0.1 folosesc metoda scram-sha-256:

# TYPE  DATABASE  USER  ADDRESS     METHOD
local   all       all               scram-sha-256
host    all       all   127.0.0.1/32 scram-sha-256
host    all       all   ::1/128      scram-sha-256

După modificare, repornește serviciul:

sudo systemctl restart postgresql

4.4 Dezactivarea accesului remote implicit

Dacă nu ai nevoie de acces de la distanță la PostgreSQL, lasă listen_addresses setat la localhost în postgresql.conf:

sudo nano /etc/postgresql/16/main/postgresql.conf
listen_addresses = 'localhost'

Dacă ai nevoie de acces remote (ex. de la un server de aplicații separat), specifică IP-ul exact și protejează portul 5432 cu un firewall UFW bine configurat.


Pasul 5: Operațiuni de bază în PostgreSQL

Crearea și listarea bazelor de date

-- Listare baze de date
\l

-- Creare bază de date
CREATE DATABASE proiect_nou;

-- Conectare la o bază de date
\c proiect_nou

-- Ștergere bază de date
DROP DATABASE proiect_nou;

Crearea tabelelor

CREATE TABLE clienti (
    id SERIAL PRIMARY KEY,
    nume VARCHAR(100) NOT NULL,
    email VARCHAR(150) UNIQUE NOT NULL,
    creat_la TIMESTAMP DEFAULT NOW()
);

Operațiuni CRUD

-- Inserare
INSERT INTO clienti (nume, email) VALUES ('Ion Popescu', '[email protected]');

-- Citire
SELECT * FROM clienti WHERE email LIKE '%@exemplu.md';

-- Actualizare
UPDATE clienti SET nume = 'Ion Constantin' WHERE id = 1;

-- Ștergere
DELETE FROM clienti WHERE id = 1;

Comenzi utile psql

Comandă Descriere
\l Listează bazele de date
\c <db> Conectare la baza de date
\dt Listează tabelele
\d <tabel> Structura unui tabel
\du Listează utilizatorii
\timing Afișează durata interogărilor
\q Ieșire din psql

Pasul 6: Optimizarea performanței PostgreSQL

Valorile implicite din postgresql.conf sunt conservatoare. Pe un server VPS cu resurse dedicate, le poți ajusta pentru performanță mai bună.

Deschide fișierul de configurare:

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

Parametri esențiali de optimizat

# Memorie
shared_buffers = 256MB          # 25% din RAM disponibil
effective_cache_size = 768MB    # 75% din RAM total
work_mem = 16MB                 # per operație de sortare/hash
maintenance_work_mem = 128MB    # pentru VACUUM, CREATE INDEX

# Conexiuni
max_connections = 100           # ajustează în funcție de aplicație

# Checkpoint
checkpoint_completion_target = 0.9
wal_buffers = 16MB

# Logging util
log_min_duration_statement = 500  # logează interogările > 500ms
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '

După modificări:

sudo systemctl reload postgresql

Calculatorul de configurare PGTune

Poți folosi instrumentul online PGTune pentru a genera automat parametrii optimi în funcție de RAM, CPU și tipul de utilizare.


Pasul 7: Backup și restaurare

Backup-ul regulat este esențial. PostgreSQL oferă pg_dump și pg_dumpall pentru acest scop. Dacă ai nevoie de servicii profesionale de administrare server, echipa CLIQHOST poate configura backup-uri automate.

Backup al unei singure baze de date

sudo -u postgres pg_dump app_db > /backup/app_db_$(date +%Y%m%d_%H%M%S).sql

Backup comprimat

sudo -u postgres pg_dump -Fc app_db > /backup/app_db_$(date +%Y%m%d).dump

Backup al tuturor bazelor de date

sudo -u postgres pg_dumpall > /backup/toate_bd_$(date +%Y%m%d).sql

Restaurare

# Din fișier SQL
sudo -u postgres psql app_db < /backup/app_db_20240115.sql

# Din format custom (.dump)
sudo -u postgres pg_restore -d app_db /backup/app_db_20240115.dump

Automatizare cu cron

crontab -e

Adaugă:

0 2 * * * sudo -u postgres pg_dump -Fc app_db > /backup/app_db_$(date +\%Y\%m\%d).dump 2>/var/log/pg_backup.log

Pentru mai multe detalii despre automatizare, consultă ghidul nostru despre configurarea cron jobs pe VPS Linux.


Pasul 8: Monitorizarea PostgreSQL

Interogări active și lente

-- Interogări active
SELECT pid, now() - pg_stat_activity.query_start AS durata,
       query, state
FROM pg_stat_activity
WHERE (now() - pg_stat_activity.query_start) > interval '5 minutes';

-- Top interogări lente (necesită pg_stat_statements)
SELECT query, calls, total_exec_time, mean_exec_time
FROM pg_stat_statements
ORDER BY mean_exec_time DESC
LIMIT 10;

Activarea extensiei pg_stat_statements

sudo nano /etc/postgresql/16/main/postgresql.conf
shared_preload_libraries = 'pg_stat_statements'

Repornește și activează extensia:

sudo systemctl restart postgresql
sudo -u postgres psql -c "CREATE EXTENSION IF NOT EXISTS pg_stat_statements;"

Dimensiunea bazelor de date

SELECT pg_database.datname,
       pg_size_pretty(pg_database_size(pg_database.datname)) AS dimensiune
FROM pg_database
ORDER BY pg_database_size(pg_database.datname) DESC;

Pasul 9: Actualizarea și întreținerea (VACUUM)

PostgreSQL folosește un mecanism de stocare MVCC care necesită curățare periodică prin VACUUM:

-- Vacuum pe o tabelă
VACUUM ANALYZE clienti;

-- Vacuum complet (blochează tabela!)
VACUUM FULL clienti;

-- Reindexare
REINDEX TABLE clienti;

Autovacuum este activat implicit și gestionează automat această sarcină, dar poți ajusta parametrii săi în postgresql.conf pentru baze de date mari.


Bune practici de securitate

  1. Nu expune portul 5432 public — folosește SSH tunneling sau VPN dacă ai nevoie de acces remote
  2. Rotește parolele periodic și folosește parole complexe
  3. Principiul privilegiilor minime: fiecare aplicație primește exact drepturile de care are nevoie
  4. Activează SSL pentru conexiunile PostgreSQL — editeaza ssl = on în postgresql.conf
  5. Auditează accesul: activează logging pentru toate conexiunile
  6. Ține PostgreSQL actualizat pentru a beneficia de patch-uri de securitate

Pentru securitate avansată la nivel de server, poți apela la serviciile de administrare servere CLIQHOST.


Concluzie

PostgreSQL este o alegere excelentă pentru orice proiect care necesită integritate ridicată a datelor, scalabilitate și flexibilitate. Odată instalat și configurat corect pe VPS-ul tău Linux, devine un fundament de încredere pentru aplicații web, API-uri sau sisteme de business.

Ai nevoie de un server performant pentru a rula PostgreSQL? Explorează ofertele de VPS NVMe de la CLIQHOST — cu stocare rapidă, resurse dedicate și suport tehnic disponibil. Sau dacă preferi un mediu complet gestionat, descoperă serviciile noastre de administrare server — ne ocupăm noi de tot.

Ai întrebări sau ai nevoie de ajutor? Contactează-ne — echipa noastră este pregătită să te asiste.

SHARE
// ce spun clienții

Ce spun clienții noștri

Recenzii reale de la clienți care au ales CLIQHOST pentru performanță, fiabilitate și suport tehnic.

★★★★★

"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău