2013-07-08 3 views
11

देव सर्वर पर, मैंने उसी स्क्रिप्ट को चलाने की कोशिश की जिसे मैं लगभग एक साल तक उपयोग कर रहा हूं और अंत में मिला: mysqldump:mysqldump: लिखने पर errno 32 मिला: 'अचानक अचानक' बहुत सारे कमरे ... ड्रूपल 6 स्थापना

पिछले सप्ताह, आईटी sysadmin ने बैकअप से कुछ दिन पहले वर्चुअल सर्वर को पुनर्स्थापित किया और यह सब काम किया।

ड्रूपल इंस्टॉल ठीक है और लाइव सर्वर ठीक है (देव सर्वर का डुप्लिकेट) ... हमारे पास एक ही बॉक्स पर लगभग 30 या तो वर्चुअल सर्वर हैं और आईटी SysAdmin ने कुछ संसाधन आवंटित किए हैं।

Filesystem  Size Used Avail Use% Mounted on 
/dev/sda1  18G 6.1G 12G 36%/
udev   1000M 4.0K 1000M 1% /dev 
tmpfs   403M 228K 403M 1% /run 
none   5.0M  0 5.0M 0% /run/lock 
none   1007M  0 1007M 0% /run/shm 
/dev/sdb1  100G 8.1G 87G 9% /data 
[email protected]:~$ 

और कमांड लाइन में मेरी स्क्रिप्ट चलाने के बाद बुनियादी उत्पादन:

त्रुटि 1005 (HY000) लाइन 5416 पर

यहाँ मैं देव पर df -h साथ मिलता है : तालिका 'content_type_ses_job_postings' (errno: 28) mysqldump नहीं बना सकता: पर त्रुटि 32 प्राप्त करें ERROR 2003 (HY000) लिखें: '198.xx.xx.xx' (111) पर MySQL सर्वर से कनेक्ट नहीं हो सकता एलडीएपी सर्वर आईपी अद्यतन।

ध्यान दें कि मैं MySQL सर्वर तब भी जब यह सब काम करता है तो यह है कि ऐसा नहीं होना चाहिए करने के लिए कनेक्ट नहीं के बारे में है कि पिछले ERROR 2003 मिलता है, मुझे लगता है कि डेटाबेस बैकअप के रूप में उपयोगकर्ता समस्या का अधिक है, बचाने के लिए, और उसके बाद 'होल्डिंग' डीबी में आयात करें जिसे मैं सामग्री को अपडेट करते समय स्विच करता हूं, शायद यह कुछ है, लेकिन यह कभी भी एक विशिष्ट समस्या नहीं है।

यदि error 32 अंतरिक्ष से संबंधित है, तो अंतरिक्ष समस्या कहां हो सकती है? यदि यह अनुमतियों से संबंधित है, तो अनुमतियों की समस्या किस फ़ोल्डर पर होगी? हालांकि, मुझे नहीं पता कि अनुमतियों को गतिशील रूप से कहीं भी कैसे बदल सकता है ... मैंने पहले कहा था, मैं बिना किसी समस्या के लगभग 8 महीने तक इन स्क्रिप्ट को चला रहा हूं?

डेव सर्वर की मूल बातें

  • MySQL 5.5.24
  • Ubuntu0.12.04.1
  • पीएचपी 5,3
+0

आपके द्वारा बनाई गई फ़ाइल कितनी बड़ी है, या आप कहीं भी mysqldump पाइप कर रहे हैं ??? – RolandoMySQLDBA

+0

क्या 'content_type_ses_job_postings' अब बड़ा है कि यह 8 महीने पहले था? – RolandoMySQLDBA

+0

क्या 'content_type_ses_job_postings' एक MyISAM तालिका है ??? – RolandoMySQLDBA

उत्तर

18

अजीब

[[email protected]*****]# perror 28 
OS error code 28: No space left on device 
[[email protected]*****]# perror 32 
OS error code 32: Broken pipe 

लगता है के बाद से mysqldump यादृच्छिक स्थानों पर तोड़ता रहता है, यह स्पा है सीई से संबंधित, और कोई डिस्क पूर्ण स्थिति नहीं, मुझे एक गहरी परत पर समस्या पर संदेह होगा: MySQL पैकेट। एक MySQL पैकेट क्या है?

page 99 of the Book

BookImage

यहाँ के अनुसार पैराग्राफ 1-3 यह समझा रहे हैं:

MySQL नेटवर्क संचार कोड धारणा है कि प्रश्नों हमेशा यथोचित कम हैं के तहत लिखा था, और इसलिए सर्वर द्वारा संसाधित किए गए पर भेजा जा सकता है, जिसे MySQL शब्दावली में पैकेट कहा जाता है। सर्वर मेमोरी को पैकेट स्टोर करने के लिए अस्थायी बफर के लिए आवंटित करता है, और यह को पूरी तरह फिट करने के लिए पर्याप्त अनुरोध करता है। यह आर्किटेक्चर को मेमोरी से बाहर चलाए जाने वाले सर्वर से बचने के लिए सावधानी बरतनी चाहिए - पैकेट के आकार पर एक टोपी , जो यह विकल्प पूरा करता है।

इस विकल्प एसक्यूएल/net_serv.cc में पाया जाता है के संबंध में ब्याज की कोड। my_net_read() पर एक नजर डालें, तो my_real_read() करने के लिए कॉल का पालन करें और net_realloc() को विशेष ध्यान देना।

यह चर कई स्ट्रिंग फ़ंक्शनटन के परिणामस्वरूप की लंबाई को भी सीमित करता है। विवरण के लिए sql/field.cc और sql/intem_strfunc.cc देखें।

इस स्पष्टीकरण को देखते हुए, थोक INSERT को एक MySQL पैकेट को लोड/अनलोड कर देगा। यह विशेष रूप से सच है जब अधिकतम_allowed_packet उस डेटा के दिए गए लोड के लिए बहुत छोटा है। MySQL server has gone away obstructing import of large dumps

इस प्रकार 1G को max_allowed_packet for the mysqldump बढ़ाने का प्रयास करें:

mysqldump --max-allowed-packet=1073741824 ... 

और mysqldump कोशिश

मैंने पहले इस बारे में लिखा था।

यदि यह ऐसा नहीं है, तो ऐसा करते हैं:

जोड़ा इस

[mysqld] 
max_allowed_packet = 1G 

my.cnf को फिर, [email protected] के रूप में MySQL के लिए लॉग इन करें और इस

mysql> SET GLOBAL max_allowed_packet = 1024 * 1024 * 1024; 

चलाने के लिए और mysqldump आज़माएं।

इसे आज़माएं !!!

+0

महान जानकारी! बहुत बहुत धन्यवाद। मैंने दोनों dev/live में mysql में लॉग इन किया, जिसे स्थिति कहा जाता है और दोनों ने उपयोग में कोई डेटाबेस नहीं दिखाया ??? लेकिन, ऐसा करने के बाद, मैंने अपने ब्राउज़र को रीफ्रेश किया और सबकुछ सामान्य हो गया। मैं उस चर को देखूंगा .. मुझे php.ini फ़ाइल में पता है मेरे पास है: memory_limit: -1 post_max_size 500M upload_max_filesize 450M तो अब मैं उस वैरिएबल को चेक करूँगा जिसका आपने उल्लेख किया है, धन्यवाद! –

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