2013-05-17 11 views
24

Próbowałem pg_dump a następnie na oddzielnej maszynie Próbowałem zaimportować SQL i wypełnić bazę, widzępg_dump vs pg_dumpall? który z nich użyć do tworzenia kopii zapasowych bazy danych?

CREATE TABLE 
ERROR: role "prod" does not exist 
CREATE TABLE 
ERROR: role "prod" does not exist 
CREATE TABLE 
ERROR: role "prod" does not exist 
CREATE TABLE 
ERROR: role "prod" does not exist 
ALTER TABLE 
ALTER TABLE 
ALTER TABLE 
ALTER TABLE 
ALTER TABLE 
ALTER TABLE 
ALTER TABLE 
WARNING: no privileges could be revoked for "public" 
REVOKE 
ERROR: role "postgres" does not exist 
ERROR: role "postgres" does not exist 
WARNING: no privileges were granted for "public" 
GRANT 

co oznacza moje user i roles i grant informacji nie jest w pg_dump

na z drugiej strony mamy pg_dumpall, czytam conversation, a to nigdzie mnie nie prowadzi?

Pytanie
- Którego powinienem używać do tworzenia kopii zapasowych bazy danych? pg_dump lub pg_dumpall?
- wymaganie jest takie, że mogę wykonać kopię zapasową i powinienem być w stanie zaimportować ją do dowolnej maszyny i powinno działać dobrze.

+1

Nie wiem, co masz na myśli mówiąc "* czytam rozmowę, a to nigdzie mnie nie prowadzi *". W instrukcji wyraźnie widać, co robi każde z narzędzi. Jeśli chcesz wyeksportować użytkowników, musisz użyć pg_dumpall. –

+1

To pytanie należy przenieść do strony http://dba.stackexchange.com/ – Stephan

Odpowiedz

39

Zazwyczaj proces jest:

  • pg_dumpall --globals-only aby użytkownicy/role/etc
  • pg_dump -Fc dla każdej bazy danych, aby uzyskać ładny sprężonego wysypisko nadaje się do użytku z pg_restore.

Tak, ten rodzaj do bani. Naprawdę chciałbym nauczyć pg_dump, aby osadzić dane wyjściowe pg_dumpall w zrzuceniach , ale teraz niestety nie wiem, jak to zrobić samemu.

W momencie pisania (9.4) Jest też paskudny zastrzeżenie z tego podejścia: Ani pg_dump, ani pg_dumpall w trybie --globals-only, zrzuci Użytkownikowi GRANT s na DATABASE s.


Warto również wiedzieć o fizycznych kopii zapasowych - pg_basebackup, PgBarman i WAL archiwizacji, pitr, itd. Te oferują wiele „drobniejsze ziarnisty” odzysku, co do minuty lub poszczególnych transakcji. Minusem jest to, że zajmują więcej miejsca, można je przywracać do tej samej wersji PostgreSQL na tej samej platformie i tworzyć kopie zapasowe wszystkich tabel we wszystkich bazach danych bez możliwości wyłączenia czegokolwiek.

+0

Jak przywrócić plik globalny? Kiedy próbuję go przywrócić, pojawia się błąd: "plik wejściowy nie wydaje się być prawidłowym archiwum (za krótkie?)". – Umagon

+1

@Umagon Użyj 'psql -f globals.sql' –

Powiązane problemy