हर बार जब मैंने इसे किया है, हम दो पास के लिए गए हैं ...
- एक स्नैपशॉट लें, और एक अलग सर्वर पर काम करना, यह निर्धारित करने के लिए कि माइग्रेशन के लिए क्या करना है, और इसे स्क्रिप्ट करें।
- एक बार जब उनके हाथ में स्क्रिप्ट होती है, तो स्नैपशॉट को परीक्षण प्रणाली पर पुनर्स्थापित किया जाता है, और यह देखने के लिए समय है कि क्या यह आवश्यक समय के भीतर चलेगा, या इसे ट्यून किया जा सकता है और इसे संशोधित किया जा सकता है।
- हितधारकों ने यह संकेत दिया है कि परीक्षण प्रणाली के आंकड़ों में कुछ भी गलत नहीं है।
फिर, सप्ताहांत में, आपके पास एक शेड्यूल आउटेज है:
- शुक्रवार की रात, डेटाबेस का उपयोग करने वाली प्रणालियों को नीचे लाया जाता है, एक पूर्ण कोल्ड बैकअप बनाया जाता है, और डेटा को माइग्रेट / संशोधित / जो कुछ भी करने के लिए स्क्रिप्ट चलाए जाते हैं
- सिस्टम को कुछ निजी पते के तहत वापस लाया जाता है या किसी तरह सेट किया जाता है ताकि यह किसी के लिए भी नहीं खुले लेकिन स्वीकृति परीक्षण के लिए हितधारक हों
- यदि हितधारक अनुमोदन करते हैं, तो सिस्टम ऑनलाइन डाल दिया जाता है और सार्वजनिक हो जाता है; यदि नहीं, तो डेटाबेस को शुक्रवार की रात बैकअप से बहाल किया जाता है, और आप फिर से प्रक्रिया शुरू करते हैं।
हमारे शेड्यूल के साथ, डेटाबेस लोगों को बैकअप और माइग्रेशन स्क्रिप्ट्स को चलाने के लिए आम तौर पर शुक्रवार को शाम 6 बजे से शनिवार सुबह 10 बजे तक होता था, इसलिए हमारा लक्ष्य था कि वे 8 घंटे (~ 6 बैकअप था) के तहत चलेंगे, इसलिए हम ' d हमारे हितधारकों के लिए जारी होने से पहले हमारे परीक्षण और सुधार के लिए कुछ समय है।
हितधारकों को अग्रिम में अपने समय की खिड़कियां दी गई थीं, इसलिए वे खिड़की की शुरुआत में परीक्षण के लिए अपने सप्ताहांत को खुला छोड़ना जानते थे। उन्हें अपनी खिड़की का अंत भी बताया जाएगा, आमतौर पर रविवार दोपहर, जहां अगर हर किसी ने हस्ताक्षर नहीं किए थे, तो हमें वापस रोल शुरू करना होगा।
ओह, और निश्चित रूप से ... अगर किसी को भी स्वीकृति परीक्षणों में से किसी के दौरान एक परिवर्तन हुआ था, और हमने एक बदलाव किया, तो इसका मतलब था कि सभी हितधारक के साइन-ऑफ शून्य हो गए थे, और उन्हें फिर से परीक्षण करना था ... इसलिए हम उन सभी को मुद्दों की तलाश करने और एक बैच के रूप में किसी भी सुधार को चलाने के लिए उन्हें देने की कोशिश करेंगे, बजाय उन्हें एक बार लागू करने के।
सौभाग्य से, केवल एक बार मेरे पास उन स्थितियों में से एक है जहां हम महत्वपूर्ण डाउनटाइम नहीं कर सकते थे, मैं जो माइग्रेट कर रहा था वह लिपियों से खिलाया गया था, उपयोगकर्ता इनपुट से नहीं, इसलिए मैं सिर्फ दो समानांतर सिस्टम जा सकता था, और उन्हें स्वैप कर सकता था। जब चीजों पर हस्ताक्षर किए गए। (केवल एक बार एक समस्या थी, जब मेरे मालिक ने जोर देकर कहा कि हम एक पूर्ण बैकअप लेते हैं, यह समझकर नहीं कि पूरी बात अभी भी एक अलग आईपी पर ऑनलाइन होने वाली थी ... तो क्या होना चाहिए था 5 मिनट आउटेज ऑन ए! खराब दिन 5 घंटे का आउटेज बन गया।)