Pg_restore चलाते समय "[संग्रहकर्ता] असमर्थित संस्करण (1.13) फ़ाइल हैडर में"


165

मैंने मैक ओएस पर 10.2 को पोस्टग्रेज करने के लिए अपग्रेड किया था जो कि हरोकू पर 10.2 से मेल खाता है। मैं डेटाबेस की एक प्रति डाउनलोड करने और इसे स्थानीय स्तर पर पुनर्स्थापित करने का प्रयास कर रहा हूं। नवीनीकरण से पहले पुनर्स्थापना ठीक काम करेगी।

मै भागा

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

लेकिन मुझे यह त्रुटि मिल रही है:

pg_restore: [अभिलेखागार] फ़ाइल हेडर में असमर्थित संस्करण (1.13)

डेटाबेस ठीक काम करता प्रतीत होता है। यह एक रेल app है और मैं स्नातकोत्तर जवाहरात उन्नत बनाया। मैं दौड़ सकता हूं rake db:createऔर db:migrateबस ठीक हूं ।

जवाबों:


196

आपको 2018-03-01 से अंतिम सुरक्षा पैच प्राप्त करने के लिए अपने स्थानीय पोस्टग्रेज को अपग्रेड करने की आवश्यकता है, जैसे Heroku1 मार्च को किया था। आप पिछले विज्ञप्ति में से एक की जरूरत है 10.3, 9.6.8, 9.5.12, 9.4.17, और 9.3.22

सुरक्षा पैच यहां https://www.postgresql.org/about/news/1834/ पर देखे जा सकते हैं ।

ऐसा लगता है कि पैच संशोधित pg_dump है, शायद इसीलिए हम pg_restore का उपयोग उस पैच के बिना Heroku के डंप (लागू पैच के साथ) के बिना नहीं कर सकते हैं।


87
brew upgrade postgresql brew postgresql-upgrade-database
gerry3

2
लिनक्स मिंट का उपयोग करना मेरा संस्करण 9.5.11 है और यह कहता है कि यह अद्यतित है। मैं इसे apt-get का उपयोग करके नवीनतम संस्करण का उपयोग करने के लिए कैसे मजबूर करूं?
क्रिट्ज़

Postgresql 9.5.12 अब आधिकारिक Ubuntu 16.04 xenial रेपो पैकेजों में है
।ubuntu.com

6
@ gerry3 की टिप्पणी दो अलग-अलग कमांड हैं। कॉपी-एंड-पास्टर्स से सावधान रहें!
जो मासिलोटी

4
दो आदेशों के प्रमुख brew upgrade postgresql && brew postgresql-upgrade-databaseवास्तव में समस्या को ठीक करते हैं लेकिन मेरे स्थानीय डेटाबेस रास्ते से हट गए। यदि आपके पास महत्वपूर्ण डेटा है तो उनका बैकअप लें!
जार्विस जॉनसन

19

मैं आज इसी मुद्दे पर भागा, मुझे नहीं पता कि क्या हर्को के पक्ष में कुछ बदल गया है, क्योंकि स्थानीय रूप से मैं 9.6 चला रहा हूं लेकिन हरोकू पर मेरा डेटाबेस 9.4 है, इसलिए यह संस्करण बिंदु अंतर के बारे में प्रतीत नहीं हुआ (यह आज तक काम कर रहा था।)

