web-dev-qa-db-ja.com

Pg_restoreを実行した際に "[archiver]サポートされていないバージョン(1.13)をファイルヘッダに"する

私はちょうどMac OS上のpostgres 10.2にアップグレードしました。データベースのコピーをダウンロードしてローカルに復元しようとしています。アップグレードの前に復元はうまくいきます。

走る

pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name backup.dump

しかし、私はこのエラーを受けています:

pg_restore:[アーカイバ]ファイルヘッダのサポートされていないバージョン(1.13)

データベースは正常に動作しているようです。これはRailsアプリで、私はpg gemをアップグレードしました。私はrake db:createdb:migrateをうまく動かすことができます。

156
Mark Swardstrom

Herokuが1月3日に行ったように、あなたはあなたの地元のpostgresをアップグレードして2018-03-01から最後のセキュリティパッチを入手する必要があります。最後のリリース10.39.6.89.5.129.4.17、および9.3.22のいずれかが必要です。

セキュリティパッチはこちらにあります https://www.postgresql.org/about/news/1834/

それはパッチがpg_dumpを修正したようです、それはおそらく私たちがHerokuのダンプのためにそのパッチなしでもうpg_restoreを使うことができない理由です(パッチが適用された状態で)。

187
jumichot

私は今日この同じ問題に遭遇しました、Heroku側で何かが変更されたかどうかわかりません、なぜならローカルで私は9.6を動かしていますがHeroku上の私のデータベースは9.4です。今日まで働いていました。)

MacでPostgres.app( https://postgresapp.com/ /)を使用している場合は、v2.1.3を実行していることを確認してください(これを書いている時点で最新のバージョンです)。 Postgres.appをアップグレードすると、Postgresの最新のパッチリリースを入手できます(これは、現在発生しているミスマッチの原因となっている可能性があります - Herokuが最新のセキュリティパッチにアップグレードしており、ローカルコンピュータにはない場合があります)。

私はPostgres.appを2.1.0から2.1.3にアップグレードしなければなりませんでした、そしてそれは問題を解決しました。

17
Canuk

昨日(2017年3月1日)以降、PostgreSQL 9.5上で実行されているHerokuからのバックアップの復元で問題が発生しました。

pg_restore: [archiver] unsupported version (1.13) in file header

PostgreSQLのバージョンを9.5.11から9.5.12にアップグレードすると問題が解決しました。

12
cbx

私がこの問題を最初に抱えたのは、Herokuデータベースを私のLocalに復元する方法です。

$ Rails db:drop
$ heroku pg:pull DATABASE_URL <insert local DB name> --app <app-name>
12
Jim Padilla

(Johanが上記でコメントしたように)Ubuntuでpostgresqlを成功させないでアップグレードしようとしている人は、公式のPostgreSQLダウンロード指示に書かれているように、PostgreSQL aptリポジトリを使ってみてください: https://www.postgresql.org/download/linux/ubuntu/

deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | Sudo apt-key add -
Sudo apt-get update
7
Diego Aragão

私のための修正は both 私のPostgres.appの更新と私の地元の自作PostgreSQLの更新を含みました。

Canukの答えで私のPostgres.appを更新してください。

Open Postgres.app>アップデートを確認してください...

受け入れられた答えに対するgerry3のコメントで私の地元の自作PostgreSQLを更新してください。

brew upgrade postgresqlbrew postgresql-upgrade-database

6
alxpck

本番環境で使用しているバージョンに合わせてこれを修正するために、DBをローカルで新しいメジャーバージョンにアップグレードする(セキュリティパッチを適用する)ことはお勧めしません。

これにより、Herokuデータベースから復元したUbuntu 16.04でそれが修正されました。

最初に、diegoが述べたようにpostgresqlレポジトリを持っていることを確認してください。その後、アップグレードしたクライアントをインストールします。

Sudo apt-get update && Sudo apt-get install postgresql-client-10

Ubuntu 17.04または17.10の場合、PostgreSQLのzestyリポジトリはnot必要な更新されたクライアントを持っています。代わりに外部Postgresリポジトリを使用したいと思うでしょう)。

5
Ivan

WindowsでpgAdmin 3を使用してこの問題を抱えていました。

PgAdmin 3からpgAdmin 4にアップグレードすると問題が解決しました。

提供されたダンプファイルを復元するためにPgAdminなどのサードパーティ製ツールを使用している場合、インストールされているPostgresのバージョンが最新であっても復元が成功しない場合があります。これは、サードパーティのツールが独自のバージョンのpg_restoreバイナリをバンドルしていることが多く、それが最新ではない可能性があるためです。 https://help.heroku.com/YNH1ZJUS/why-am-i-getting-pg_restore-archiver-unsupported-version-1-13-in-file-header-error-with-pg_restore

3
Andrew

これは、pg_restore/pg_dumpが私に古いバージョンを与えていたUbuntu(16.04 LTS)の問題をpsqlから解決した方法です。

$ pg_restore --version
pg_restore (PostgreSQL) 9.4.8

$ psql --version
psql (PostgreSQL) 9.5.14

問題は、複数のpgバージョンがインストールされていて、pg_restoreが以前のバージョンを指していたことです。

$ pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
9.4 main    5432 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
9.5 main    5433 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log

修正は正しいバージョンを指す〜/ .postgresqlrcファイルを作成することです。

$ cat ~/.postgresqlrc

9.5 main *

これが行われると、pg_restoreは正しいバージョンを指し、コマンドは実行されます

ここに与えられた詳細: https://serverfault.com/questions/610777/wrong-version-of-pg-dump-on-ubuntu

1
Rabi Cherian

私はpgadmin IIIでこの問題に遭遇し、バイナリの場所を切り替えることでそれを修正することができました:

[ファイル]メニュー> [オプション]> [バイナリパス]を選択し、[PG bin path]をProgramFiles/pgadminではなくpostgresql/9.x/binに変更しました。復元はその後うまくいきました。

1
Guest

提供されたダンプファイルの復元をサポートしていない古いバージョンのpg_restoreバイナリを使用しています。最新のPostgresバージョンを使用していることを確認してください。これは次のリリースよりも新しい必要があります。 https://www.postgresql.org/about/news/1834/ (10.3、9.6.8、9.5.12 、9.4.17、および9.3.22)。

あなたが使用しているpg_restoreのバージョンを確認するには、pg_restore --versionを実行します。

提供されたダンプファイルを復元するためにPgAdminなどのサードパーティ製ツールを使用している場合、インストールされているPostgresのバージョンが最新であっても復元が成功しない場合があります。これは、サードパーティのツールが独自のバージョンのpg_restoreバイナリをバンドルしていることが多く、それが最新ではない可能性があるためです。

1
Vagner Dev

私は同じエラーに遭遇していました。私はpostgresql 10.3をローカルに更新しました、そしてそれは私にとって問題を解決しました。

0
Sean McCleary

Windowsの場合:

コマンドプロンプト(cmd)を開き、場所C:\Program Files\PostgreSQL\9.6\binに移動して、次のコマンドを実行します。

pg_restore -U username -d dbname -1 filename.dump
pg_restore -U postgres -d app -1 G:\app09-07-2019.backup

それがあなたを助けることを願っています

0
Reena khan