24x7 बनाम नाइट टाइम विंडो


19

मुझे 24x7 ऑपरेशन में बेहतर तरीके से स्थानांतरित करने के लिए संसाधन कहां मिल सकते हैं? बड़े डेटाबेस वाली बड़ी कंपनियां इसे कैसे पूरा करती हैं? हमारी रात की नौकरी जैसे

  1. पुराने डेटा को शुद्ध करें
  2. अनुक्रमणः
  3. अद्यतन आँकड़े

सभी हमारे सिस्टम ( यानी ऑनलाइन उपयोगकर्ता और वास्तविक समय डेटा फ़ीड) पर महत्वपूर्ण प्रभाव डालते हैं । मैंने इस विषय से संबंधित किसी भी पुस्तक के लिए अमेज़ॅन पर देखा है, और अभी तक कुछ भी नहीं मिला है।


क्या आप अपने रात्रिकालीन नौकरियों के प्रभाव को प्रबंधित करने के लिए डेटाबेस को एक सर्वर से दूसरे या बेहतर तरीके से माइग्रेट करना चाहते हैं?
माइक फाल

रात की नौकरियों के प्रभाव का प्रबंधन कैसे करें? यानी रात की "बैच विंडो" को कैसे कम या खत्म किया जाए।
नीलवैल्ट्स

2
@ नीलवक्र्स आप एसक्यूएल सर्वर के किस संस्करण पर हैं? (पुराने डेटा को स्विच करने के लिए ऑनलाइन इंडेक्स रीबॉर्डी और टेबल विभाजन एंटरप्राइज एडिशन में उपलब्ध हैं)
मार्टिन स्मिथ

1
Sql सर्वर का आप किस संस्करण का उपयोग कर रहे हैं? उद्यम / मानक? एंटरप्राइज में कुछ विशेषताएं हैं जो आपको न्यूनतम उपयोगकर्ता प्रभाव के साथ ऑनलाइन के रूप में कुछ संचालन करने की अनुमति दे सकती हैं ।
परिजन शाह

1
@NealWalters अधिक दिनों के लिए DBCC CHECKDB को विभाजित करना अधिक विवरण देता है। हालांकि यह CHECKDB के लिए अधिक है, लेकिन आपको अधिक विचार प्राप्त करने में मदद करेगा। आइए जानते हैं कि आप किस संस्करण का उपयोग कर रहे हैं, इसलिए यहां के लोग आपकी बेहतर मदद कर सकते हैं।
परिजन शाह

जवाबों:


27

24x7 डेटाबेस को बनाए रखना काफी बड़ा विषय है जिसमें बहुत सारे विकल्पों पर विचार किया जाता है। इस व्यापक विषय पर विचार करने के लिए कई आइटम हैं, लेकिन हम कुछ उच्च बिंदुओं पर आधार को छूने की कोशिश कर सकते हैं।

आप सबसे पहले क्या पहचानना चाहेंगे, जबकि कई ऑपरेशन 24x7 हैं, आमतौर पर कम गतिविधि के समय होते हैं। आप अपने रखरखाव को चलाने के लिए इन समय का लाभ उठा सकते हैं ताकि आप डेटाबेस पर आपके द्वारा किए जाने वाले हस्तक्षेप को कम कर सकें। दूसरा यह है कि आपको पूर्ण आउटेज के लिए कुछ समय आरक्षित करना होगा (सर्विस पैक या डेटाबेस माइग्रेशन जैसी चीजों के लिए), इसलिए आपको अपने प्रबंधन के साथ पूर्ण रखरखाव खिड़कियों पर बातचीत करने की आवश्यकता होगी। विशिष्ट वस्तुओं के लिए आपको प्रत्येक के लिए विचार करने और योजना बनाने की आवश्यकता होगी, साथ ही साथ अपने उपकरणों का उचित रूप से लाभ उठाना होगा। महत्वपूर्ण टुकड़ा यह है कि आपको इनमें से प्रत्येक को PLAN करना चाहिए , मेरे द्वारा प्रदान किए गए कोई भी उदाहरण "आपके मील भिन्न हो सकते हैं"।

