Table of Contents

PostgreSQL - ghid de inițiere

PostgreSQL este o bază de date relațională open-source puternică, cunoscută pentru fiabilitate, integritatea datelor și funcții avansate precum suportul JSON, căutarea full-text și extensibilitatea. Serverul vine cu PostgreSQL 16 complet configurat, cu parola de administrator specificată la comandă. pgAdmin4 este inclus pentru administrarea bazelor de date prin web.


Pasul 1 – Verificați funcționarea PostgreSQL

Adresa IP și parola root a serverului sunt afișate pe pagina Server Details din panoul clientului. pgAdmin4 este un instrument web de administrare pentru PostgreSQL. Deschideți http://your.server.ip/pgadmin4 în browser pentru a verifica funcționarea.

Autentificare pgAdmin4:

  • E-mail: adresa de e-mail introdusă la comandă
  • Parolă: parola de administrator introdusă la comandă

Superutilizator PostgreSQL:

  • Nume de utilizator: postgres
  • Parolă: parola de administrator introdusă la comandă

Autentificați-vă în pgAdmin4, apoi adăugați conexiunea la serverul PostgreSQL:

  1. Faceți clic dreapta pe Servers în panoul din stânga și selectați Register > Server
  2. General fila: introduceți un nume (de ex. „Local”)
  3. Connection fila: Host = 127.0.0.1, Port = 5432, Username = postgres, Password = Admin Password-ul dumneavoastră
  4. Faceți clic pe Salvare

Acum puteți naviga prin baze de date, rula interogări SQL, importa/exporta date și administra utilizatori prin interfața web.

Serverele de baze de date nu au nevoie de acces public la internet. Pentru acces securizat, plasați serverul într-o rețea privată în spatele unui router VyOS și conectați-vă prin VPN la PostgreSQL și pgAdmin4 pe IP-ul privat al serverului.


Pasul 2 – Conectarea la distanță la PostgreSQL

PostgreSQL este configurat să accepte conexiuni la distanță. Vă puteți conecta din orice aplicație sau instrument:

psql -h your.server.ip -U postgres

Date de conectare pentru instrumentele grafice de baze de date (pgAdmin Desktop, DBeaver, DataGrip etc.):

Parametru Valoare
Gazdăyour.server.ip
Port5432
Nume de utilizatorpostgres
ParolăAdmin Password din comandă

Notă: Portul 5432 este protocolul PostgreSQL, nu HTTP – nu poate fi deschis în browser. Folosiți un client de baze de date sau comanda de mai sus.


Pasul 3 – Activarea SSL pentru pgAdmin4 (opțional)

Dacă aveți un domeniu care indică acest server, puteți activa HTTPS pentru pgAdmin4 cu un certificat gratuit Let’s Encrypt. Conectați-vă prin SSH și rulați:

ssh root@your.server.ip
/opt/setup/get-ssl.sh db.yourdomain.com

Scriptul va verifica DNS-ul, va obține un certificat și va configura automat Apache pentru HTTPS. După finalizare, pgAdmin4 este disponibil la https://db.yourdomain.com/pgadmin4.

Notă: Asigurați-vă că înregistrarea A a domeniului indică IP-ul serverului înainte de a rula scriptul. SSL este opțional – pgAdmin4 funcționează bine prin HTTP cu acces pe adresa IP.


Administrarea bazelor de date

Crearea bazelor de date suplimentare

Puteți crea baze de date suplimentare prin pgAdmin4 sau SSH:

sudo -u postgres psql

CREATE USER newuser WITH PASSWORD 'strong_password';
CREATE DATABASE newdb OWNER newuser ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE newdb TO newuser;

Import și export

Prin pgAdmin4: Faceți clic dreapta pe o bază de date și selectați Backup sau Restore. Suportă formatele custom, tar, plain și directory.

Prin linia de comandă:

# Export
pg_dump -U postgres your_database > backup.sql

# Export (custom format, compressed)
pg_dump -U postgres -Fc your_database > backup.dump

# Import (SQL)
psql -U postgres your_database < backup.sql

# Import (custom format)
pg_restore -U postgres -d your_database backup.dump

Pentru baze de date mari, folosiți pg_dump -Fc (format custom) pentru backup-uri mai rapide și mai mici.


După instalare

Fail2Ban – protecție împotriva atacurilor brute-force

Serverul dumneavoastră include Fail2Ban preconfigurat pentru a proteja SSH împotriva atacurilor brute-force.

Regulă Încercări maxime Durata blocării
SSH5 autentificări eșuate10 minute

Comenzi utile:

# Check banned IPs
fail2ban-client status sshd

# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4

Dacă vă blocați accidental, conectați-vă prin consola VNC din panoul clientului și deblocați-vă IP-ul.

Administrarea serviciilor

PostgreSQL și Apache rulează prin systemd. Comenzi uzuale:

# Check service status
systemctl status postgresql
systemctl status apache2

# Restart PostgreSQL
systemctl restart postgresql

# View PostgreSQL logs
journalctl -u postgresql -n 100

Optimizarea performanței PostgreSQL

PostgreSQL este optimizat automat la prima pornire în funcție de RAM-ul disponibil. Pentru a verifica setările curente:

sudo -u postgres psql -c "SHOW shared_buffers; SHOW effective_cache_size; SHOW work_mem;"

Pentru ajustare manuală, editați /etc/postgresql/16/main/conf.d/99-tuning.conf și reporniți PostgreSQL:

systemctl restart postgresql

Datele de acces la server

Datele de acces PostgreSQL și pgAdmin4 sunt stocate în /root/.pg_credentials.

Ce este preconfigurat

  • Acces la distanță: PostgreSQL acceptă conexiuni de la orice IP pe portul 5432 (autentificare scram-sha-256)
  • shared_buffers: Ajustat automat la 25% din RAM-ul disponibil la prima pornire
  • effective_cache_size: Setat la 75% din RAM pentru planificarea optimă a interogărilor
  • Codificare: Bazele de date sunt create cu codificare UTF-8 (utf8, en_US.UTF-8)

Software inclus

Componentă Versiune
Ubuntu24.04 LTS
PostgreSQL16 (PGDG APT)
Apache2.4
pgAdmin4Cea mai recentă (mod web)
CertbotCea mai recentă
Fail2Ban1.0

Depanare

Problemă Soluție
Nu se poate conecta la PostgreSQL de la distanță Verificați că portul 5432 nu este blocat de firewall. Verificați listen_addresses = '*' în conf.d/99-custom.conf și că pg_hba.conf permite IP-ul dumneavoastră
pgAdmin4 afișează o eroare de autentificare Folosiți e-mailul și Admin Password din comandă. Datele de acces se află în /root/.pg_credentials
Pagina pgAdmin4 nu se încarcă (HTTP 500) Verificați Apache: systemctl status apache2. Verificați logurile pgAdmin: /var/log/pgadmin/pgadmin4.log
PostgreSQL nu pornește Verificarea logurilor: journalctl -u postgresql -n 50. Cauză frecventă: disc plin (df -h /) sau configurație invalidă (pg_lsclusters)
Ați uitat parola de administrator PostgreSQL Conectați-vă prin SSH și verificați /root/.pg_credentials
Blocat de Fail2Ban Deblocați-vă IP-ul prin consola VNC din panoul clientului
Ați uitat parola root Resetați-o prin consola VNC din panoul clientului