Kopia (backup) i odtworzenie bazy danych w PostgreSQL (pg_dump i psql)
Jeżeli chcemy wykonać kopię bazy danych (backup) PostgreSQL
możemy skorzystać z dedykowanego do tego programu/polecenia – pg_dump
. Jego składnia jest następująca:
pg_dump -p numer_portu -d nazwa_bazy -U nazwa_uzytkownika > nazwa_bazy.sql
Dla przykładowej bazy: informatyk
dostępnej na porcie 1234
dla użytkownika: admin
polecenie będzie wyglądał następująco:
pg_dump -p 1234 -d informatyk -U admin> nazwa_bazy.sql
Jeżeli dla użytkownika admin
ustawione jest hasło zostaniemy poproszeni o jego podanie.
Dobrą nawykiem jest nazewnictwo plików z kopiami nazwą bazy danych wraz z datą i godziną utworzenia backupu, np:
pg_dump -p 1234 -d informatyk -U admin > informatyk_$(date +"%Y%m%d_%H%M%S").sql
Powyższe polecenie spowoduje zapisanie kopii bazy informatyk
do pliku np. informatyk_20231121_215915.sql
, gdzie zapis: 20231121_215915
wskazuje datę i godzinę zrzutu bazy.
Wiemy już jak wykonać kopię bazy danych. Teraz zajmiemy się jej odtworzeniem (przywróceniem).
Skorzystamy do tego z komendy psql
, której składnia wygląda tak:
psql -p numer_portu -d nazwa_bazy -U nazwa_uzytkownika < nazwa_bazy.sql
Zatem dla naszej bazy informatyk
na porcie 1234
dla użytkownika admin
i pliku kopii: informatyk_20231121_215915.sql
polecenie będzie następujące:
psql -p 1234 -d informatyk -U admin < informatyk_20231121_215915.sql