2016-12-07 1 views
0

私は、postgresデータベース全体をバックアップし、それを正しく復元しようとしていますが、バックアップを復元しようとするとエラーのリストが表示されています。postgresデータベースを復元するときに何がエラーになるか?

私は、バックアップSQLファイルを作成するためにpg_dumpを使用しています。私はデータベースを復元しようとすると(私はパスワードを.pgpassファイルを用意しておく)

sudo -u postgres pg_dump -d db-w > backup.sql 

ERROR: duplicate key value violates unique constraint 
ERROR: multiple primary keys for table 
ERROR: relation <relation> already exists 
ERROR: trigger <trigger> for relation <relation> already exist 

I避難所:

sudo -u postgres psql db < backup.sql 

私のようなエラーのリストを取得しますデータベースを変更しませんでした。私は単純にバックアップを実行した後、バックアップを復元しました。

私は間違っていますか?

+2

バックアップを空ではないデータベースに復元しています。 – wildplasser

答えて

0

したい場合は、あなたは、既存のデータベースにリストアすると、あなたが--cleanオプションを使用して

-c、--clean クリーン(ドロップ)--createできるバックアップでデータベースを交換してくださいデータベースオブジェクトを再作成する前に(任意のオブジェクトが宛先データベースで 存在しなかった場合、これは 、いくつかの無害なエラーメッセージを生成することがあります。)

-C、 --createそれにリストアする前にデータベースを作成します。 --cleanも が指定されている場合は、ターゲットデータベースを削除してから再作成してから を接続してください。

+0

これらのフラグをpsqlコマンドで使用できますか? – ScrawnySquirrel

+0

@ScrawnySquirrelスイッチなどを使用するには、pg_restoreを使用する必要があります。また、バックアップがpg_restoreの正しい形式であることを確認する必要があります。こちらのドキュメントを参照してください。 https://www.postgresql.org/docs – Mokadillion

関連する問題