Pg_restore çalıştırılırken “[arşivleyici] dosya üstbilgisinde desteklenmeyen sürüm (1.13)” alma


165

Heroku'da 10.2 ile eşleşen mac os'ta 10.2 postgres'e geçtim. Veritabanının bir kopyasını indirmeye ve yerel olarak geri yüklemeye çalışıyorum. Yükseltmeden önce geri yükleme düzgün çalışır.

koşarım

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

ama bu hatayı alıyorum:

pg_restore: [arşivleyici] dosya üstbilgisinde desteklenmeyen sürüm (1.13)

Veritabanı düzgün çalışıyor gibi görünüyor. Bu bir ray uygulaması ve ben pg gems yükseltti. Koşabilirim rake db:createve db:migrategayet iyi.

Yanıtlar:


196

2018-03-01'deki son güvenlik yamasını almak için yerel Herokuyürüyüşlerinizi yükseltmeniz gerekiyor, tıpkı 1 Mart'ta olduğu gibi . Geçen bültenleri biri gerek 10.3, 9.6.8, 9.5.12, 9.4.17, ve 9.3.22.

Güvenlik düzeltme ekini burada bulabilirsiniz https://www.postgresql.org/about/news/1834/ .

Görünüşe göre yama modifiye pg_dump, muhtemelen bu yüzden Hero_'nin dökümü için o yama olmadan pg_restore'u kullanamayız (yama uygulandığında).


87
brew upgrade postgresql brew postgresql-upgrade-database
gerry3

2
Linux Mint kullanarak sürümüm 9.5.11 ve güncel olduğunu söylüyor. Apt-get kullanarak en son sürümü kullanmaya nasıl zorlayabilirim?
Kritz

Postgresql 9.5.12 şu anda resmi Ubuntu 16.04 xenial repo paketlerinde.ubuntu.com/xenial/postgresql-9.5
HarlemSquirrel

6
@ gerry3'ün yorumu iki ayrı komuttur. Kopyala ve yapıştırıcılara dikkat edin!
Joe Masilotti

4
iki komutun başında brew upgrade postgresql && brew postgresql-upgrade-databasegerçekten sorunu gidermek ama yerel veritabanlarım yol boyunca düştü. Kritik verileriniz varsa bunları yedekleyin!
Jarvis Johnson

19

Bugün aynı sorunla karşılaştım, Heroku'nun tarafında bir şey değişti mi bilmiyorum, çünkü yerel olarak 9.6 çalıştırıyorum, ancak Heroku'daki veritabanım 9.4, bu yüzden sürüm noktası farkı hakkında görünmüyordu ( bugüne kadar çalışıyordu.)

Mac'te Postgres.app ( https://postgresapp.com/ ) kullanıyorsanız v2.1.3(bu yazıdan itibaren en yeni sürüm) çalıştığınızdan emin olun . Postgres.app'ı yükselttiğinizde, Postgres'in en yeni yama sürümünü alırsınız (muhtemelen şu anda yaşadığınız uyumsuzluğa neden olur - Heroku en son güvenlik yaması için yükseltilmiştir ve yerel makinenizde olmayabilir).

Postgres.app'ı 2.1.0'dan 2.1.3'e yükseltmek zorunda kaldım ve sorunu çözdü.


12

Dünden beri (03/01/2018) PostgreSQL 9.5'te çalışan Heroku'dan bir yedeği geri yükleme konusunda da sorunlar yaşadık:

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

PostgreSQL sürümümüzü 9.5.11'den 9.5.12'ye yükseltmek sorunu çözdü.


12

Bu sorunu ilk kez yaşadığımda, Heroku Veritabanını Yerelime nasıl geri yükledim:

$ rails db:drop
$ heroku pg:pull DATABASE_URL <insert local DB name> --app <app-name>

Güzel bir çözüm, bilmiyordum heroku pg:pull. Ama bu hala önceki bir heroku dökümü yerel olarak geri yükleyemezsiniz gibi uygun bir düzeltme değildir, ayrıca bu çekerken canlı veritabanı kaynağı kullanır sanırım.
demental

