
To jest dokument typu ‚jak to zrobić’, który tylko podaje przykładowe polecenia; to, jak jest to faktycznie wykonywane, zależy wyłącznie od osoby to robiącej i konkretnych przypadków użycia.
Najpierw zastrzeżenie. Ten post zawiera ogólny przewodnik dotyczący tworzenia kopii zapasowej tabeli bazy danych Postgres. Podane przykłady nie odnoszą się do żadnej konkretnej tabeli ani bazy danych. Jeśli próbujesz utworzyć kopię zapasową konkretnej tabeli, powinieneś także utworzyć kopie zapasowe tabel, które odnoszą się do tabel oryginalnych. Ponieważ Postgres jest bazą danych relacyjną, zawsze będą istnieć odniesienia między wieloma tabelami.
To jest dokument „jak to zrobić”, który podaje tylko przykładowe polecenia, a sposób, w jaki jest to faktycznie wykonywane, zależy wyłącznie od osoby, która to robi, oraz od konkretnych przypadków użycia. Zawsze zachowuj integralność danych, których kopię zapasową próbujesz utworzyć. Tworzenie kopii zapasowej całej bazy danych jest zawsze bezpieczną opcją, ale przy tworzeniu kopii zapasowej konkretnych tabel trzeba być ostrożnym.
Zrzut SQL/pg_dump:
Pomysł stojący za metodą SQL-dump polega na wygenerowaniu pliku tekstowego z poleceniami SQL, które po ponownym wprowadzeniu do serwera odtworzą bazę danych w takim samym stanie, w jakim była w momencie dumpu. PostgreSQL dostarcza program użytkowy pg_dump do tego celu.
pg_dump jest skutecznym i wszechstronnym narzędziem do tworzenia kopii zapasowych baz danych Postgres i wykorzystywania tych kopii do przywracania bazy danych postgres. Jednak nie jest ono ograniczone wyłącznie do Bazy Danych. Możemy użyć pg_dump do tworzenia kopii zapasowych tabel, a następnie użyć ich do przywracania pojedynczych tabel. Używając pg_dump, można zarchiwizować lokalną bazę danych i przywrócić ją na zdalnej bazie danych.
Jak wykonać kopię zapasową bazy danych Postgres:
Jak przywrócić bazę danych Postgres
Przywróć tabelę Postgres:
$ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql pe
Powyższe polecenie zainstaluje tabelę, która została zarchiwizowana w pliku ms_table.sql, do bazy danych ‘pe’. Upewnij się, że ta tabela już nie istnieje, ponieważ w przeciwnym razie zobaczysz wiele błędów ‘już istnieje’. To polecenie tworzy tabelę i eksportuje wszystkie dane do nowo utworzonej tabeli.
Przywróć bazę danych Postgres:
$ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sql
Podobnie jak przywracanie tabeli, możemy użyć powyższego polecenia do przywracania całej bazy danych. Tutaj przywracamy bazę danych ‘pe’ za pomocą pliku pe_dump.sql, który utworzyliśmy podczas archiwizacji bazy w sekcji Backup powyżej.
Przywróć wszystkie bazy danych:
$ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sql
Przywróć wszystkie bazy danych za pomocą powyższego polecenia. ‘all_dump.sql’ to plik, który został utworzony za pomocą pg_dumpall. Powyższe polecenie zapewni nam wszystkie bazy danych Postgres w dokładnym stanie, w jakim były, gdy wykonano zrzut z oryginalnego serwera bazy danych.