इंस्टॉल करें और pv
का उपयोग करें (यह CentOS के लिए यम पैकेज के रूप में उपलब्ध है)
http://www.ivarch.com/programs/pv.shtml
यह मानते हुए कि परिणामी डंपफाइल.एसक्यूएल फ़ाइल का अपेक्षित आकार 100 मीटर (100 मेगाबाइट) है, pv
का उपयोग इस प्रकार होगा:
mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql
कंसोल आउटपुट इस तरह दिखेगा:
[===> ] 20%
मैन पेज देखें man pv
अधिक विकल्पों के लिए। आप स्थानांतरण दर प्रदर्शित कर सकते हैं, या कितना समय बीत चुका है, या कितने बाइट स्थानांतरित हुए हैं, और बहुत कुछ।
यदि आप अपनी डंप फ़ाइल के आकार को नहीं जानते हैं, तो तालिका_स्कीमा से MySQL डेटाबेस का आकार प्राप्त करने का एक तरीका है - यह आपकी डंप फ़ाइल का आकार नहीं होगा, लेकिन यह आपकी आवश्यकताओं के लिए काफी करीब हो सकता है:पी>
SELECT table_schema AS "Database", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema;
अपडेट करें
मेरे अनुभव में, जब पूरे MySQL सर्वर को डंप किया जाता है, तो mysql डंप का वास्तविक असम्पीडित आकार (mysqldump --hex-blob विकल्प का उपयोग करके) लगभग 75% से 85% MySQL डेटा के लाइव आकार के बीच होता है, जो info_schema से प्राप्त होता है। तो एक सामान्य समाधान के लिए, मैं निम्नलिखित कोशिश कर सकता हूं:
SIZE_BYTES=$(mysql --skip-column-names <parameters> <<< 'SELECT ROUND(SUM(data_length) * 0.8) AS "size_bytes" FROM information_schema.TABLES;')
mysqldump <parameters> --hex-blob | pv --progress --size $SIZE_BYTES > dumpfile.sql