.tarファイルからPostgreSQLデータベースを復元する方法は?


20

$ dbNameを作成するWHMを使用した増分バックアップ中に、すべてのPostgreSQLデータベースをバックアップしています。tarファイル。

データはこれらの.tarファイルに保存されますが、SSHを介して個々のデータベースに復元する方法がわかりません。特にファイルの場所。

私は使用しています:

pg_restore -d client03 /backup/cpbackup/daily/client03/psql/client03.tar

「入力ファイルを開けませんでした:許可が拒否されました」というエラーが生成されます

どんな援助も感謝します。


このコマンドを実行しているユーザーはそのファイルにアクセスできますか?
マット

こんにちはMat、あなたはそう思うでしょう(ルートとして実行)が、多くの組み合わせの後に問題を解決し、生の.tarファイルをtmpに移動しました... pg_restore -c -i -U postgres -d client03 -v "/tmp/client03.tar" -W最後の-Wは、必要に応じてパスワード入力を強制し、すべてを元に戻すことができる主なトリックでした。
スティーブン

回答:


24

他の誰かがこのスレッドを見つけた場合に備えて、正しいコード文字列を見つけました。

pg_restore -c -i -U postgres -d client03 -v "/tmp/client03.tar" -W

内訳は、http://www.postgresql.org/docs/7.3/static/app-pgrestore.htmlからのものであり、試行錯誤が少しありました。

基本的に...

-c to clean the database
-i to ignore any database version checks
-U to force a user
-d to select the database
-v verbose mode, don't know why
"$$" the location of the files to import in tmp to get around permission issues
-W to force asking for the password to the user (postgres)

上記が他の誰かを助けることを願っています。


tar.gzでも同じことができますか?
eri

2

PgAdmin IIIを使用して復元を行った場合、次のコマンドを使用して問題なく機能しました。

pg_restore --host localhost --port 5432 --username "my_user_name" --dbname "my_db_name" --role "my_user_name" --no-password  --verbose "/Users/me/Desktop/backup_file.tar"

警告を回避するために、ターゲットサーバーに既に存在するバックアップファイルでオブジェクトの所有者の役割を持つことをお勧めします。また、そのロールによってターゲットDBが作成および所有されている必要があります。


1

.tarファイルをインポートできるかどうかはわかりません。私はするだろう

tar -zxvf client03.tar 

ファイル内にあるものをすべて抽出し、pg_restoreを再試行します。ベアメタル復元と同じ復元方法があるため、pg_restoreが機能することを知っています。


1
こんにちはスティーブン、はい、明らかにそうです、正しいコードを取得し、アクセスするためのアクセス許可を持つフォルダーにファイルをドロップするのに少し時間がかかりました:)
スティーブン

「-z」は、gzipで圧縮されていない単なるtarであるため、エラーを返します。
アレックス

アレックスは100%正しいです。
スティーブントンプソン

0

以下は、pgAdmin iiiからデータベースをクリックし、右クリックして復元を選択することで生成されました。持っていた.tarファイルに移動し、それを単独で実行しました。

/usr/bin/pg_restore --host localhost --port 5434 --username "postgres" \
--dbname "dvdrental" --no-password  --schema public --verbose \
"/home/npena/Desktop/dvd/dvdrental.tar"

0

バージョン9.5の場合、コマンドラインで次を実行します

pg_restore -W -c -U [username] -d [database_name] -v "[path to extracted tar]"


0

GNU / LINUXコンソール:

pg_restore -h 127.0.0.1 -p 5432 -U "postgres" -d "dvdrental_tpl" -v "/var/backups/dvdrental.tar";

-詳細ヘルプ

pg_restore --help

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.