Postgresqlのデータベースをバックアップしようとしていますが、pg_dump
コマンド。
私は試した :
psql -U postgres
postgres-# pg_dump test > backup.sql
しかし、出力ファイルの場所はわかりません。
ご協力いただければ幸いです
コマンドプロンプトとディレクトリpostgresql\9.3\binに移動します。
例
。
..
c:\Program files\postgresql\9.3\bin> pg_dump -h localhost -p 5432 -U postgres test > D:\backup.sql
...
上記のコマンドの後、ユーザー「postgres」パスワードを入力し、D:\
ドライブのbackup.sql
ファイルを確認します
私の状況(PostgreSQL 9.1.21、Centos 6.7)では、コマンド
runuser -l postgres -c 'pg_dump my_database > my_database.sql'
ここにファイルを保存しました:
/var/lib/pgsql/my_database.sql
他のLinux dists、CentOS、および/またはpglバージョンに当てはまるかどうかはわかりません。 この質問の質問者による回答投稿 によると、これは本当ですが、他のユーザーはバックアップファイルが現在のディレクトリにあると言いました(明らかな理由でこのスレッドを読んでいるほとんどの人とは異なる状況) 。まあ、これが同じ問題を抱えている他のユーザーに役立つことを願っています。
追記:それがあなたの状況への道ではない場合、以下のコマンド(この質問のコメントで@Bohemianによって述べられているように)を使用して(Linuxで)それを見つけることができますが、これには時間がかかることがあります:
find / -name 'my_database.sql'
EDIT:Ubuntu 12.04で類似のコマンドを実行しようとしました(Ubuntu 18.04で動作します):
Sudo -u postgres pg_dump my_database > my_database.sql
この場合、ファイルはコマンドを実行した現在のディレクトリに保存されました!そのため、作業している特定のdistに応じて、Linuxで両方のケースが発生する可能性があります
私はこのパーティーに遅れていますが、答えはどれも本当に正しいとは思いません。ほとんどは、pg_dump
がファイルをどこかに書き込むことを暗示しているようです。そうではありません。 Youはファイルに出力を送信しており、youはシェルにそのファイルの書き込み先を指示しました。
plain
またはSQL形式を使用するpg_dump test > backup.sql
の例では、pg_dump
コマンド保存しない任意の場所のファイル。通常は画面であるSTDOUT
に出力を送信するだけで、完了です。
ただし、コマンドでは、シェル(ターミナル、コマンドプロンプトなど)にSTDOUTをファイルにリダイレクトするように指示しました。これはpg_dump
とは関係ありませんが、Bashやcmd.exeなどのシェルの標準機能です。
>
を使用して、STDOUTを画面ではなくファイルにリダイレクトしました。そして、ファイル名を「backup.sql」と指定しました。パスを指定しなかったため、ファイルは現在のディレクトリにあります。他のディレクトリにcd ...
を実行していない限り、これはおそらくあなたのホームディレクトリです。
pg_dump
の特定のケースでは、 > /path/to/some_file
オプション を使用して、-f some_file
シェルリダイレクトの代替を使用することもできます。
-fファイル
-file = file指定されたファイルに出力を送信します。このパラメーターは、ファイルベースの出力形式では省略できます。この場合、標準出力が使用されます。
したがって、コマンドはpg_dump test -f backup.sql
であり、pg_dumpにそのファイルに直接書き込むように要求できます。
ただし、いずれにしてもファイル名を指定します。パスを指定しない場合、ファイルは現在のディレクトリに作成されます。プロンプトに現在のディレクトリが表示されていない場合は、Unixではpwd
コマンドで、Windowsではcd
コマンドで表示できます。
次のような完全修飾パスを指定していない場合:
pg_dump your_db_name > dbdump
次にWindowsで、現在のユーザーのホームディレクトリにダンプを保存します。つまり:
C:\Users\username
Linuxのデフォルトパスは次のとおりです。
/ var/lib/postgresql /
Macのpgadmin 4では、ダンプが成功すると「詳細」をクリックすると、「コマンドの実行」というボックスが表示されます。そのボックスには/ Applications/pgAdmin 4.app/Contents/SharedSupport/pg_dumpが表示されます--file "path/to/file" fileへのパスはストレージの宛先です。