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