1
Aşağı oyların ne için olduğundan emin değilim. OP tam anlamıyla "Veritabanının bir kopyasını indirmek ve yerel olarak geri yüklemek çalışıyorum" soruyor ve ben bu soruyu cevaplıyorum.
Jim Padilla

7

Ubuntu'daki postgresql'i başarılı olmadan yükseltmeye çalışanlar için (Johan'ın yukarıda yorumladığı gibi), resmi PostgreSQL indirme talimatlarında belirtildiği gibi PostgreSQL uygun deposunu kullanmayı deneyin: 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

6

Benim için düzeltme hem Postgres.app güncelleştirmek hem de yerel homebrew PostgreSQL güncellenmesi içeriyordu .

Canuk'un cevabı aracılığıyla Postgres.app'ımı güncelle:

Postgres.app> Güncellemeleri kontrol et ...

Yerel homebrew PostgreSQL'imi gerry3'ün kabul edilen cevap hakkındaki yorumu ile güncelleyin:

brew upgrade postgresql brew postgresql-upgrade-database


Homebrew PostgreSQL'imi güncellemek zorunda kalmadım. Sadece Postgres.app dosyasını en son sürüme güncellemek yeterliydi.
mineralwasser

postgres.app'dan güncelleme sorunumu düzeltti
FutoRicky

6

PgAdmin 3 kullanarak Windows'ta bu sorun vardı.

PgAdmin 3'ten pgAdmin 4'e yükseltme sorunu benim için çözdü.

Sağlanan döküm dosyasını geri yüklemek için PgAdmin gibi bir üçüncü taraf aracı kullanıyorsanız, yüklü Postgres sürümü güncel olsa bile geri yükleme başarılı olmayabilir. Bunun nedeni, üçüncü taraf araçların genellikle pg_restore ikili dosyasının kendi sürümlerini paketlemesidir; bu güncel olmayabilir. https://help.heroku.com/YNH1ZJUS/why-am-i-getting-pg_restore-archiver-unsupported-version-1-13-in-file-header-error-with-pg_restore


Teşekkürler, bu benim için çalıştı. PostgreSQL 9.5.12 kullanıyorum ve pgAdmin 3 kullanıyordum. PgAdmin 4 pg_restorebaşarıyla gerçekleştirebildi .
Alexander

5

DB'nizi yerel olarak yeni bir büyük sürüme yükseltmenizi önermiyorum (güvenlik yamaları uygulayın), bunu sadece üretimdeki sürümünüzle eşleşmesini istediğiniz gibi düzeltmek için.

Bu, bir Heroku veritabanından geri yükleyerek Ubuntu 16.04'te düzeltildi.

İlk olarak, diego belirtildiği gibi postgresql repo sahip olduğundan emin olun. Ardından yükseltilen istemciyi yükleyin.

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

Ubuntu 17.04 veya 17.10 iseniz, PostgreSQL'in lezzet deposunun ihtiyacınız olan güncellenmiş istemciye sahip olmadığını unutmayın . Bunun yerine xenial Postgres deposunu kullanmak isteyeceksiniz.


Veritabanınız güvenilmeyen kullanıcılardan gelen sorguları çalıştırıyorsa oldukça önemli olan bir güvenlik düzeltme eki olduğundan, db'yi yükseltmenizi öneririm : wiki.postgresql.org/wiki/… " Sürümün amacı CVE-2018-1058 adresine yöneliktir. bir kullanıcının, diğer kullanıcıların sorgularının davranışını değiştirebilecek ve "truva atı" saldırısı olarak da bilinen beklenmedik veya kötü niyetli davranışlara neden olabilecek farklı şemalarda benzer adlandırılmış nesneler nasıl oluşturabilir.
RobM

Bunu yaptığımda Unable to locate package postgresql-client-10anlıyorum
Doug

@RobM Kabul etti. "Yükseltmeyi önermeyin ..." derken, üretimde kullanmadığınız büyük bir sürüme yükseltme yapılmamasından bahsediyordum. Yerel olarak ve tabii ki üretimde büyük bir sürümde en son güvenlik yamasına yükseltmek kesinlikle akıllıca olacaktır. Anlamımı daha iyi yansıtmak için cevabımdaki sözleri değiştireceğim.
Ivan

1
@ Doug Önce uygun postgres deposunu eklemeyi unutmayın. Bu yorumda açıklananlara benzer. stackoverflow.com/a/49116272/3975541
Ivan

4

Pg_restore / pg_dump bana psql'den daha eski bir sürüm verdi Ubuntu (16.04 LTS) ile ilgili sorunu şu şekilde çözdüm

$ pg_restore --version
pg_restore (PostgreSQL) 9.4.8

$ psql --version
psql (PostgreSQL) 9.5.14

Sorun, birden fazla pg sürümünün yüklü olması ve pg_restore'un önceki sürüme işaret ediyor olmasıydı

$ 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

Düzeltme, doğru sürüme işaret eden bir ~ / .postgresqlrc dosyası oluşturmaktır

$ cat ~/.postgresqlrc

9.5 main *

Bu yapıldıktan sonra pg_restore doğru sürüme işaret eder ve komut

Burada verilen ayrıntılar: /server/610777/wrong-version-of-pg-dump-on-ubuntu


3

PGadmin III'te bu sorunla karşılaştım ve ikili dosyaların konumunu değiştirerek düzeltmeyi başardım:

Dosya menüsü> Seçenekler> İkili Yollar, ardından "PG bin yolu" nu ProgramFiles / pgadmin yerine postgresql / 9.x / bin olarak değiştirdi. Geri yükleme daha sonra iyi çalıştı.


2

Sağlanan döküm dosyasının geri yüklenmesini desteklemeyen eski bir pg_restore ikili dosyasının sürümünü kullanıyorsunuz. Lütfen aşağıdaki sürümden daha yüksek olması gereken en yeni Postgres sürümünü kullandığınızdan emin olun: https://www.postgresql.org/about/news/1834/ (10.3, 9.6.8, 9.5.12, 9.4.17 ve 9.3.22).

Pg_restore --version komutunu kullanarak kullandığınız pg_restore sürümünü kontrol edebilirsiniz.

Sağlanan döküm dosyasını geri yüklemek için PgAdmin gibi bir üçüncü taraf aracı kullanıyorsanız, yüklü Postgres sürümü güncel olsa bile geri yükleme başarılı olmayabilir. Bunun nedeni, üçüncü taraf araçların genellikle pg_restore ikili dosyasının kendi sürümlerini paketlemesidir; bu güncel olmayabilir.


0

Aynı hatayla karşılaşıyordum. Postgresql 10.3 için yerel olarak güncelledim ve bu benim için sorunu düzeltti.


-1

Pencereler için:

Komut İstemi'ni ( cmd) açın , ardından konuma gidin C:\Program Files\PostgreSQL\9.6\binve şu komutları çalıştırın:

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

Umarım sana yardımcı olur


-3

Aynı sayıda 10 dakika önce koştum ve 2005'ten bu konu hakkında bilgi edindim: https://www.postgresql.org/message-id/1106163722.780395.266900%40z14g2000cwz.googlegroups.com

Temelde adam döküm dosyasının bozuk olduğunu söylüyor.


3
Garip. Heroku'dan bir döküm dosyası oluşturdum ve aynı sorunu aldım. Bu daha önce hiç olmamıştı. Postgresql'i 9.6'dan 10'a yükseltmeyi denedim ama işe yaramadı.
karantan

1
10.2 veya 10.3'te misiniz? İnanıyorum ki şimdi 10.3'te olmalısın.
Jack Kinsella

Bu posta listesi iş parçacığı 2005'ten alınmıştır. Burada son zamanlarda değişen, iş parçacığındaki sorundan farklı bir şey var.
Yetanotherjosh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.