Kopie zapasowe

PostgreSQL zawiera własne narzędzia służące do tworzenia oraz odtwarzania baz danych z kopii.

Pamiętajmy, że na pełną kopię składają się struktury tabel oraz przechowywane w nich dane.

W wyniku wykonania kopii bazy danych powstaje plik zawierający odpowiednie polecenia SQL oraz psql, które przy odtwarzaniu zostają zastosowane. Należy pamiętać, że kopia nie zawiera poleceń tworzenia samej bazy. Przed odtwarzaniem należy ją zatem utworzyć samodzielnie lub dodać odpowiednią opcję do polecenia przywracania.

Wykonanie kopii wybranej bazy danych w trakcie pracy serwera (tzw. "kopia gorąca") lub po jego wyłączeniu (tzw. "kopia zimna"):
pg_dump [option…] [dbname]

Wybrane opcje:
-U user (user to użytkownik z uprawnieniami administratora np. postgres)
-a tylko dane (bez schematu tabel),
-s tylko schemat tabel (bez danych),
-t tylko wybrana tabela z bazy
-d zastosuj polecenie SQL INSERT zamiast COPY
-E encoding zmiana kodowania,
-f zapisanie kopii w pliku, tylko wtedy gdy nie podano przekierowania systemowego w formie pg_dump baza >baza.backup
-F format (p-plain, c-custom, t-tar). Wymaga pg_restore.

Przykłady:
pg_dump -d   magazyn >magazyn_backup
pg_dump –Ft magazyn > magazyn_backup.tar
pg_dump –Ft magazyn | gzip> magazyn_backup.tar.gz
pg_dump -d magazyn –f magazyn.sql

Zrzut wszystkich baz:
pg_dumpall [option…]
Przykład:
pg_dumpall  > all_backup
pg_dumpall | gzip> all_backup.gz

Odtwarzanie bazy:
pg_restore [option] [filename]

Opcje:
-U user (user to użytkownik z uprawnieniami administratora np. postgres)
-a tylko dane,
-s tylko struktura,
-t table tylko wybrana tabela,
-C tworzy bazę danych przed jej odtworzeniem,
-d dbname – łączy się z wybraną bazą i tam odtwarza dane,
-F format (p-plain, c-custom, t-tar). Wymaga pg_restore.

Przykład:
pg_restore –C –d dbtest dbtest_kopia.sql
 

Przewijanie do góry