2016-05-20 10 views
6

जोड़ते समय मेमोरी त्रुटि से बाहर है, हमने इंडोड इंजन के साथ एडब्ल्यूएस आरडीएस पर MySQL डेटाबेस प्राप्त किया है, MySQL संस्करण 5.6.19 है।एडब्ल्यूएस आरडीएस कॉलम

जब एक तालिका में किसी स्तंभ जोड़ने की कोशिश कर, हम नीचे त्रुटि संदेश मिलता है:

त्रुटि 1041 (HY000): स्मृति समाप्त; जांचें कि क्या MySQL या कुछ अन्य प्रक्रिया सभी उपलब्ध स्मृति का उपयोग करती है; यदि नहीं, तो आप 'ulimit' का उपयोग करने mysqld अधिक स्मृति का उपयोग करने की अनुमति देने के लिए हो सकता है या आप अधिक स्वैप स्पेस

स्क्रिप्ट हम तालिका को बदलने के लिए चलाने में जोड़ सकते हैं नीचे है: ALTER तालिका mytablename स्तंभ जोड़ें temp_colume varchar (255) Temp_firstcolumn के बाद नल;

हमारे आरडीएस 30GB स्मृति db.m3.2xlarge पर है: हमारे InnoDB बफर आकार DBInstanceClassMemory * 3/4 ​​~ = 24GB है

हम सफलतापूर्वक पहले से ही करने के लिए बनाया स्तंभ में परिवर्तन के साथ तालिका फिर से बनाने कर सकते हैं यह, लेकिन टेबल को बदलने पर हमें त्रुटि मिल रही है।

क्या कोई भी एक ही मुद्दे को पूरा करता है?

+0

संभवतः मेज पर बहुत-से अपडेट करते समय आप 'ALTER TABLE' कर रहे हैं विफलता सकता है? –

+0

मैंने शो प्रोसेस लिस्ट की भी जांच की जो दिखाता है कि डीबी व्यस्त नहीं है –

+0

MySQL डिमन शुरू करने वाली प्रक्रिया से 'ulimit -a' के बारे में कैसे? क्या आप असफल होने से पहले मेमोरी उपयोग को प्रसंस्करण कर रहे थे? –

उत्तर

2

त्रुटि हमारे आरडीएस को रीबूट करके तय की गई थी। रिबूट करने के बाद, स्मृति 1.5 जीबी बढ़ जाती है, हमारे पास 3.5 जीबी फ्रीबल मेमोरी थी, और अब यह लगभग 5 जीबी है। मैं अनुमान लगा रहा हूं कि आरडीएस स्वयं (ओएस) ने कुछ स्मृति को कैश किया है, लेकिन फिर भी थोड़ा उलझन में है कि 3.5 जीबी मुक्त मेमोरी होने पर त्रुटि संदेश क्यों दिया गया और जिस तालिका को हमने बदलने की कोशिश की वह केवल 16 केबी थी।

इसके अलावा, मुझे एक और समान समस्या मिलती है। लिंक नीचे है: https://dba.stackexchange.com/questions/74432/mysql-rds-instance-eating-up-memory-and-swapping

+1

यह उत्तर मेरे लिए काम किया। लेकिन जो मैंने नहीं समझा वह एडब्लूएस शो मेमोरी है, या इसके बराबर प्रतिशत है। मेरा मतलब है कि पर्याप्त स्मृति थी। और मेरी मेज भी इतना बड़ी नहीं थी। तो यह त्रुटि क्यों दे रही है। –

7

मैंने हाल ही में आरडीएस में इनस्थल परिवर्तनों को देखा है। एडब्ल्यूएस समर्थन बदलने तालिका बयान को संशोधित करने के लिए इस तरह देखने के लिए सिफारिश की:

ALTER TABLE tbl ADD COLUMN abc varchar(123) AFTER zyx, ALGORITHM=COPY 

गुप्त के चारों ओर एक काम के रूप में समाप्त करने के लिए

, ALGORITHM=COPY 

जोड़ना है।

तुम भी आरडीएस उदाहरण https://dev.mysql.com/doc/refman/5.7/en/alter-table.html

+0

यह मेरे लिए धन्यवाद! – Rippo

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