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;