यदि आप Mac पर Postgres.app ( https://postgresapp.com/ ) का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आप चल रहे हैं v2.1.3(इस लेखन के रूप में जो सबसे नया संस्करण है)। जब आप Postgres.app को अपग्रेड करते हैं, तो आपको Postgres की नवीनतम पैच रिलीज़ मिलती है, (जो संभवतः आपके द्वारा वर्तमान में अनुभव किए जा रहे बेमेल का कारण बन रहा है - हरोकू ने नवीनतम सुरक्षा पैच के लिए अपग्रेड किया है, और आपके स्थानीय मशीन में यह नहीं हो सकता है)।

मुझे 2.1.0 से 2.1.3 तक Postgres.app को अपग्रेड करना पड़ा और इसने समस्या को हल कर दिया।


12

कल (03/01/2018) से हमें पोस्टग्रेएसक्यूएल 9.5 पर चलने वाले हरोकू से एक बैकअप को बहाल करने में भी समस्याएं थीं:

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

9.5.11 से 9.5.12 तक हमारे PostgreSQL संस्करण को अपग्रेड करते हुए समस्या को ठीक किया।


12

पहली बार मेरे पास यह मुद्दा है, यहां बताया गया है कि मैंने अपने स्थानीय को हरोकू डेटाबेस को कैसे पुनर्स्थापित किया:

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

अच्छा समाधान, मुझे पता नहीं था heroku pg:pull। लेकिन यह एक उपयुक्त फिक्स नहीं है, क्योंकि आप अभी भी स्थानीय रूप से पिछले एक हॉकू डंप को बहाल नहीं कर सकते हैं, मुझे यह भी लगता है कि यह लाइव डेटाबेस संसाधन को खींचने के लिए उपयोग करता है।
डिमेंटल

1
यह सुनिश्चित नहीं है कि चढ़ाव क्या हैं। ओपी शाब्दिक रूप से पूछ रहा है "मैं डेटाबेस की एक प्रति डाउनलोड करने और इसे स्थानीय रूप से पुनर्स्थापित करने की कोशिश कर रहा हूं" और मैं उस विशिष्ट प्रश्न का उत्तर दे रहा हूं।
जिम पैडीला

7

उन लोगों के लिए जो सफलता के बिना उबंटू में पोस्टग्रैसिकल को अपग्रेड करने की कोशिश कर रहे हैं (जैसे कि जोहान के ऊपर टिप्पणी की गई है), पोस्टग्रेएसक्यू एप्टोस रिपॉजिटरी का उपयोग करने की कोशिश करें, जैसा कि आधिकारिक पोस्टग्रेक्यूएल डाउनलोड निर्देशों में कहा गया है: https://www.postgresnl.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

मेरे लिए फिक्स में मेरे Postgres.app को अपडेट करने और मेरे स्थानीय होमबॉर्ग PostgreSQL को अपडेट करने दोनों शामिल थे ।

Canuk के उत्तर के माध्यम से मेरे Postgres.app को अपडेट करें:

Postgres.app खोलें> अपडेट की जांच करें ...

स्वीकार किए गए उत्तर पर gerry3 की टिप्पणी के माध्यम से अपने स्थानीय होमब्रे पोस्टग्रेक्यूएल को अपडेट करें:

brew upgrade postgresql brew postgresql-upgrade-database


मुझे अपना होमब्रे पोस्टग्रेक्यूएल अपडेट नहीं करना था। केवल नवीनतम संस्करण के लिए Postgres.app को अपडेट करना पर्याप्त था।
mineralwasser

Postgres.app से अपडेट करने से मेरा मुद्दा ठीक हो गया
FutoRicky

6

PgAdmin 3 का उपयोग करते हुए विंडोज पर यह समस्या थी।

PgAdmin 3 से pgAdmin 4 में अपग्रेड करने से मेरे लिए समस्या हल हो गई।

यदि आप किसी तीसरे पक्ष के उपकरण का उपयोग कर रहे हैं, जैसे कि PgAdmin, प्रदान की गई डंप फ़ाइल को पुनर्स्थापित करने के लिए, स्थापित पोस्टग्रेज संस्करण के अद्यतित होने पर भी पुनर्स्थापना सफल नहीं हो सकती है। यह तृतीय-पक्ष टूल के कारण अक्सर 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


धन्यवाद, यह मेरे लिए काम किया। मैं PostgreSQL 9.5.12 पर हूं, और मैं pgAdmin 3 का उपयोग कर रहा था। pgAdmin 4 pg_restoreसफलतापूर्वक प्रदर्शन करने में सक्षम था ।
अलेक्जेंडर

5

मैं अपने DB को स्थानीय स्तर पर एक नए प्रमुख संस्करण में अपग्रेड करने की अनुशंसा नहीं करता (सुरक्षा पैच लागू करें) बस इसे ठीक करने के लिए, जैसा कि आप चाहते हैं कि आपके पास उत्पादन में जो भी संस्करण है, उससे मिलान करें।

इसने इसे Ubuntu 16.04 पर तय किया, एक हेरोकू डेटाबेस से पुनर्स्थापित किया।

पहले, सुनिश्चित करें कि आपके पास पोस्टग्रैसपल रेपो है जैसा कि उल्लिखित आम है। फिर उन्नत क्लाइंट स्थापित करें।

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

आप उबंटू 17.04 या 17.10, नोट हैं कि PostgreSQL के zesty रेपो करता है नहीं है अद्यतन ग्राहक आप की जरूरत है। आप इसके बजाय xenial Postgres रेपो का उपयोग करना चाहेंगे।


मैं db को अपग्रेड करने की सलाह देता हूं, क्योंकि यह एक सुरक्षा पैच है जो कि महत्वपूर्ण है यदि आपका डेटाबेस अविश्वासित उपयोगकर्ताओं से प्रश्न चलाता है: wiki.postgresql.org/wiki/… "रिलीज का उद्देश्य CVE-2018-1858 को संबोधित करना था, जो वर्णन करता है एक उपयोगकर्ता विभिन्न स्कीमाओं में समान नाम वाली वस्तुओं को कैसे बना सकता है जो अन्य उपयोगकर्ताओं के प्रश्नों के व्यवहार को बदल सकता है और अप्रत्याशित या दुर्भावनापूर्ण व्यवहार का कारण बन सकता है, जिसे "ट्रोजन-हॉर्स" हमले के रूप में भी जाना जाता है।
RobM

Unable to locate package postgresql-client-10जब मैं ऐसा करता हूं तो मुझे मिलता है
डग

@ रोबम सहमत। "अपग्रेड करने की सलाह नहीं देते ..." मैं एक बड़े संस्करण में अपग्रेड नहीं करने की बात कर रहा था जिसे आप उत्पादन में उपयोग नहीं कर रहे हैं। निश्चित रूप से स्थानीय स्तर पर एक प्रमुख संस्करण के भीतर नवीनतम सुरक्षा पैच को अपग्रेड करने के लिए बुद्धिमान है, और निश्चित रूप से उत्पादन पर। मैं अपने उत्तर को बेहतर ढंग से दर्शाने के लिए अपने अर्थ में वर्बेज को ट्विस्ट करूँगा।
इवान

1
@Doug सबसे पहले उपयुक्त पोस्टग्रुप रेपो जोड़ना न भूलें। इस टिप्पणी में वर्णित समान है। stackoverflow.com/a/49116272/3975541
इवान

4

यहाँ मैंने उबंटू (16.04 LTS) पर समस्या का समाधान कैसे किया है जहाँ pg_restore / pg_dump ने मुझे 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 सही संस्करण की ओर इशारा करता है, और कमांड से गुजरता है

यहाँ दिए गए विवरण: /server/610777/wrong-version-of-pg-dump-on-ubuntu


3

मुझे pgadmin III पर इस समस्या का सामना करना पड़ा और इसे बायनेरिज़ स्थान स्विच करने के माध्यम से ठीक करने में सक्षम था:

फ़ाइल मेनू> विकल्प> बाइनरी पाथ्स, फिर प्रोग्रामगिल्स / पगडमिन के बजाय पोस्टग्रेजेकल / 9.x / बिन को "पीजी बिन पथ" बदल दिया। पुनर्स्थापना ने बाद में ठीक काम किया।


2

आप 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 --version चलाकर pg_restore संस्करण की जाँच कर सकते हैं।

यदि आप थर्ड-पार्टी टूल का उपयोग कर रहे हैं, जैसे कि PgAdmin, प्रदान की गई डंप फ़ाइल को पुनर्स्थापित करने के लिए, तो पुनर्स्थापित पोस्टग्रेज संस्करण भी अद्यतित होने के बावजूद सफल नहीं हो सकता है। यह तृतीय-पक्ष टूल के कारण अक्सर pg_restore बाइनरी के अपने संस्करणों को बंडल करता है, जो आज तक नहीं हो सकता है।


0

मैं उसी त्रुटि का सामना कर रहा था। मैंने स्थानीय रूप से 10.3 पोस्टग्रेजेक को अपडेट किया, और इसने मेरे लिए समस्या को ठीक कर दिया।


-1

विंडोज के लिए:

कमांड प्रॉम्प्ट खोलें ( 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

आशा है इससे आपकी मदद होगी


-3

मैं 10 मिनट पहले उसी मुद्दे पर चला था, और 2005 से इस धागे के बारे में पता चला: https://www.postgresql.org/message-id/1106163722.780395.266900%40z14g2000cwz.googlegroups.com

मूल रूप से आदमी कह रहा है कि डंप फ़ाइल भ्रष्ट है।


3
अजीब। मैंने हर्को से एक डंप फ़ाइल बनाई और मुझे वही मुद्दा मिला। ऐसा पहले कभी नहीं हुआ है। मैंने 9.6 से 10 तक पोस्टग्रैस्कल को अपग्रेड करने की कोशिश की, लेकिन यह काम नहीं किया।
कारंथन

1
क्या आप 10.2 या 10.3 पर हैं? आपको 10.3 पर होना है, अब मुझे विश्वास है।
जैक किन्सेला

वह मेलिंग लिस्ट थ्रेड 2005 से है। हाल ही में कुछ बदला हुआ है जो उस थ्रेड में जारी समस्या से अलग है।
यतिअंतरजोश
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.