5

PostgreSQL でクラスター バックアップを復元しようとしています。私は pg_dumpall を使用し、SQL クエリを含むプレーン テキスト ファイルを生成しました。ただし、復元しようとすると、次のエラーが発生します。

pg_restore: [archiver] 入力ファイルが有効なアーカイブではないようです

データベースのバックアップ (pg_dump で生成) を復元しようとしたときにも同じエラーを受け取りましたが、その問題は解決しました。その場合、pg_restore は SQL クエリでプレーン テキストを認識しなかったため、コマンドを次のように変更しました。

pg_dump db_name -Fc -U user -h host -p port > my_db_backup.dump

そして代わりに書いた:

pg_dump db_name -Fp -U user -h host -p port > my_db_backup.dump

この方法では、生成されたファイルはプレーン テキストではないため、pg_restore はそれでうまく機能しました。

現在、pg_dumpall で同じように管理しようとしていますが、そのための -F パラメータはありません。私のコード (Python3 では、このコマンドはどの言語でも同じです) は次のとおりです。

pg_dumpall -U user -h host -p port > my_cluster_backup.dump

これを管理する方法について何か考えはありますか?または、少なくともクラスターのバックアップを何らかの方法で復元する方法はありますか? 前もって感謝します!

編集

psqlを使用して復元する場合:

psql -U user -h host -p port -f my_cluster_backup.dump postgres'

多くのコマンドがコンソールに表示されますが、それぞれに「既に存在します」というエラーが表示されます。2 つのクラスター (ポート 5432 および 5433) があり、5433 に接続していると確信しているのに、5432 で復元しようとしていると推測されるため、理解できません。以前にこの問題が発生した人はいますか?

4

2 に答える 2