2012-03-27 15 views
16

मुझे यह समझाया गया mysqldump कैसे काम करता है कोशिश कर रहा हूँ:mysqldump संपीड़न

अगर मैं अपने पीसी पर mysqldump निष्पादित और एक दूरस्थ सर्वर से कनेक्ट:

mysqldump -u mark -h 34.32.23.23 -pxxx --quick | gzip > dump.sql.gz 

सर्वर यह सेक और यह मेरे लिए अधिक भेज देंगे gzip के रूप में या मेरे कंप्यूटर को पहले सभी डेटा प्राप्त होगा और फिर इसे संपीड़ित करें?

क्योंकि मेरे पास निर्यात करने के लिए एक बहुत बड़ा रिमोट डीबी है, और मैं इसे नेटवर्क पर करने का सबसे तेज़ तरीका जानना चाहता हूं!

एक आंशिक निर्यात SELECT INTO OUTFILE का उपयोग कर करो और एक ही सर्वर पर फ़ाइलों को बनाने:

+0

इस लाइन अपने पीसी पर निष्पादित किया जाता है तो 'gzip' भी अपने पीसी पर चलेंगे। इसका मतलब है कि आप कच्चे डंप को असंपीड़ित करेंगे। – pritaeas

उत्तर

29

आप ssh + SCP का उपयोग करना चाहिए,
क्योंकि स्थानीय होस्ट पर डंप तेजी से होता है,
और आप केवल gzip (कम नेटवर्क भूमि के ऊपर) पर scp को

संभावना आप इस

कर सकते हैं की जरूरत है
ssh [email protected] "mysqldump -u mark -h localhost -pxxx --quick | gzip > /tmp/dump.sql.gz" 

scp [email protected]:/tmp/dump.sql.gz . 

+0

में आउटफाइल संभव नहीं है, समस्या यह है कि मैं क्लीर्डब (जो अमेज़ॅन आरडीएस का व्यावसायिक उदाहरण है) से निपट रहा हूं और मैंने एसएसएच के माध्यम से लॉगिन करने का प्रबंधन नहीं किया .. पता नहीं कि यह जा रहा है या नहीं संभव है! –

+0

समर्थन के साथ जांचें? – ajreal

+0

हाँ, यह अगला कदम है .. लेकिन एक (वस्तुतः) साझा डीबी पर मुझे नहीं लगता कि वे मुझे ऐसा करने देंगे :( –

0

यह कैसे मैं यह कर रहा है।

यदि आपकी तालिका में 10 मिलियन पंक्तियां हैं। प्रत्येक बार एक अलग फ़ाइल में, प्रत्येक बार 1 मिलियन पंक्तियों का आंशिक निर्यात करें।

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

अन्य सर्वर पर आप फ़ाइल को नए डेटाबेस में लोड करना प्रारंभ कर सकते हैं।

बीटीडब्ल्यू, इनमें से बहुत कुछ लिखे जा सकते हैं।

+0

अमेज़ॅन आरडीएस – codewandler

11

आप --compress पैरामीटर की कोशिश की है (के/tmp वैकल्पिक निर्देशिका, जो कुछ भी निर्देशिका आप आरामदायक महसूस करने के लिए परिवर्तन होना चाहिए)?

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_compress

+0

हां, यह बहुत डेटा हस्तांतरण को कम करता है! लेकिन जो मैं समझना चाहता था वह था: यदि mysqldump मेरे पीसी पर या रिमोट सर्वर पर डेटा कैश करता है .. जो मैंने समझा वह मेरे पीसी पर पहले सभी डेटा को स्थानांतरित करता है। क्या मैं सही हूँ? –

+0

'--compress' पैरामीटर कैसे काम करता है इस पर बहुत सारे दस्तावेज नहीं हैं। मैं एक शिक्षित अनुमान लगा सकता हूं लेकिन सुनिश्चित करने के लिए स्रोत को देखना होगा। लेकिन मैंने सोचा कि आपका प्रश्न यह था कि क्या यह मिला संपीड़ित सर्वर पक्ष या ग्राहक एस आईडीई। आपके उदाहरण में यह निश्चित रूप से ग्राहक पक्ष है।यदि आपने संपीड़न पैरामीटर को डेटा हस्तांतरण को कम किया है, तो उसे आपके प्रश्न का उत्तर देना चाहिए कि यह सर्वर पक्ष को संपीड़ित करता है। –

संबंधित मुद्दे