मार्जन वेनेमा द्वारा उत्तर तकनीकी रूप से मान्य है और जब संभव हो तो इसका पालन किया जाना चाहिए। काश, मार्जन एक सिद्धांतवादी , या एक शुद्ध डेटाबेस व्यवस्थापक के दृष्टिकोण से उत्तर देता है जो चीजों को साफ-सुथरा बनाना पसंद करता है। व्यवहार में, कभी-कभी व्यावसायिक बाधाएं साफ-सुथरे तरीके से काम करना असंभव बना देती हैं।
निम्नलिखित मामले की कल्पना करें:
सॉफ़्टवेयर उत्पाद में एक बग है, जिसके कारण यह काम करना बंद कर देता है जब यह पता लगाता है कि डेटाबेस में कुछ डेटा असंगति होने का क्या विचार है,
सभी डेवलपर्स जो संभावित रूप से बग को ठीक कर सकते हैं, वे उपलब्ध नहीं हैं,
कंपनी वर्तमान में प्रति घंटे हजारों डॉलर खो रही है (मान लें कि $ 6 000, जिसका अर्थ है $ 100 प्रति मिनट),
बग कई तालिकाओं को प्रभावित कर रहा है, जिनमें से एक बहुत बड़ा है, और केवल डेटा को ही चिंतित करता है, स्कीमा को नहीं,
बग को दरकिनार करने के लिए, आपको डेटा के साथ थोड़ा प्रयोग करना चाहिए, जिसमें इसे हटाने और बदलने दोनों शामिल हैं,
डेटाबेस बड़ा है और बैकअप लेने या पुनर्स्थापित करने में तीन घंटे लगेंगे,
अंतिम पूर्ण बैकअप तीन सप्ताह पहले लिया गया था; दैनिक वृद्धिशील बैकअप भी हैं, और अंतिम दैनिक वृद्धिशील बैकअप 14 घंटे पहले किया गया था,
डेटाबेस बैकअप विश्वसनीय माना जाता है; इनका गंभीर परीक्षण किया गया, जिसमें हाल ही में,
14 घंटे का डेटा खोना स्वीकार्य नहीं है, लेकिन एक से दो घंटे के डेटा का नुकसान होता है,
मंचन का वातावरण अंतिम रूप से छह महीने पहले इस्तेमाल किया गया था; ऐसा लगता है कि यह आज तक नहीं है, और इसे स्थापित करने में घंटों लग सकते हैं,
डेटाबेस Microsoft SQL Server 2008 एंटरप्राइज़ है।
चीजों को करने का साफ तरीका है:
मचान वातावरण में बैकअप पुनर्स्थापित करें,
वहां प्रयोग करें,
दो बार अंतिम स्क्रिप्ट की जाँच करें,
उत्पादन सर्वर पर स्क्रिप्ट चलाएँ।
बस पहले कदम के लिए आपकी कंपनी को $ 18 000 का खर्च आएगा। यदि आप तीसरा चरण निर्दोष रूप से करते हैं, तो जोखिम बहुत कम है, लेकिन चूंकि आप अत्यधिक दबाव में काम करते हैं, इसलिए जोखिम बहुत अधिक होगा। आप एक स्क्रिप्ट के साथ समाप्त हो सकते हैं, जो मंचन में पूरी तरह से अच्छी तरह से काम करती है, फिर उत्पादन डेटाबेस को खराब कर देती है।
इसके बजाय, आप ऐसा कर सकते थे:
एक स्नैपशॉट बनाएं (Microsoft SQL सर्वर उस का समर्थन करता है, और यह एक डेटाबेस का एक स्नैपशॉट जो कि बैकअप के लिए एक घंटे लेता है, वापस लौटने में (और कुछ भी नहीं बनाने के लिए) लेता है; मुझे लगता है कि अन्य डेटाबेस उत्पाद स्नैपशॉट का भी समर्थन करते हैं);
उत्पादन डेटाबेस पर सीधे प्रयोग करें, अगर कुछ गलत हो जाता है, तो स्नैपशॉट पर वापस लौटना।
जबकि एक शुद्धतावादी डेटाबेस को साफ तरीके से तय करेगा और फिर भी उसकी कंपनी के $ 20 000 से अधिक को बर्बाद करते हुए समय का दबाव बढ़ाने के लिए चीजों को खराब करने का जोखिम होगा, एक डेटाबेस प्रशासक जो व्यवसाय की बाधाओं को लेता है, एक तरह से डेटाबेस को ठीक करेगा। जो जल्दी से करते हुए जोखिम (स्नैपशॉट के लिए धन्यवाद) को कम कर देगा।
निष्कर्ष
मैं खुद एक शुद्धतावादी हूं, और मैं साफ-सुथरे तरीके से काम करने से नफरत करता हूं। एक डेवलपर के रूप में, मैं कोड को संशोधित करता हूं, मैं उन मुश्किल हिस्सों पर टिप्पणी करता हूं जिन्हें फिर से काम नहीं किया जा सकता है, मैं कोडबेस को यूनिट-टेस्ट करता हूं और मैं कोड समीक्षा करता हूं। लेकिन मैं उन परिस्थितियों को भी ध्यान में रखता हूं जहां या तो आप सफाई से काम करते हैं और अगले दिन आपको निकाल दिया जाता है, या आप एक त्वरित हैक करके जोखिम और वित्तीय प्रभाव दोनों को कम कर देते हैं।
अगर कुछ आईटी आदमी सिर्फ साफ-सफाई के लिए चीजों को साफ- सुथरा करना चाहते हैं, जबकि इससे कंपनी को हजारों डॉलर का नुकसान होता है, तो इस आईटी आदमी को अपनी नौकरी की गहरी गलतफहमी होती है।