Zasięg

Grow

Manage

Automate

Zasięg

Grow

Manage

Automate

Porady techniczne: Jak wykonać kopię zapasową i przywrócić bazę danych Postgres?

Karan Singh

19 cze 2013

Email

1 min read

Porady techniczne: Jak wykonać kopię zapasową i przywrócić bazę danych Postgres?

Karan Singh

19 cze 2013

Email

1 min read

Porady techniczne: Jak wykonać kopię zapasową i przywrócić bazę danych Postgres?

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:

Kopia zapasowa tabeli Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

Powyższe polecenie jest przykładem, jak wykonać kopię zapasową konkretnej tabeli z bazy danych Postgres. Korzystając z powyższego polecenia, tworzymy kopię zapasową tabeli 'orgs' w schemacie 'maincontrol' z bazy danych 'pe' do pliku ms_table.sql. Aby wykonać kopię zapasową konkretnej tabeli, użyj opcji –table TABLENAME w poleceniu pg_dump. Jeśli w różnych schematach znajdują się tabele o tej samej nazwie, użyj opcji –schema SCHEMANAME.

  1. Kopia zapasowa konkretnej bazy danych Postgres:

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    To jest przykład tworzenia kopii zapasowej konkretnej bazy danych Postgres. Korzystając z powyższego polecenia, tworzymy kopię zapasową bazy danych dla Message Central 'pe' do pliku pe_dump.sql. Plik kopii zapasowej zawiera polecenia create table, alter table i copy dla wszystkich tabel w bazie danych 'pe'.

  2. Kopia zapasowa wszystkich baz danych Postgres:

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    Możesz wykonać kopię zapasową wszystkich baz danych za pomocą polecenia pg_dumpall. Powyższe polecenie utworzy zrzut wszystkich baz danych znajdujących się na instancji Postgres działającej na konkretnym serwerze. Aby wyświetlić listę wszystkich baz danych, które zostały skopiowane, użyj polecenia grep “^[\]connect” all.sql.

Kopia zapasowa tabeli Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

Powyższe polecenie jest przykładem, jak wykonać kopię zapasową konkretnej tabeli z bazy danych Postgres. Korzystając z powyższego polecenia, tworzymy kopię zapasową tabeli 'orgs' w schemacie 'maincontrol' z bazy danych 'pe' do pliku ms_table.sql. Aby wykonać kopię zapasową konkretnej tabeli, użyj opcji –table TABLENAME w poleceniu pg_dump. Jeśli w różnych schematach znajdują się tabele o tej samej nazwie, użyj opcji –schema SCHEMANAME.

  1. Kopia zapasowa konkretnej bazy danych Postgres:

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    To jest przykład tworzenia kopii zapasowej konkretnej bazy danych Postgres. Korzystając z powyższego polecenia, tworzymy kopię zapasową bazy danych dla Message Central 'pe' do pliku pe_dump.sql. Plik kopii zapasowej zawiera polecenia create table, alter table i copy dla wszystkich tabel w bazie danych 'pe'.

  2. Kopia zapasowa wszystkich baz danych Postgres:

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    Możesz wykonać kopię zapasową wszystkich baz danych za pomocą polecenia pg_dumpall. Powyższe polecenie utworzy zrzut wszystkich baz danych znajdujących się na instancji Postgres działającej na konkretnym serwerze. Aby wyświetlić listę wszystkich baz danych, które zostały skopiowane, użyj polecenia grep “^[\]connect” all.sql.

Kopia zapasowa tabeli Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

Powyższe polecenie jest przykładem, jak wykonać kopię zapasową konkretnej tabeli z bazy danych Postgres. Korzystając z powyższego polecenia, tworzymy kopię zapasową tabeli 'orgs' w schemacie 'maincontrol' z bazy danych 'pe' do pliku ms_table.sql. Aby wykonać kopię zapasową konkretnej tabeli, użyj opcji –table TABLENAME w poleceniu pg_dump. Jeśli w różnych schematach znajdują się tabele o tej samej nazwie, użyj opcji –schema SCHEMANAME.

  1. Kopia zapasowa konkretnej bazy danych Postgres:

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    To jest przykład tworzenia kopii zapasowej konkretnej bazy danych Postgres. Korzystając z powyższego polecenia, tworzymy kopię zapasową bazy danych dla Message Central 'pe' do pliku pe_dump.sql. Plik kopii zapasowej zawiera polecenia create table, alter table i copy dla wszystkich tabel w bazie danych 'pe'.

  2. Kopia zapasowa wszystkich baz danych Postgres:

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    Możesz wykonać kopię zapasową wszystkich baz danych za pomocą polecenia pg_dumpall. Powyższe polecenie utworzy zrzut wszystkich baz danych znajdujących się na instancji Postgres działającej na konkretnym serwerze. Aby wyświetlić listę wszystkich baz danych, które zostały skopiowane, użyj polecenia grep “^[\]connect” all.sql.

Jak przywrócić bazę danych Postgres

  1. 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.

  2. 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.

  3. 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.

Połączmy Cię z ekspertem Bird.
Zobacz pełną moc Bird w 30 minut.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

Company

Biuletyn

Bądź na bieżąco z Bird dzięki cotygodniowym aktualizacjom do Twojej skrzynki odbiorczej.

Połączmy Cię z ekspertem Bird.
Zobacz pełną moc Bird w 30 minut.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

Company

Biuletyn

Bądź na bieżąco z Bird dzięki cotygodniowym aktualizacjom do Twojej skrzynki odbiorczej.

Połączmy Cię z ekspertem Bird.
Zobacz pełną moc Bird w 30 minut.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

R

Reach

G

Grow

M

Manage

A

Automate

Company

Biuletyn

Bądź na bieżąco z Bird dzięki cotygodniowym aktualizacjom do Twojej skrzynki odbiorczej.