.Gt फ़ाइल से PostgreSQL डेटाबेस को कैसे पुनर्स्थापित करें?


20

मेरे पास सभी PostgreSQL डेटाबेस हैं जो WHM का उपयोग करके वृद्धिशील बैकअप के दौरान बैकअप लेते हैं, जो $ dbName बनाता है। टार फाइल।

डेटा इन .tar फ़ाइलों में संग्रहीत होता है, लेकिन मुझे नहीं पता कि इसे SSH के माध्यम से अलग-अलग डेटाबेस में वापस कैसे लाया जाए। विशेष रूप से फ़ाइल स्थान।

मैं उपयोग कर रहा हूं:

pg_restore -d client03 /backup/cpbackup/daily/client03/psql/client03.tar

जो त्रुटि उत्पन्न करता है 'इनपुट फ़ाइल नहीं खोल सका: अनुमति अस्वीकृत'

किसी भी सहायता की सराहना की।


क्या आप जिस उपयोगकर्ता के साथ इस कमांड को चला रहे हैं, उस फाइल तक उसकी पहुँच है?
मैट

हाय मैट, आप ऐसा सोचते होंगे, (रूट के रूप में चल रहे हैं) लेकिन अभी कई मसलों के बाद समस्या सुलझ गई है, और कच्चे .tar फ़ाइल को tmp में ले जाना .... pg_restore -c -i -U postgres -d client03 -v "-tmp/client03.tar" -W अंत में -W मुख्य ट्रिक थी जिसने पासवर्ड इनपुट को आवश्यकता के रूप में मजबूर किया जिसने सब कुछ वापस एक साथ रखा।
स्टीफन

जवाबों:


24

कोड का सही स्ट्रिंग मिला, अगर किसी और को यह धागा मिल जाए।

pg_restore -c -i -U postgres -d client03 -v "/tmp/client03.tar" -W

ब्रेक डाउन http://www.postgresql.org/docs/7.3/static/app-pgrestore.html और परीक्षण और त्रुटि का एक सा था।

अनिवार्य रूप से ...

-c to clean the database
-i to ignore any database version checks
-U to force a user
-d to select the database
-v verbose mode, don't know why
"$$" the location of the files to import in tmp to get around permission issues
-W to force asking for the password to the user (postgres)

उम्मीद है कि ऊपर वाला किसी और की मदद करे।


tar.gz के साथ भी ऐसा ही कैसे करें?
एरी

2

जब मेरे लिए पुनर्स्थापना करने के लिए PgAdmin III का उपयोग किया जाता है, तो इसने निम्नलिखित कमांड का उपयोग करके त्रुटिपूर्ण रूप से काम किया, जो स्वयं निर्मित हुई:

pg_restore --host localhost --port 5432 --username "my_user_name" --dbname "my_db_name" --role "my_user_name" --no-password  --verbose "/Users/me/Desktop/backup_file.tar"

चेतावनी से बचने के लिए ध्यान दें कि बैकअप सर्वर में पहले से मौजूद टारगेट सर्वर में मौजूद वस्तुओं के मालिक की भूमिका निभाना एक अच्छा विचार है। इसके अलावा, आपके पास पहले से ही लक्षित डीबी होना चाहिए और उस भूमिका के स्वामित्व में होना चाहिए।


1

मुझे यकीन नहीं है कि यह एक .tar फ़ाइल आयात कर सकता है मैं एक

tar -zxvf client03.tar 

फ़ाइल के अंदर जो कुछ भी था उसे निकालने के लिए, और फिर से pg_restore आज़माएं। मुझे पता है कि pg_restore काम करता है, क्योंकि हमारे पास नंगे धातु के पुर्जों से समान रीस्टोर विधि है।


1
हाय स्टीफन, हाँ जाहिर तौर पर यह हो सकता है, मुझे सही कोड प्राप्त करने में बस कुछ समय लगा, और फ़ाइल को किसी फ़ोल्डर में पहुँचाने की अनुमति के साथ छोड़ दिया गया :)
स्टीफन

"-Z" एक त्रुटि लौटाएगा, क्योंकि यह सिर्फ एक टार है, गज़िप के साथ संपीड़ित नहीं।
एलेक्स

एलेक्स 100% सही है।
स्टीफन थॉम्पसन

0

नीचे मेरे लिए pgAdmin iii से डेटाबेस पर क्लिक करके और राइट क्लिक करके और रिस्टोर का चयन करके जेनरेट किया गया था। मेरे पास .tar फ़ाइल मेरे पास थी और इसने इसे स्वयं किया।

/usr/bin/pg_restore --host localhost --port 5434 --username "postgres" \
--dbname "dvdrental" --no-password  --schema public --verbose \
"/home/npena/Desktop/dvd/dvdrental.tar"

0

संस्करण 9.5 के लिए, कमांड लाइन में निम्नलिखित चलाएँ

pg_restore -W -c -U [username] -d [database_name] -v "[path to extracted tar]"


0

ग्नू / लिनक्स कंसोल:

pg_restore -h 127.0.0.1 -p 5432 -U "postgres" -d "dvdrental_tpl" -v "/var/backups/dvdrental.tar";

- विस्तार से मदद

pg_restore --help

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