2014-07-24 29 views
9

Ich versuche, eine Datenbank von postgresql zu sichern, und ich möchte pg_dump Befehl verwenden.
Ich habe versucht:postgresql wo ist die Ausgabe von pg_dump gehen

psql -U postgres 
postgres-# pg_dump test > backup.sql 

Aber ich weiß nicht, wo die Ausgabedatei geht.
Jede Hilfe wird geschätzt

+1

Warum machst du es dann nicht laufen 'finde/-name backup.sql' – Bohemian

Antwort

8

Gehen Sie zu Eingabeaufforderung und Verzeichnis postgresql \ 9.3 \ bin.

Beispiel

c:\Program files\postgresql\9.3\bin> pg_dump -h localhost -p 5432 -U postgres test > D:\backup.sql 

Nach oben Befehl eingeben Benutzer "postgres" Passwort und überprüfen D:\ Laufwerk für backup.sql Datei

+0

danke Mann !!!! Können Sie mir helfen, das Backup in eine neue leere Datenbank zu importieren? –

+0

@Dariush Jafari, Yup! Aber Sie müssen eine neue Frage dafür mit Ihrem besten Versuch veröffentlichen. – Meem

+0

ok! geh zu meinen Fragen und antworte nach einem Moment! –

2

Wenn Sie nicht vollständig qualifizierte Angabe von Pfaden wie:

pg_dump your_db_name > dbdump

dann in Windows speichert Speicherauszüge im Ausgangsverzeichnis des aktuellen Benutzers. Dh:

C:\Users\username

0

In meiner Situation (PostgreSQL 9.1.21, Centos 6.7), der Befehl

runuser -l postgres -c 'pg_dump my_database > my_database.sql' 

die Datei hier gespeichert:

/var/lib/pgsql/my_database.sql 

Nicht sicher, ob das ist wahr für andere Linux Dists, CentOS und/oder pgl Versionen. Laut the answer post by the asker of this question ist dies der Fall, aber andere Benutzer gaben an, dass sich die Sicherungsdatei im aktuellen Verzeichnis befindet (aus verschiedenen Gründen eine andere Situation für die meisten Benutzer, die diesen Thread lesen). Nun, ich hoffe, dass dies anderen Benutzern mit dem gleichen Problem helfen kann.

Ps: Wenn das nicht der Pfad für Ihre Situation ist, können Sie versuchen (in Linux), es mit dem folgenden Befehl zu finden (wie von @Bohemian in den Kommentaren dieser Frage angegeben), aber das kann eine Weile dauern:

find/-name 'my_database.sql' 

EDIT: ich versuchte, den analogen Befehl in Ubuntu 12.04 zu laufen:

sudo -u postgres pg_dump my_database > my_database.sql 

Und in diesem Fall die Datei gespeichert wurde im aktuellen Verzeichnis, in dem ich den Befehl lief! Also beide Fälle können in Linux passieren, abhängig von der spezifischen Entfernung, die Sie arbeiten