23

postgres データベースのバックアップと復元に pg_dump と pg_restore を使用しています。

この質問に関連するドキュメントからの情報を次に示します。Pg_restore の場合、-C オプションは次のように記述されます。

-C

- 作成

復元する前にデータベースを作成します。--clean も指定されている場合は、 > > 接続する前にターゲット データベースを削除して再作成します。このオプションを使用すると、-d で指定されたデータベースは、最初の DROP DATABASE および CREATE DATABASE コマンドを発行するためだけに使用されます。すべてのデータは、アーカイブに表示されるデータベース名に復元されます。

ただし、pg_restore でこのオプションを使用しても、次のエラーが発生します。

pg_restore: [archiver (db)] データベース "test" への接続に失敗しました: FATAL: > データベース "test" が存在しません

説明によると、 -C オプションは不足しているデータベースを作成する必要があります。ただし、私の場合はそうではありません。

以下は、バックアップと復元のために行った手順です。

  1. pg_dump を使用してデータベースをバックアップする
pg_dump -N backup -d test --format custom -v -h xxhostxx -p 5432 -U xxuserxx --lock-wait-timeout 300000 -f test_pg_dump.dmp

注: -C オプションはプレーンテキスト形式でのみ意味があるため、使用しないでください

  1. テストデータベースを削除しました

  2. pg_restore を使用してデータベースを復元する

    pg_restore -C -d test -v -h xxhostxx -p 5432 -U xxuserxx test_pg_dump.dmp**
    

ここで何が問題なのか理解できません!私は何か間違っていますか?さらに情報が必要な場合はお知らせください。

4

3 に答える 3

13

私にとってはうまくいかなかったので、このコマンドはデータベースを作成します

createdb -h HOST -U USER -W DB_NAME

次に、pg restore を実行します

pg_restore -d DB_NAME -v -h HOST -p PORT -U USER DUMP_FILE.dump**

話の終わり

于 2019-01-04T04:58:44.087 に答える