बैकअप

आमतौर पर बैकअप का वर्कलोड पर बहुत अधिक प्रभाव नहीं होगा, लेकिन इसका हिसाब होना चाहिए क्योंकि वे बहुत सारे I / O का उपभोग कर सकते हैं। आप उचित रूप से इनका शेड्यूल करना चाहेंगे और इसे पूरा होने में लगने वाले समय की निगरानी करेंगे। यहां सबसे बड़ी बाधा यह है कि 24x7 ऑपरेशन में, आप संभवतः सप्ताह के हर रात पूर्ण रात्रि बैकअप का संचालन नहीं कर पाएंगे। जब आप फुल ले सकते हैं, तो जब आप डिफरेंशियल ले रहे हों, और अपने लॉग बैकअप के साथ इन दोनों के लिए रिटेंशन पीरियड लेना चाहते हैं।

एक उदाहरण के रूप में, मैं रविवार रात (सबसे कम गतिविधि), अन्य सभी रातों (सोमवार-शनिवार) पर अंतर के अपने सभी डेटाबेस का पूर्ण बैकअप चलाता हूं। मैं पिछले दो हफ़्ते पूरे रखता हूं और डिस्क पर भिन्न होता है, पिछले दो दिनों के लिए लॉग करता है। यह मुझे पुनर्प्राप्ति के लिए पर्याप्त लचीलापन देता है, लेकिन यदि आवश्यक हो तो मुझे टेप से बैकअप पुनर्प्राप्त करना पड़ सकता है।

सूचकांक / सांख्यिकी रखरखाव

यह सबसे आम प्रकार का सक्रिय रखरखाव है, जिससे आपको निपटना होगा। आप इससे बच नहीं सकते, लेकिन आप प्रभाव को कम कर सकते हैं। अंगूठे का प्रारंभिक नियम यह है कि आपको केवल उन वस्तुओं पर रखरखाव करना चाहिए जिनकी आवश्यकता है। सामान्य दिशानिर्देश केवल अनुक्रमणिका के पुनर्निर्माण के लिए हैं जो 30% से अधिक खंडित और 1000 पृष्ठों से बड़े हैं । यदि आपके पास स्वतः-अपडेट आँकड़े हैं , तो यह आपके अधिकांश आँकड़ों के रख-रखाव को संभाल लेगा, लेकिन सिंक में चीजों को रखने के लिए एक रात का काम एक बुरा विचार नहीं है।

यदि आपके पास एंटरप्राइज़ संस्करण है, तो आपके पास रखरखाव के प्रबंधन के लिए कुछ अन्य विकल्प भी हैं। सबसे महत्वपूर्ण ऑनलाइन इंडेक्स रिबर्ड्स है , जो आपको अनुक्रमणिका को फिर से बनाने की अनुमति देगा, जबकि वे अभी भी उपयोग में हैं (अनिवार्य रूप से, यह अगल-बगल में इंडेक्स बनाता है, फिर इसे स्वैप करता है)। आप आवश्यक पुनर्निर्माण के समय को कम करने के लिए "बड़ी" तालिकाओं के लिए विभाजन का भी लाभ उठा सकते हैं ।

इस प्रकार के रखरखाव के लिए आपकी सबसे अच्छी शर्त है, यदि आपके पास कस्टम स्क्रिप्ट नहीं हैं जो इन सर्वोत्तम प्रथाओं को संभालती हैं, तो ओला हॉलेनग्रैन के रखरखाव स्क्रिप्ट का उपयोग करना है । ये सेटअप और कॉन्फ़िगर करने में काफी आसान हैं और इनमें निर्मित कई दिशानिर्देश हैं।

DBCC संगति जाँच

