2012-01-07 6 views
11

मुझे अपनी वर्तमान तालिका में एक कॉलम जोड़ने की जरूरत है।तालिका mysql को ऑफ़लाइन बदलें या नहीं?

यह तालिका दिन और रात के दौरान बहुत उपयोग की जाती है। मुझे पता चला कि मुझे यहां

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html 

मैंने इसे एक विकास सर्वर पर परीक्षण किया है।

मुझे पूरा करने में लगभग 2 घंटे लग गए। अब मैं इसे उत्पादन सर्वर पर निष्पादित करना चाहता हूं?

क्या यह मेरी वेबसाइट को रोक देगा?

उत्तर

14

क्यों साइट पर एक संदेश कह रही है आप, आप किसी भी डेटा नहीं तोड़ जनवरी 7, 2012

इस तरह आधी रात UTC समय से रखरखाव प्रदर्शन करेंगे प्रदर्शित नहीं, आप किसी भी mysql त्रुटियों नहीं मिलेगा। आप अपना ALTER निष्पादित करते हैं और आप इसे पूरा करने के बाद साइट को फिर से शुरू करते हैं (यह सुनिश्चित करने के लिए अपना कोड न भूलें कि आपके पास सही फ़ील्ड आदि है ..)। आसान समाधान।

स्टैक ओवरफ्लो यह करता है, क्यों नहीं?

+0

मुझे वह विचार पसंद है लेकिन कब? –

+0

मुझे प्रति कहने का कोई "सही समय" नहीं है, अपने आंकड़ों की जांच करें और देखें कि आपके पास कम या कम ट्रैफ़िक कब है और फिर परिवर्तन करें। –

+0

अच्छा विचार, आपकी मदद के लिए धन्यवाद –

0

यह आपकी वेबसाइट को नहीं रोकेगा, लेकिन इससे यह त्रुटियों को फेंक देगा।

बेशक आपके आवेदन के सभी कोड को देखे बिना इसका उत्तर देने का कोई तरीका नहीं है।

निचली पंक्ति है, जब संदेह में एक रखरखाव खिड़की निर्धारित करते हैं।

1

हां, एक वैकल्पिक तालिका के दौरान सभी पढ़ते हैं और लिखते हैं अवरुद्ध होते हैं। यदि आपकी वेबसाइट को उस तालिका का उपयोग करने की आवश्यकता है, तो अनुरोध लटकाएंगे।

pt-online-schema-change आज़माएं। यह जारी रखने के लिए पढ़ता है और लिखता है, जबकि यह पुनर्गठन के बाद परिवर्तित तालिका के खिलाफ फिर से चलाने के लिए परिवर्तनों को कैप्चर करता है।

अपने विकास सर्वर पर ध्यान से परीक्षण करें ताकि आप जान सकें कि यह कैसे काम करता है और क्या उम्मीद करनी है।

+2

जटिल लग रहा है –

-3
  1. कुछ समय के लिए प्रोड्यूशन डीबी के देव डीबी (या) दर्पण को इंगित करने के लिए उत्पादन सर्वर बनाएं।
  2. उत्पादन में तालिका में परिवर्तन
  3. कोड है जो (नई विशेषताओं के साथ) उत्पादन db से बात

पी.एस तैनात: मुझे लगता है कि यह सुरक्षित है और एक मूर्ख सबूत रास्ता (मेरे अनुभव के आधार पर) है।