कैसे एक बड़े postrgresql डंप की प्रगति को ट्रैक करने के लिए


14

क्या pg_dumpबड़े डीबी (यानी> 1 जीबी) पर एक ऑपरेशन की प्रगति को देखने का एक तरीका है ? -vविकल्प को जोड़ने से स्क्रीन पर केवल टेक्स्ट डंप हो जाता है, लेकिन मुझे बहुत अधिक ट्रैकिंग जानकारी नहीं मिलती है।

जवाबों:


8

आप टीओसी सूची का उपयोग करके एक मोटी प्रगति देख सकते हैं।

सबसे पहले, पुनर्स्थापित होने वाली वस्तुओं की TOC सूची प्राप्त करें:

pg_restore -l -f list.toc db.dump

फिर, आप TOC सूची लाइन को लाइन से देख सकते हैं और क्रिया या क्वेरी pg_stat_activity के आउटपुट की तुलना करके देख सकते हैं कि TOC सूची में pg_restore कहाँ है।

हालांकि यह सिर्फ एक मोटा अनुमान है। पहले क्योंकि टीओसी सूची से प्रत्येक आइटम को लोड करने के लिए वास्तव में अलग-अलग समय लग सकता है (उदाहरण के लिए, स्कीमा तेज़ हैं, लेकिन बड़ी तालिकाओं और बिल्डिंग इंडेक्स के डेटा लोड नहीं कर रहे हैं), और यदि आप -जे का उपयोग करते हैं, तो आपको एक आइटम बहाल करना होगा। इससे पहले कि एक समाप्त हो गया है। अगर आप -L का उपयोग नहीं करते हैं, तो भी, मुझे यकीन नहीं है कि pg_restore TOC सूची का अनुसरण करता है, लेकिन मुझे लगता है कि यह करता है।


2
मैं इस जवाब से उलझन में हूँ - मूल प्रश्न एक डेटाबेस डंपिंग को निर्दिष्ट करता है, लेकिन यह समाधान डेटाबेस को पुनर्स्थापित करने को निर्दिष्ट करता है
jaydel

2

यूनिक्स / लिनक्स वातावरण के लिए मान्य:

पाइप व्यूअर (pv) उपयोगिता का उपयोग बैकअप प्रगति का पता लगाने के लिए किया जा सकता है। Pv बीता समय और स्थानांतरित बाइट्स के बारे में विवरण के साथ आपके शेल को एनिमेट करता है।

नीचे छोटी डंडियों में बड़ी डंप फ़ाइलों को रखने के लिए pv और स्प्लिट यूटिलिटीज का उपयोग करके डंपिंग का उदाहरण दिया गया है। बाद में इसे किसी अन्य स्थान पर स्थानांतरित करना आसान हो सकता है।

# dump the PREDATA in clear text into a .PREDATA.SQL text file
pg_dump -s -o --section=pre-data  -n $schemaname $DatabaseConnString | pv | split -d -b $chunksize - $backuppath/$backupfilename".PREDATA.sql"

# dump the POSTDATA in clear text into a .PREDATA.SQL text file
pg_dump -s -o --section=post-data -n $schemaname $DatabaseConnString | pv | split -d -b $chunksize - $backuppath/$backupfilename".POSTDATA.sql"

# dump the DATA into the .DATA.dump compressed (binary) file
pg_dump -Fc   --section=data      -n $schemaname $DatabaseConnString | pv | split -d -b $chunksize - $backuppath/$backupfilename".DATA.dump"

खामी - यह दृष्टिकोण काम नहीं करता है, अगर pg_dump -Fd विकल्प (फ़ोल्डर में डंप) का उपयोग किया जाता है।

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