आपके समग्र कार्यभार के आधार पर, आपको अपने संचालन के लिए विघटनकारी होने के लिए DBCC चेक मिल सकते हैं। आपके डेटाबेस के लिए अपने DBCC प्रभाव को कम करने के दो सामान्य तरीके हैं:

  • PHYSICAL_ONLY- इस विकल्प को चलाने से आपके डेटाबेस की भौतिक पृष्ठ स्तर पर जाँच होगी और अधिक आक्रामक पूर्ण जाँच से बचना होगा। यह सबसे अधिक संभावित प्रकार के भ्रष्टाचार की पहचान करेगा।
  • एक पुनर्स्थापित प्रतिलिपि की जाँच करना - यदि आपके पास जगह है, तो आप डेटाबेस को किसी अन्य उदाहरण में पुनर्स्थापित कर सकते हैं और पुनर्स्थापित प्रतिलिपि के खिलाफ एक DBCC चेक चला सकते हैं। यह आपके लाइव डेटाबेस के बारे में एक ही कहानी बताएगा, लेकिन आप स्पष्ट रूप से गतिविधि में हस्तक्षेप नहीं करेंगे। यहाँ कुछ अन्य विकल्प लॉग शिप कॉपी या मिरर किए गए db के विरुद्ध DBCC चला रहे हैं।

यह ब्लॉग पोस्ट आपके विकल्पों पर अधिक विवरण प्रदान करती है।

बैच जॉब / ईटीएल

यह वास्तव में नीचे आता है कि आप अपनी प्रक्रियाओं को कैसे डिज़ाइन करते हैं। आपका ईटीएल हमेशा लाइव ओएलटीपी टेबल (किसी भी अन्य एप्लिकेशन के रूप में) के साथ हस्तक्षेप कर सकता है, इसलिए ध्यान में रखने के लिए कुछ चाबियाँ:

  • अपने अन्य रखरखाव के आसपास और कम गतिविधि की अवधि में इस तरह के काम का शेड्यूल करें।
  • कार्य को सही आकार दें ताकि यह दोनों प्रदर्शन के लिए बैचेन हो और ताकि बैच इतना बड़ा न हो कि यह आपकी तालिका को घंटों के लिए लॉक कर दे। स्पेक्ट्रम के सिरों के उदाहरण: रो-बाय-एगोनिजिंग-पंक्ति (RBAR) बनाम एक मिलियन पंक्ति हटाएं।
  • जहां उचित हो, स्टेज टेबल का उपयोग करें और अपनी डाटा प्रोसेसिंग को ऑफलाइन करें। जब आवश्यक हो केवल लाइव सामान को स्पर्श करें।

निष्कर्ष

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

अतिरिक्त संसाधन:

SQL कौशल VLDB रखरखाव सर्वोत्तम प्रथाओं


सहमत, उत्कृष्ट, सहायक, विस्तृत प्रतिक्रिया। धन्यवाद! हम इसके जरिए काम कर रहे हैं।
नीलवैल्ट्स

एक अन्य कारक जिस पर हम काम कर रहे हैं वह मुख्य डेटाबेस को अलग रखने के लिए बहुत से डेटा को एक ODS (ऑपरेशनल डेटा स्टोर) में ले जा रहा है। हम यह भी पाते हैं कि "अपडेट स्टैटिस्टिक्स" प्रत्येक सुबह लगभग 2 से 2.5 घंटे चल रहा है, और यह सामान्य प्रदर्शन को धीमा करता है। क्या प्रत्येक दिन अपडेट-स्टैट्स चलाने के लिए "सर्वश्रेष्ठ अभ्यास" है?
नीलवैल्ट्स

मैं आमतौर पर यह करूंगा, लेकिन YMMV। आँकड़े अद्यतन नहीं करने का जोखिम आँकड़े बासी हो जाते हैं और आपके पास खराब क्वेरी योजनाएँ होने लगती हैं। आपको विश्लेषण करना होगा कि क्या यह एक समस्या है यदि आप हर रात अपडेट आँकड़े नहीं चलाते हैं। आप अपने आँकड़ों की नौकरियों को अधिक स्थान देने के बारे में देख सकते हैं और यह देख सकते हैं कि आपके प्रश्न सामान्य रूप से कैसे प्रदर्शन करते हैं।
माइक फाल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.