डेटाबेस पुनर्स्थापित करना: pg_restore -vs- सिर्फ psql का उपयोग करना


16

मैं अपने पोस्टग्रेज डेटाबेस को pg_dump (सादे-पाठ प्रारूप में) का उपयोग करके डंप कर रहा हूं और फिर इसे psql ( -fविकल्प के साथ ) का उपयोग करके इसे पुनर्स्थापित कर रहा हूं ।

जो इस सवाल का जवाब देता है: क्या मैं pg_restore का उपयोग करके कुछ भी याद नहीं कर रहा हूं जो एक विशेष पुनर्स्थापना उपकरण (जेनेरिक की तुलना में psql) की तरह लगता है ?

मैं ट्रिगर्स को अक्षम करने और जैसे pg_dumpमापदंडों का उपयोग करके विकल्पों को नियंत्रित कर सकता हूं । तब, किसके pg_restoreलिए उपयोग किया जाता है? गैर-सादा-पाठ डंप प्रारूप?


4
मैनुअल से : " pg_restore एक गैर-सादा-पाठ स्वरूपों में pg_dump द्वारा बनाए गए संग्रह से एक PostgreSQL डेटाबेस को पुनर्स्थापित करने के लिए एक उपयोगिता है "
a_horse_with_no_name

जवाबों:


19

यदि आपने SQL-format डंप बनाया है, तो आप इसका उपयोग कर सकते हैं psql

यदि आपने एक कस्टम-प्रारूप ( pg_dump -Fc) या निर्देशिका-प्रारूप ( pg_dump -Fd) डंप बनाया है, तो आप इसका उपयोग और उपयोग कर सकते हैं pg_restore

कस्टम और निर्देशिका प्रारूप डंप सादे एसक्यूएल स्क्रिप्ट डंप पर बहुत सारे लाभ प्रदान करते हैं, और मैं उन्हें विशेष रूप से उपयोग करता हूं। आप चुनिंदा रूप से केवल कुछ तालिकाओं / स्कीमा को पुनर्स्थापित कर सकते हैं, यह चुन सकते हैं कि क्या केवल स्कीमा, केवल डेटा, या दोनों को पुनर्स्थापित करने के समय को शामिल करना है, आदि। pg_dumpSQL-प्रारूप डंप के साथ आपके द्वारा निर्दिष्ट किए जाने वाले विकल्पों में से बहुतों को पुनर्स्थापना पर चुना जा सकता है- समय आप एक कस्टम प्रारूप डंप का उपयोग करें और यदि pg_restore

यदि यह पिछली संगतता के लिए नहीं थे मुझे यकीन है कि डिफ़ॉल्ट के लिए कर रहा हूँ pg_dumpहोगा -Fc(कस्टम) प्रारूप।

आप SQL- डंप को कस्टम-फॉर्मेट या डायरेक्टरी-फॉर्मेट में डंप करके उसे पोस्टग्रेक्यूएल डेटाबेस पर रीस्टोर किए बिना नहीं कर सकते हैं और फिर रिस्टोर किए गए डीबी को डंप कर सकते हैं।


यह भी नाम बदलें कार्यों बैच और यह संभव है जैसे आप एक अच्छा regexp के साथ एक sql फ़ाइल में डेटा हेरफेर कर सकता है?
velop

1
नहीं, लेकिन यदि आप एक की जरूरत है, तो आप इसे SQL- प्रारूप डंप में बदलने के तर्क के pg_restoreबिना कर सकते हैं । आप रिवर्स नहीं कर सकते। dbname
क्रेग रिंगर

@CraigRinger पुनर्स्थापित करने के लिए pg_dump का उपयोग करके Psql बनाम किसी भी गति का अंतर है?
निकुंज सरधरा

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