1

次のコマンドを使用して、早期にバックアップした PostgreSQL DB の復元に問題があります。

pg_dump -i -h localhost -p 5432 -U Mark -F c -b -v -f "C:\Users\mchan\Desktop\MyDB\DBBackup.backup" mydb

(別のマシン)でこのDBバックアップを復元しようとすると、次のエラーが発生しました:

pg_restore: [archiver] directory "C:\Users\mark\Desktop\MCHANBackups\DBBackup.backup" does not appear to be a valid archive ("toc.dat" does not exist)

以下は、バックアップを復元するために使用したコマンドです。

pg_restore -i -h localhost -p 5432 -U Mark -d mydb -v "C:\Users\mark\Desktop\MCHANBackups\DBBackup.backup"

誰かが私を助けて、私がここで間違っていることを教えてもらえますか?

4

1 に答える 1

2

カスタム形式を使用していて、バックアップが通常のテキスト ファイルに送信されていると思います。テキスト ファイルから復元するには、psql コマンドを使用します: psql -e -d template1 -f "C:\Users\mchan\Desktop\MyDB\DBBackup.backup" Postgresql のコミュニティ ページのこの投稿を参照してください。

次のようにpsqlコマンドを使用します。

psql -e -U username -d databaseName -f "C:\Users\mchan\Desktop\MyDB\DBBackup.backup"

ユーザー名は、データベースで定義されたロールである必要があります。例: postgres

psqlコマンドでパスワードの入力を求めるプロンプトが表示され、ユーザーのパスワードがわからない場合は、"/data" フォルダーの下にある pg_hba.conf ファイルで "md5" を "trust" に置き換え、この変更有効にするために "postgres サービス" を再起動します。効果。

この変更が完了すると、 psqlはパスワードを要求しなくなります。

psqlおよびその他のオプションの詳細については、 psql-docを参照してください。

于 2013-09-10T12:48:21.963 に答える