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:
- Faceți clic dreapta pe Servers în panoul din stânga și selectați Register > Server
- General fila: introduceți un nume (de ex. „Local”)
- Connection fila: Host =
127.0.0.1, Port =5432, Username =postgres, Password = Admin Password-ul dumneavoastră - 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 |
| Port | 5432 |
| Nume de utilizator | postgres |
| 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 |
|---|---|---|
| SSH | 5 autentificări eșuate | 10 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 |
|---|---|
| Ubuntu | 24.04 LTS |
| PostgreSQL | 16 (PGDG APT) |
| Apache | 2.4 |
| pgAdmin4 | Cea mai recentă (mod web) |
| Certbot | Cea mai recentă |
| Fail2Ban | 1.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 |