हमारा आवेदन वेब पर चलता है, ज्यादातर पूछताछ उपकरण है, कुछ लेनदेन करता है। हम ओरेकल डेटाबेस होस्ट करते हैं। प्रत्येक ग्राहक के लिए ऐप में हमेशा ओरेकल का एक अलग उदाहरण होता है। एक ग्राहक एक ऐसी कंपनी है जो हमें कंपनी के कर्मचारियों को आम तौर पर 10,000-25,000 कर्मचारियों को सेवा प्रदान करने का भुगतान करती है। हम कई सौ ग्राहकों का इरादा रखते हैं। हम हर कुछ वर्षों में एक बड़ी रिलीज करते हैं, और उस नई रिलीज में माइग्रेट करना चुनौतीपूर्ण है: हमारे पास कुछ हफ्तों के लिए ग्राहक साइट पर एक टीम हो सकती है, नई कार्यक्षमता समझाती है और उस ग्राहक के अनुरूप ड्राइविंग डेटा सेट अप कर सकती है।एक उदाहरण में ओरेकल उदाहरणों के 100 के विलय की बुद्धि
हम बहु-ग्राहक जाने पर विचार कर रहे हैं, जिससे हमारे सभी ग्राहकों को लागत को कम करने के लिए एक बड़े honkin 'विंडोज सर्वर 2008 सर्वर पर एक साझा साझा ओरेकल 11 जी उदाहरण में डाल दिया गया है। मैं सोच रहा हूं कि क्या सलाह दी जाती है।
प्रत्येक ग्राहक के लिए अलग-अलग उदाहरण होने के कुछ फायदे हैं। मुझे बताएं कि क्या ये फर्जी हैं, कृपया। घटते महत्व के बारे में मेरी किसी न किसी अनुमान में:
हमारे ग्राहकों MyCorp और YourCo अलग से चले गए जा सकता है जब तोड़ने परिवर्तन स्कीमा के बने होते हैं। (बहु-ग्राहक के साथ, हम 300+ ग्राहकों को रातोंरात माइग्रेट कर रहे होंगे!?!)
MyCorp का डेटा आसानी से बैक अप लिया जा सकता है और (!!!) अन्य ग्राहकों को प्रभावित किए बिना बहाल किया जा सकता है।
माइक्रॉर्प का डेटा सुरक्षित रूप से कोड प्राप्त करने के लिए डेवलपर्स के आधार पर और/या डीबीए को कॉन्फ़िगरेशन अधिकार प्राप्त करने के आधार पर अपने प्रतिस्पर्धी योरको के डेटा से सुरक्षित रूप से अलग किया जाता है।
एकाधिक उदाहरण कम जोखिम हैं, क्योंकि एक ग्राहक के साथ आपदा (कोई गलती से हर किसी के वेतन को दोगुना करता है और भुगतान दिन के बाद त्रुटि की खोज की जाती है) अन्य ग्राहकों को प्रभावित नहीं करती है। एक आपदा जिसने हमारे सभी ग्राहकों को प्रभावित किया (जोप्स, नया डीबीए, और अचानक प्रत्येक प्रतिभागी के पास एक ही एसएसएन है!!) हमारी कंपनी को नीचे डाल सकता है।
एक सर्वर पर एक उदाहरण होने से विफलता का एक बिंदु प्रस्तुत होता है, यदि हमारे तूफान इमारत से बाहर निकलते हैं तो हमारे पूरे ग्राहक आधार व्यापार से बाहर होते हैं। एकाधिक सर्वरों पर कई उदाहरण भौगोलिक फैलाव की अनुमति देते हैं: कोई आपदा हमारे ग्राहकों के अनुपात को बहुत अधिक प्रभावित नहीं करेगी, और अन्य क्षेत्रों में अप्रभावित सर्वर असफल सर्वरों के भार को ले सकते हैं।
प्रदर्शन बेहतर है क्योंकि डेटाबेस छोटा है (~ 10,000 टेबल में 10,000 बनाम 2,000,000 पंक्तियां)।
यदि MyCorp के कार्यालय केवल एक क्षेत्र में (अधिकतर) हैं, तो MyCorp का उदाहरण भौगोलिक दृष्टि से सह-स्थित हो सकता है, इसलिए नेटवर्क अंतराल प्रदर्शन को नुकसान नहीं पहुंचाता है। हम इसी कारण से वैश्विक ग्राहकों को बेहतर सेवा प्रदान कर सकते हैं।
माइक्रॉर्प में अपना डेटाबेस इन-हाउस लेना चाहता है, तो हम माइक्रॉर्प को अपना डेटा प्राप्त करने के लिए आसानी से अपना उदाहरण निर्यात कर सकते हैं।
लोड-बैलेंसिंग आसान है क्योंकि विभिन्न सर्वरों पर उदाहरणों को रखा जा सकता है (यह एक वेब फार्म के साथ है)।
जब कोई DEV या QA इंस्टेंस की आवश्यकता होती है, तो वास्तविक उदाहरण को क्लोन करना और डेटा को अनामित करना आसान है, क्योंकि बहुत कम डेटा है।
क्योंकि वे काफी छोटे हैं, डेवलपर्स का अपना उदाहरण स्थानीय रूप से चल रहा है, इसलिए वे हवाई अड्डे पर इंतजार करते समय और उड़ान भरते समय कोड पर काम कर सकते हैं, वीपीएन परेशानियों के बिना।
Q1: अलग उदाहरणों में से अन्य लाभ क्या हैं?
हम डेटाबेस स्कीमा बदल रहा है और एक Oracle उदाहरण में हमारे सभी ग्राहकों के विलय, एक मोटी सर्वर पर चल रहा विचार कर रहे हैं।
यहां बहु-क्लाइंट इंस्टेंस दृष्टिकोण के फायदे हैं, सबसे महत्वपूर्ण पहले (मेरे डब्ल्यूएजी)। क्योंकि वे केवल सैकड़ों के बजाय एक उदाहरण बनाए रखने की जरूरत,
DBAs के लिए कम काम: कृपया ठीक गोली चलाना है, तो इन फर्जी हैं। कम डीबीए काम सस्ता करने के लिए अनुवाद करता है, इस परिवर्तन के लिए हमारा मुख्य उद्देश्य।
केवल एक उदाहरण के साथ, डीबीए प्रदर्शन को अनुकूलित करने का बेहतर काम कर सकता है। उनके पास उपयुक्त इंडेक्स जोड़ने और हमारे एसक्यूएल की समीक्षा करने का समय होगा।
डेवलपर्स के लिए & एप्लिकेशन को बढ़ाने के लिए आसान होगा, क्योंकि केवल एक स्कीमा और एक ऐप है (यदि सैकड़ों उदाहरण हैं, तो ऐप के एक अलग संस्करण के साथ कई प्रकार के स्कीमा संस्करण हो सकते हैं स्कीमा के प्रत्येक संस्करण)। इससे लागत भी कम हो जाती है। विकल्प के साथ प्रत्येक डीबग सत्र शुरू करना है (1) यह ग्राहक किस संस्करण को चला रहा है और (2) चलो इसी विकास पर्यावरण, कोड और डेटाबेस को फिर से बनाने के लिए संघर्ष करते हैं। (हमें एक वर्चुअल मशीन की आवश्यकता है जिसमें प्रत्येक पैच और रिलीज के लिए कोड और डेटाबेस इंस्टेंस शामिल है!)
लाइसेंसिंग ओरेकल सस्ता है क्योंकि यह प्रति सर्वर की कीमत के बावजूद है (या कुछ - मुझे इसके बारे में कुछ नहीं पता अधीन)।
डेटाबेस वेब सत्र डेटा के लिए एक व्यवहार्य निरंतर स्टोर बन जाता है, क्योंकि केवल एक उदाहरण है।
कुछ डेटाबेस ऑपरेशंस एक बहु-क्लाइंट उदाहरण के साथ आसान होते हैं, जैसे प्रतिभागी को ढूंढना, जब वे इस बात के बारे में आलसी हैं कि वे किस ग्राहक (या उनके पति/पत्नी) के लिए काम करते हैं: सभी नाम एक तालिका में हैं। ग्राहकों भर में रिपोर्टिंग सरल है।
Q2: एक उदाहरण में कई ग्राहकों होने के अन्य लाभ क्या हैं?
प्रश्न 3: आपको कौन सा दृष्टिकोण बेहतर लगता है (क्यों)? प्रति ग्राहक उदाहरण, या सभी ग्राहकों को एक उदाहरण में?
मैं चिंतित हूं कि एक बहु-ग्राहक उदाहरण होने लगभग असंभव प्रवास बनाता हूँ, और कि एक सौदा हत्यारा है ...
... जब तक कि वहाँ दो होने की तरह एक समझौता समाधान है बहु-ग्राहक उदाहरण, पुराने और नए।उस मामले में, हम प्रतिभागियों, रिपोर्टिंग इत्यादि को खोजने के लिए क्रॉस-इंस्टेंस समाधान तैयार करेंगे ताकि ग्राहक बिना किसी ब्रेकिंग के अगले में एक बहु-क्लाइंट इंस्टेंस से जा सकें।
+1, दिलचस्प सवाल। – DCookie