Postgresql referință de comandă pentru psql, pg_dump, pg_restore

PostgreSQL: director pentru comenzi psql, pg_dump, pg_restore

Toate comenzile sunt difuzate sub ungustor postgres-user (postgresql-superuser). Pentru a comuta la utilizatorul postgres, utilizați comanda:







  • psql -l - lista de baze de date.
  • psql -d dbname - conexiune la baza de date dbname.
  • psql -f file.sql - execută comenzi din fișierul file.sql.
  • psql -U postgres -d dbname -c "CREATE TABLE test (unele_id serial PRIMARY KEY, some_text text);" - executarea comenzii în baza de date dbname.
  • psql -d dbname -H -c "SELECT * FROM test" -o test.html - scoate rezultatul interogării într-un fișier html.

psql> SELECT nume, setare FROM pg_settings WHERE category = 'Locații fișiere';

# sau o listă a tuturor parametrilor de configurare

psql> afișează toate;

Lista conexiunilor active cu informații despre: proces pid, interogare care rulează, utilizator, bază de date.

psql> SELECT * FROM pg_stat_activity;

psql> ALTER TABLE tableName ADAUGATI KEY PRIMARY (id);

psql> CREATE INDEX UNIQUE indexName ONName tableName (columnNames);

  • \ c dbname - conectarea la baza de date dbname.
  • \ l - lista de baze de date.
  • \ dt - lista tuturor tabelelor.
  • \ d structură tabelă tabelă.
  • \ du - lista tuturor utilizatorilor și privilegiile acestora.
  • \ dt + - lista tuturor tabelelor cu o descriere.
  • \ dt * s * este lista tuturor tabelelor care conțin s în nume.
  • \ i FILE - execută comenzi din fișierul FILE.
  • \ o FILE - salva rezultatul interogării în fișierul FILE.
  • \ a - comutați între modurile de ieșire: cu / fără aliniere.

Backup și recuperarea meselor

În PostgreSQL există două utilitare pentru backup pg_dump și pg_dumpall. pg_dump este folosit pentru salvarea unei singure baze de date, pg_dumpall pentru backup-ul tuturor bazelor de date și a serverului ca întreg (este necesar să se ruleze sub postgresql-superuser).

Crearea unei copii de rezervă a MyDB. într-o formă comprimată:

pg_dump -h localhost -p 5432 -U uneleuser -F c -b -v -f mydb.backup mydb

Crearea unei copii de rezervă a MyDB. sub forma unui fișier text obișnuit, inclusiv comanda pentru crearea bazei de date:







pg_dump -h localhost -p 5432 -U uneleuser -C -F p -b -v -f mydb.backup mydb

Crearea unei copii de rezervă a MyDB. într-o formă condensată, cu tabele care conțin numele plăților:

pg_dump -h localhost -p 5432 -U puținutilizator -F c -b -v -t * plăți * -f payment_tables.backup mydb

Achiziționați date numai într-un singur tabel. Dacă doriți să creați copii de rezervă pentru mai multe tabele, numele acestor tabele sunt afișate utilizând opțiunea -t pentru fiecare tabel.

pg_dump -a -t nume_tabel -f numele_filei nume_base

Crearea unei copii de rezervă cu compresie în gz:

pg_dump -h localhost -O -F p -c -U postgres mydb | gzip -c> mydb.gz

Lista celor mai frecvent utilizate opțiuni:

  • -h gazdă - gazdă, dacă nu este specificată atunci localhost sau valoarea din variabila de mediu PGHOST este utilizată.
  • -Portul p este portul, dacă nu este specificat, atunci 5432 sau valoarea din variabila de mediu PGPORT este utilizată.
  • -u - utilizator, dacă nu este specificat atunci utilizatorul curent este utilizat, de asemenea, valoarea poate fi specificată în variabila de mediu PGUSER.
  • -a, --data-only - dump numai datele, în mod implicit datele și schema sunt salvate.
  • -b - includ obiecte mari (bloguri) în dump.
  • -s, --schema-only - aruncați doar schema.
  • -C, --create - adaugă o comandă pentru a crea baza de date.
  • -c - adaugă comenzi pentru abandonarea obiectelor (tabele, vizualizări etc.).
  • -O - nu adăugați comenzi pentru a seta proprietarul obiectului (tabele, vizualizări etc.).
  • -F, --format - formatul de ieșire al dumpului, personalizat, gudron sau text simplu.
  • -t, --table = TABLE - Specificați un tabel specific pentru dump.
  • -v, --verbose - ieșire de informații detaliate.
  • -D, - attribute-inserts - dump folosind comanda INSERT cu o listă de nume de proprietăți.

Faceți copii de rezervă pentru toate bazele de date utilizând comanda pg_dumpall:

pg_dumpall> all.sql

grep "^ [\] conectați" all.sql

În PostgreSQL există două utilitare pentru restaurarea bazei de date din copia de rezervă.

  • psql - recuperarea copiilor de rezervă, care sunt stocate într-un fișier text simplu;
  • pg_restore - restaurarea backup-urilor comprimate (tar);

Restabiliți tot backup-ul cu erori de ignorare:

psql -h localhost -U uneleuser -d dbname -f mydb.sql

Restaurați tot backup-ul cu oprire la prima eroare:

psql -h localhost -U uneleuser - setare ON_ERROR_STOP = on -f mydb.sql

Pentru a restaura din tar-arhiva, trebuie să creați mai întâi o bază de date utilizând CREATE DATABASE mydb; (dacă opțiunea -C nu a fost specificată atunci când creați copia de siguranță) și restaurați:

pg_restore --dbname = mydb --jobs = 4 --verbose mydb.backup

Restaurarea unei copii de rezervă a bazei de date comprimate cu gz:

psql -U postgres -d mydb -f mydb

Începând cu versiunea 9.2, puteți restabili structura tabelului doar utilizând opțiunea --section:

CREAȚI DATABASE mydb2;

pg_restore --dbname = mydb2 --section = pre-date --jobs = 4 mydb.backup

Tabelul VACUUM ANALYZE;







Trimiteți-le prietenilor: