Dostępne są dwa narzędzia, w zależności od sposobu utworzenia pliku zrzutu.
Pierwszym źródłem informacji powinna być strona man, pg_dump(1)
ponieważ to ona sama tworzy zrzut. To mówi:
Zrzuty mogą być wyprowadzane w formatach plików skryptów lub archiwów. Zrzuty skryptów to pliki tekstowe zawierające polecenia SQL wymagane do zrekonstruowania bazy danych do stanu, w jakim znajdowała się w momencie jej zapisywania. Aby przywrócić z takiego skryptu, podaj go do psql (1). Pliki skryptów można wykorzystać do odtworzenia bazy danych nawet na innych komputerach i innych architekturach; z pewnymi modyfikacjami, nawet w innych produktach bazodanowych SQL.
Alternatywne formaty plików archiwów muszą być użyte w pg_restore (1) do odbudowania bazy danych. Pozwalają pg_restore na wybiórcze odtwarzanie przywracanych elementów, a nawet na zmianę kolejności elementów przed przywróceniem. Formaty plików archiwów zaprojektowano tak, aby były przenośne w różnych architekturach.
To zależy od sposobu, w jaki został zrzucony. Prawdopodobnie możesz to rozgryźć za pomocą doskonałego file(1)
polecenia - jeśli wspomina tekst ASCII i / lub SQL, należy go przywrócić, w psql
przeciwnym razie prawdopodobnie powinieneś użyćpg_restore
Przywracanie jest dość łatwe:
psql -U username -d dbname < filename.sql
-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql
lub
pg_restore -U username -d dbname -1 filename.dump
Sprawdź odpowiednie strony - istnieje kilka opcji, które wpływają na działanie przywracania. Być może będziesz musiał wyczyścić swoje „aktywne” bazy danych lub odtworzyć je z szablonu0 (jak wskazano w komentarzu) przed przywróceniem, w zależności od sposobu wygenerowania zrzutów.
-d
i-f
jednocześnie.pg_restore: options -d/--dbname and -f/--file cannot be used together
cannot be used together
, zobacz tutaj: stackoverflow.com/questions/27882070/…Utwórz kopię zapasową
-F c jest niestandardowym formatem (skompresowanym i zdolnym do wykonywania równolegle z -j N) -b obejmuje obiekty BLOB, -v jest pełny, -f jest nazwą pliku kopii zapasowej
przywróć z kopii zapasowej
ważne, aby ustawić -h localhost - opcję
źródło
Konieczne może być zalogowanie się
postgres
, aby mieć pełne uprawnienia do baz danych.pg_dump / pg_restore
przełącznik
-F
określ format pliku kopii zapasowej:c
użyje niestandardowego formatu PostgreSQL, który jest skompresowany i powoduje najmniejszy rozmiar pliku kopii zapasowejd
dla katalogu, w którym każdy plik jest jedną tabeląt
dla archiwum TAR (większy niż format niestandardowy)-h
/--host
Określa nazwę hosta komputera, na którym działa serwer-W
/--password
Wymuśpg_dump
monit o podanie hasła przed połączeniem z bazą danychprzywracania kopii zapasowej:
Parametr
-C
powinien utworzyć bazę danych przed importowaniem danych. Jeśli to nie działa, zawsze możesz utworzyć bazę danych np. z poleceniem (jako użytkownikpostgres
lub inne konto, które ma uprawnienia do tworzenia baz danych)createdb db_name -O owner
pg_dump / psql
W przypadku, gdy nie podano argumentu
-F
użyto domyślnego formatu zwykłego tekstu SQL (lub z-F p
). Więc nie możesz użyćpg_restore
. Możesz importować dane za pomocąpsql
.utworzyć kopię zapasową:
przywracać:
źródło
postgres
) ma ustawione hasło,-W
należy użyć opcji. Na przykład na Ubuntu bez robieniasu postgres
gdziekolwiek z terminala$ psql -h localhost -U postgres -W -d DB_NAME < DB_BACKUP.sql
jest polecenie, które działało dla mnie, aby przywrócić kopię zapasową na moim lokalnym hoście. Pamiętaj, że-h
opcja jest potrzebna.-W
opcja nigdy nie jest niezbędna.pg_dump
automatycznie poprosi o podanie hasła, jeśli serwer wymaga uwierzytelnienia za pomocą hasła. Możesz także użyćPGPASSWORD
zmiennej env, jeśli używasz haseł w postaci zwykłego tekstu.-h
jest potrzebny, jeśli ustawienie domyślnePGHOST
nie ma zastosowania. Te opcje są wspólne dla wielu narzędzi PostgreSQL, dlatego nie są niezbędne, aby odpowiedzieć na to pytanie (zależy to w dużej mierze od konfiguracji).pg_dump/psql
część opcji to dla mnie praca. ale pierwsza częśćpg_dump/pg_restore
nie działa dla mnie na przywracanie. Dziękuję Ci.-Fc
POSTGRESQL 9.1.12
WYSYPISKO:
wprowadź hasło użytkownika i naciśnij enter.
PRZYWRACAĆ:
wprowadź hasło użytkownika i naciśnij enter.
źródło
Poniżej znajduje się moja wersja,
pg_dump
której używam do przywrócenia bazy danych:lub użyj
psql
:gdzie
-h
host,-p
port,-u
nazwa użytkownika logowania,-d
nazwa bazy danychźródło
my_new_database
powinien już istnieć podczas korzystaniapsql
, nie?Tworzenie kopii zapasowych i przywracanie za pomocą GZIP
utworzyć kopię zapasową
przywracać
https://www.postgresql.org/docs/9.1/static/backup-dump.html
źródło
gunzip -c mydb.pgsql.gz | sudo -u postgres psql
Aby uzyskać uprawnienia do działania w bazie danych. Weź pod uwagę również--clean
flagę podczas zrzutu, która usunie wszystkie istniejące dane, może się przydać.źródło
To działało dla mnie:
źródło
--no-owner
naprawdę mi pomogło.1. otwórz terminal.
2. wykonaj kopię zapasową bazy danych za pomocą następującego polecenia
twój postgres bin - /opt/PostgreSQL/9.1/bin/
Twój źródłowy serwer bazy danych - 192.168.1.111
lokalizacja i nazwa pliku kopii zapasowej - /home/dinesh/db/mydb.backup
twoja źródłowa nazwa db - moja baza danych
/opt/PostgreSQL/9.1/bin/pg_dump --host '192.168.1.111' --port 5432 - nazwa użytkownika "postgres" - brak hasła - format niestandardowy - blobs - plik "/ home / dinesh / db /mydb.backup ”„ moja baza danych ”
3. przywróć plik mydb.backup do miejsca docelowego.
serwer docelowy - localhost
nazwa docelowej bazy danych - moja baza danych
utwórz bazę danych, aby przywrócić kopię zapasową.
/opt/PostgreSQL/9.1/bin/psql -h 'localhost' -p 5432 -U postgres -c "UTWÓRZ BAZY DANYCH moja baza danych"
przywróć kopię zapasową.
/opt/PostgreSQL/9.1/bin/pg_restore --host „localhost” --port 5432 - nazwa użytkownika „postgres” - nazwa_db „moja baza danych” - brak hasła - czysta / home / dinesh / db / mydb. utworzyć kopię zapasową"
źródło
Jeśli utworzysz kopię zapasową za pomocą pg_dump, możesz łatwo przywrócić ją w następujący sposób:
cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
źródło
1) Otwórz terminal psql.
2) Rozpakuj / rozpakuj plik zrzutu.
3) Utwórz pustą bazę danych.
4) użyj następującego polecenia, aby przywrócić plik zrzutu
źródło
Spróbuj tego:
Przywróć DB psql z pliku .sql
źródło
Jak napisano poniżej, możesz użyć polecenia psql do przywrócenia pliku zrzutu:
https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE
jeśli chcesz ustawić nazwę użytkownika, po prostu dodaj nazwę użytkownika po poleceniu, np .:
źródło
próbować:
źródło
Przywrócenie pliku kopii zapasowej Postgres zależy przede wszystkim od sposobu wykonania kopii zapasowej.
Jeśli użyłeś pg_dump z -F c lub -F d, musisz użyć pg_restore, w przeciwnym razie możesz po prostu użyć
9 sposobów tworzenia kopii zapasowych i przywracania baz danych Postgres
źródło
Spróbuj sprawdzić, czy następujące polecenia mogą ci pomóc:
źródło
Przepraszamy za nekropolię, ale te rozwiązania nie działały dla mnie. Jestem na postgres 10. W systemie Linux:
service postgresql-10 restart
Zmień katalog na lokalizację mojej kopii zapasowej.sql i uruchom:
psql postgres -d database_name -1 -f backup.sql
-nazwa_bazy danych to nazwa mojej bazy danych
-backup.sql to nazwa mojego pliku kopii zapasowej .sql.
źródło
Miałem problemy z uwierzytelnieniem podczas uruchamiania pg_dump, więc przeniosłem plik zrzutu
do katalogu temp, a następnie uruchomione
Jeśli masz duży zrzut bazy danych, możesz po prostu utworzyć inny katalog, w którym bieżący użytkownik i użytkownik postgres będą mogli uzyskać do niego dostęp i umieścić w nim plik zrzutu bazy danych.
źródło
Jeśli masz zapasowy plik SQL, możesz go łatwo przywrócić. Postępuj zgodnie z instrukcjami podanymi poniżej
W razie potrzeby wpisz hasło użytkownika postgres i pozwól Postgres wykonać swoją pracę. Następnie możesz sprawdzić proces przywracania.
źródło
Jeśli chcesz wykonać kopię zapasową danych lub przywrócić dane z kopii zapasowej, możesz uruchomić następujące polecenia:
Aby utworzyć kopię zapasową danych, przejdź do katalogu postgres \ bin \ like,
C:\programfiles\postgres\10\bin\
a następnie wpisz następujące polecenie:Aby przywrócić dane z kopii zapasowej, przejdź do katalogu postgres \ bin \ like,
C:\programfiles\postgres\10\bin\
a następnie wpisz poniżej polecenie:Upewnij się, że plik kopii zapasowej istnieje.
źródło
Zobacz poniższy przykład jego działania
C: / Program Files / PostgreSQL / 9.4 / bin \ pg_restore.exe --host localhost --port 5432 - nazwa użytkownika „postgres” - nazwa_db „nowa baza danych” - brak hasła --verbose
„ C: \ Users \ Yogesh \ Downloads \ new Download \ DB.backup ”
źródło