August 31, 2026 · by Alex M.
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.
Înainte de a trece la instalare, merită să înțelegi de ce PostgreSQL câștigă teren rapid:
Pentru proiecte serioase care rulează pe un VPS SSD, PostgreSQL oferă un fundament solid și scalabil.
sudoDacă nu ai încă un server, poți comanda un VPS Linux gestionat direct de la CLIQHOST.
Î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ă.
sudo apt install postgresql postgresql-contrib -y
Pachetul postgresql-contrib include extensii utile: uuid-ossp, pg_stat_statements, hstore și altele.
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
sudo systemctl status postgresql
psql --version
Ar trebui să vezi ceva similar cu: psql (PostgreSQL) 16.x
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.
Acesta este cel mai important pas. O instalare neprotejată este o vulnerabilitate majoră.
sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'ParolaFoarteSigura!2024';
\q
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;
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
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.
-- 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;
CREATE TABLE clienti (
id SERIAL PRIMARY KEY,
nume VARCHAR(100) NOT NULL,
email VARCHAR(150) UNIQUE NOT NULL,
creat_la TIMESTAMP DEFAULT NOW()
);
-- 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;
| 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 |
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
# 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
Poți folosi instrumentul online PGTune pentru a genera automat parametrii optimi în funcție de RAM, CPU și tipul de utilizare.
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.
sudo -u postgres pg_dump app_db > /backup/app_db_$(date +%Y%m%d_%H%M%S).sql
sudo -u postgres pg_dump -Fc app_db > /backup/app_db_$(date +%Y%m%d).dump
sudo -u postgres pg_dumpall > /backup/toate_bd_$(date +%Y%m%d).sql
# 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
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.
-- 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;
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;"
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;
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.
ssl = on în postgresql.confPentru securitate avansată la nivel de server, poți apela la serviciile de administrare servere CLIQHOST.
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.
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."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."