--quick
जोड़ने का प्रयास करें आपके mysqldump
. का विकल्प आज्ञा; यह बड़ी टेबल के साथ बेहतर काम करता है। यह पूरी तालिका को खिसकाने, फिर उसे लिखने के बजाय परिणामसेट से आउटपुट तक पंक्तियों को स्ट्रीम करता है।
mysqldump -uroot -h my.host -p'mypassword' --quick --max_allowed_packet=512M db_name table_name | \
gzip > dump_test.sql.gz
आप --compress
जोड़ने का भी प्रयास कर सकते हैं आपके mysqldump कमांड का विकल्प। इससे यह आपके MySQL सर्वर पर अधिक नेटवर्क-अनुकूल संपीड़ित कनेक्शन प्रोटोकॉल का उपयोग करता है। ध्यान दें कि आपको अभी भी gzip
. की आवश्यकता है पाइप; MySQL के कंप्रेस्ड प्रोटोकॉल के कारण डंप mysqldump
से बाहर नहीं आता है संकुचित।
यह भी संभव है कि सर्वर mysqldump
. से अपने कनेक्शन का समय समाप्त कर रहा हो ग्राहक। आप टाइमआउट अवधि को रीसेट करने का प्रयास कर सकते हैं। किसी अन्य माध्यम से अपने सर्वर से कनेक्ट करें और इन प्रश्नों को जारी करें, फिर अपना mysqldump
run चलाएं नौकरी।
ये टाइमआउट को एक कैलेंडर दिन पर सेट करते हैं।
SET GLOBAL wait_timeout=86400;
SET GLOBAL interactive_timeout=86400;
अंत में, यदि आपका सर्वर आपकी मशीन (राउटर और फायरवॉल के माध्यम से) से बहुत दूर है, तो कुछ mysqldump
को बाधित कर सकता है। का कनेक्शन। कुछ अवर राउटर और फायरवॉल में NAT (नेटवर्क एड्रेस ट्रांसलेशन) सेशन की समय सीमा होती है। जब वे उपयोग में हों, तो उन्हें उन सत्रों को जीवित रखना चाहिए, लेकिन कुछ नहीं। या हो सकता है कि आप बाहरी कनेक्शन के लिए अपनी कंपनी द्वारा कॉन्फ़िगर की गई समय या आकार सीमा को पूरा कर रहे हों।
सर्वर के करीब एक मशीन में लॉग इन करने और mysqldump
running चलाने का प्रयास करें उस पर। फिर अपनी gz फ़ाइल को अपनी मशीन पर कॉपी करने के लिए किसी अन्य माध्यम (sftp?) का उपयोग करें।
या, आपको इस फ़ाइल के डंप को खंडित करना पड़ सकता है। आप ऐसा कुछ कर सकते हैं (डीबग नहीं किया गया)।
mysqldump -uroot -h my.host -p'mypassword' \
db_name table_name --skip-create-options --skip-add-drop-table \
--where="id>=0 AND id < 1000000" | \
gzip....
फिर इन पंक्तियों के साथ इसे दोहराएं।
--where="id>=1000000 AND id < 2000000" | \
--where="id>=2000000 AND id < 3000000" | \
...
जब तक आप सभी पंक्तियों को प्राप्त नहीं कर लेते। गर्दन में दर्द, लेकिन यह काम करेगा।