यहाँ कुछ ऐसा है जो मैं करता हूँ। इसका परिणाम शून्य डाउनटाइम में नहीं होता है लेकिन एक सेकंड से भी कम समय में समाप्त हो सकता है।
एक डेटाबेस बनाएं जिसमें आपके वास्तविक डेटाबेस में केवल इंटरफ़ेस तत्व हों। मेरे मामले में, इसमें केवल दृश्य परिभाषाएं शामिल हैं, और सभी उपयोगकर्ता प्रश्न इस डेटाबेस से गुजरते हैं।
हर रात एक नया डेटाबेस बनाएं। जब यह हो जाए, तो नए डेटाबेस को संदर्भित करने के लिए दृश्य परिभाषाओं को अपडेट करें। मैं अनुशंसा करता हूं कि जब आप उन्हें अपडेट कर रहे हों या सभी दृश्यों को हटाकर उन्हें फिर से बनाने वाले विचारों वाले डेटाबेस तक उपयोगकर्ता पहुंच को बंद कर दें - यह पुराने डेटाबेस तक आंशिक पहुंच को रोकता है। क्योंकि दृश्य बनाना तेज़ है, यह बहुत तेज़ ऑपरेशन होना चाहिए।
यह सब हम एक जॉब के जरिए करते हैं। वास्तव में, उत्पादन दृश्य बदलने से पहले, हम यह सुनिश्चित करने के लिए किसी अन्य डेटाबेस पर दृश्य निर्माण का परीक्षण करते हैं कि वे सभी काम कर रहे हैं।
जाहिर है, यदि आप alter view
. का उपयोग करते हैं सभी विचारों में एकरूपता की आवश्यकता के बजाय, कोई डाउनटाइम नहीं है, बस असंगति की एक संक्षिप्त अवधि है।