SQL सर्वर 2014 स्कीमा 24/7 बहु उपयोगकर्ता वातावरण में बदलता है


12

हमारे पास SQL ​​Server 2014 एंटरप्राइज़ एक डेटाबेस चलाने के लिए स्थापित है जो 24/7 उपलब्ध होना चाहिए। हमारा डेटाबेस काफी बड़ा है (200gb +)। इसके अलावा हमारे पास बहुत सी सेवाएँ हैं जो हमारे डेटाबेस को हर मिनट पढ़ने, अपडेट करने या नया डेटा डालने के लिए हिट करती हैं। हम अपने ग्राहकों के लिए एक "हॉट" रीडेप्लॉय सुविधा प्रदान करना चाहते हैं और अपने दैनिक अपडेट (.net और स्कीमा अपडेट) को ग्राहकों के लिए पारदर्शी बनाना चाहते हैं। हमने अपने ऐप के बायनेरिज़ को अपडेट करने के लिए लोड बैलेंसर के साथ क्लस्टर पर आधारित एक समाधान पाया है, लेकिन हमारे पास अभी भी डेटाबेस `अपडेट्स परिनियोजन प्रक्रिया के बारे में कुछ गलतफहमी है और इस मुद्दे को हल करने के लिए सर्वोत्तम अभ्यास क्या हैं।

स्कीमा परिवर्तन के लिए, एक सर्वर को नीचे लाएँ, स्कीमा परिवर्तन लागू करें, इसे वापस लाएँ, और फिर दूसरे उदाहरण में समान परिवर्तन लागू करें। क्या इसे SQL सर्वर टूल्स से पूरा किया जा सकता है, और क्या यह एक सामान्य तरीका है? सर्वर का बैकअप लेने के बाद सिंक डेटा कैसे? या मैं पूरी तरह से गलत दिशा में सोच रहा हूं और क्या बेहतर समाधान हैं?

हमारी सामान्य स्कीमाएं बदल जाती हैं: कॉलम जोड़ें / ड्रॉप करें, संग्रहीत कार्यविधि जोड़ें / हटाएं


SQL का आपका वर्तमान लेआउट क्या है? क्लस्टर किया गया? हमेशा बने रहें? प्रतिबिंबित? एक उदाहरण?
लोवल्डबा जुआन

आजकल हमारे पास एक ही उदाहरण है, लेकिन हम इसे आवश्यकताओं के अनुसार बदल सकते हैं, नया सर्वर जोड़ सकते हैं और इसी तरह
शितोव माइकल

4
आपको नीले-हरे रंग के दृष्टिकोण का पालन करना चाहिए, इस तरह से आपके पास एक लाइव सिस्टम (हरा) हो सकता है और स्टेजिंग (नीला) पर अपग्रेड कर सकता है और फिर भूमिकाओं को बदल सकता है। यह हमने ऑल्वोन का उपयोग करके लागू किया है और यह हमारे लिए काम करता है - लगभग एक ही परिदृश्य। इसके लिए उचित योजना, कार्यान्वयन और परीक्षण की आवश्यकता है।
किन्न शाह

क्या आप मुझे अधिक विस्तृत परिदृश्य दे सकते हैं, उदाहरण के लिए स्तंभ विलोपन स्कीमा परिवर्तन?
शमितोव माइकल

ऑलवेजऑन इंफ्रास्ट्रक्चर में प्राथमिक, (S1) / सेकेंडरी (S2) नोड्स के स्पष्टीकरण के बारे में स्पष्टीकरण के बाद, तब मैंने प्रतिकृति (S1 पर स्कीमा से कुछ कॉलम हटाने का फैसला किया, यह स्विच से पहले प्राथमिक था), लेकिन मैं अभी भी कुछ प्रतिकृति डेटा कर सकता हूं तालिका में उस स्तंभ के साथ S2 से .... मैं इस मुद्दे से कैसे निपट सकता हूं?
शमितोव माइकल

जवाबों:


1

नीचे अधिक योजना और परीक्षण की आवश्यकता होगी।


ब्लू-ग्रीन संकल्पना:


ब्लू-ग्रीन कॉन्सेप्ट की खूबी आपके उत्पादन को 2 वातावरणों में विभाजित करना है और वे हर समय (डेटा सिंक्रोनाइज़ेशन) समान होते हैं जिसमें

  1. ब्लू (करंट) में स्कीमा / बिल्ड या उत्पाद का वर्तमान संस्करण होगा और आपका "LIVE" वातावरण होगा।

  2. एक ही समय में ग्रीन आपके मंचन / परीक्षण का वातावरण होगा, जिसमें आप अपने स्कीमा / बिल्ड या उत्पाद को NEXT रिलीज़ में अपग्रेड करेंगे, एक पूर्ण प्रतिगमन परीक्षण करेंगे और अपने व्यावसायिक उपयोगकर्ताओं द्वारा हस्ताक्षरित होंगे। एक बार खुश होने के बाद, एक कट-ओवर अवधि के दौरान, आप ग्रीन को अपने "LIVE" वातावरण के रूप में बढ़ावा देंगे और ब्लू को अगले रिलीज के लिए एक प्रीप्रोड / मंचन या परीक्षण करने के लिए समर्पित करेंगे।

इस तरह, आपके पास बहुत कम डाउनटाइम है और एक लाइव सिस्टम पर तैनाती की विफलता का जोखिम (जो रखरखाव विंडो में है, चूंकि आप अपग्रेड कर रहे हैं) बहुत कम हो जाएगा। इसके अलावा, ब्लू-ग्रीन दृष्टिकोण के बाद, आप LIVE और PREVIOUS संस्करण के बीच दोलन करेंगे जो अगले संस्करण के लिए मंचन होगा।

फिर, इसके लिए अधिक हार्डवेयर / लाइसेंसिंग के साथ-साथ योजना और परीक्षण की आवश्यकता होगी।

अधिकांश चरणों को DACPACs और PowerShell का उपयोग करके स्वचालित किया जा सकता है। इसके अलावा, यदि आप एक सर्वर पर कई इंस्टेंस स्थापित कर रहे हैं, तो ब्लू और ग्रीन के बीच स्विच करते समय मेमोरी सेटिंग्स को फिर से संतुलित करना सुनिश्चित करें। निष्क्रिय वातावरण की तुलना में LIVE वातावरण को अधिक स्मृति मिलती है।

मेरे वर्तमान परिवेश में, हमने एजाइल कोड परिनियोजन के लिए ब्लू / ग्रीन मॉडल लागू किया है जो हमें परीक्षण और व्यापार साइन-ऑफ के लिए पर्याप्त मात्रा में हर 2 सप्ताह में कोड को बढ़ावा देने की अनुमति देता है। इसके अलावा, इसकी हवा में रोलबैक करने की स्थिति में कुछ गलत हो जाता है। हमारे पास Dacpacs और PowerShell का उपयोग करते हुए परिनियोजन सामग्री का बहुमत है।

यहाँ छवि विवरण दर्ज करें (छवि स्रोत)

रोलबैक और रिकवरी ट्रबलशूटिंग पर ग्रांट फ्रैची के लेख को देखें ; चुनौतियां और रणनीतियाँ


0

यदि आपके डेटाबेस को दोहराया नहीं जाता है, तो, जोड़ें और ड्रॉप कॉलम वास्तव में तेजी से चलाया जाएगा। क्योंकि स्तंभ जोड़ना एक खाली स्थिति है जो SQL बनाता है। ड्रॉप कॉलम केवल संदर्भ को मिटा देगा।

अन्यथा अगर इस पर कुछ अड़चन या सूचकांक है तो सावधान रहें।

ADD/DELETEप्रक्रियाएं केवल निष्पादन पर ही प्रभावी होंगी। सिफारिश उस पर किसी भी परिवर्तन से पहले है recompile

sp_recompile 'myproc'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.