web-dev-qa-db-ja.com

プレーンテキストのpostgres.backupファイルを復元するにはどうすればよいですか

データベースのテキスト全体を検索したかったので、pgAdminからpostgresデータベースをプレーン形式でエクスポートしました。次に、データベースを復元しようとしましたが、アーカイブファイルが有効なアーカイブファイルではないというエラーが表示されます。データベースを復元するにはどうすればよいですか?

1
yankitwizzy

PLAIN形式はSQLであるように見えます。引用するには ドキュメント

pg_dumpは、すべてのバックアップファイル形式のすべてのオプションをサポートしているわけではありません。特に、blobのバックアップには、PLAIN形式は使用できません。また、PLAINファイルは解釈できず、pgAdminを使用して復元することもできません。 PLAIN形式は、psqlツールを使用して実行できるSQLスクリプトを作成します。標準のバックアップと復元の目的では、COMPRESSオプションとTARオプションをお勧めします。

(UNIXで)次のようなものを使用して復元できると思います:

psql < backup-file

またはpsqlプロンプトの内部から(newdbは空のdbです)

psql newdb
newdb=# \i backup-file

特権ユーザー 'postgres'(unixなど)として実行するか、ロールの適切な資格情報をpsqlに渡して、指定されたデータベースとロールおよびその他のエンティティを作成できるようにする必要がある場合があります。バックアップファイルによって。データベースとロールの作成ステートメントは、バックアップにサーバー全体(サーバー全体)があるか、データベースが1つしかない(データベースとロールを作成する必要がある)かによって、バックアップに存在しない場合があります。したがって、復元する前に作成する必要があります。

1
Anil