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 で復元しようとしていると推測されるため、理解できません。以前にこの問題が発生した人はいますか?