Computer >> कंप्यूटर >  >> प्रणाली >> Windows Server

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

इस लेख में, हम आपको हमेशा चालू को स्थापित और कॉन्फ़िगर करने के तरीके के बारे में चरण-दर-चरण मार्गदर्शिका के बारे में बताएंगे विंडोज सर्वर 2019 पर चल रहे SQL सर्वर पर उपलब्धता समूह, फेलओवर परिदृश्यों और कुछ अन्य संबंधित विषयों पर चर्चा करते हैं।

हमेशा उपलब्धता समूहों पर Microsoft SQL सर्वर में उच्च उपलब्धता प्रदान करें। MSSQL 2012 रिलीज़ में हमेशा ऑन दिखाई दिया।

एसक्यूएल सर्वर में हमेशा उपलब्ध उपलब्धता समूहों की विशेषताएं

आप SQL सर्वर उपलब्धता समूहों का उपयोग किसके लिए कर सकते हैं?

  • MS SQL उच्च उपलब्धता और स्वचालित विफलता;
  • नोड्स के बीच SELECT क्वेरीज़ का लोड संतुलन (द्वितीयक प्रतिकृतियां पठनीय हो सकती हैं);
  • द्वितीयक प्रतिकृतियों से बैकअप;
  • डेटा अतिरेक। प्रत्येक प्रतिकृति उपलब्धता समूह डेटाबेस की प्रतियां रखती है।

हमेशा चालू Windows सर्वर फ़ेलओवर क्लस्टर पर आधारित होता है (डब्ल्यूएसएफसी)। WSFC उपलब्धता समूह नोड्स की निगरानी करता है और स्वचालित विफलता प्रदान करता है। MS SQL Server 2017 से शुरू होकर, हमेशा चालू का उपयोग किया जा सकता है WSFC के बिना और लिनक्स . में मेजबान भी। Linux-आधारित क्लस्टर बनाते समय, आप WSFC के बजाय पेसमेकर का उपयोग कर सकते हैं।

हमेशा चालू मानक . में उपलब्ध है संस्करण, लेकिन इसमें कुछ प्रतिबंध हैं:

  • यह 2 प्रतिकृति (प्राथमिक और माध्यमिक) तक सीमित है;
  • द्वितीयक प्रतिकृति का उपयोग डेटा पढ़ने के लिए नहीं किया जा सकता;
  • द्वितीयक प्रतिकृति का उपयोग MS SQL के बैकअप के लिए नहीं किया जा सकता;
  • प्रति उपलब्धता समूह केवल 1 डेटाबेस समर्थित है।

उद्यम . में कोई प्रतिबंध नहीं है संस्करण।

आप MS SQL सर्वर लाइसेंसिंग पहलुओं के बारे में यहाँ पढ़ सकते हैं।

आइए शर्तों पर विचार करें।

  • हमेशा उपलब्धता समूह पर प्रतिकृतियों और डेटाबेस का एक सेट है;
  • प्रतिकृति उपलब्धता समूह में एक SQL सर्वर आवृत्ति है। एक प्रतिकृति प्राथमिक या माध्यमिक हो सकती है। प्रत्येक प्रतिकृति में एक या अधिक डेटाबेस हो सकते हैं।

ऑलवेज ऑन डब्ल्यूएसएफसी पर आधारित है। प्रत्येक उपलब्धता समूह नोड को Windows फ़ेलओवर क्लस्टर का सदस्य होना चाहिए। प्रत्येक SQL सर्वर आवृत्ति में एकाधिक उपलब्धता समूह हो सकते हैं। प्रत्येक उपलब्धता समूह में 8 माध्यमिक प्रतिकृतियां हो सकती हैं।

यदि कोई प्राथमिक प्रतिकृति विफल हो जाती है, तो क्लस्टर एक नई प्राथमिक प्रतिकृति के लिए मतदान करेगा, और हमेशा चालू द्वितीयक प्रतिकृतियों में से एक को प्राथमिक प्रतिकृति बना देगा। चूंकि उपयोगकर्ता श्रोता . से जुड़ते हैं (एक विशेष क्लस्टर आईपी पता और संबंधित डीएनएस नाम) ऑलवेज ऑन के साथ काम करते समय, लेखन प्रश्नों को फिर से चलाना संभव हो जाएगा। श्रोता द्वितीयक प्रतिकृतियों के बीच SELECT क्वेरीज़ को संतुलित करने के लिए भी ज़िम्मेदार है।

Windows Failover Cluster को हमेशा ऑन अवेलेबिलिटी ग्रुप के लिए कॉन्फ़िगर करें

सबसे पहले, हमें ऑलवेज ऑन द्वारा उपयोग किए जाने वाले सभी नोड्स पर एक फेलओवर क्लस्टर को कॉन्फ़िगर करना होगा।

यहाँ मेरा विन्यास है:

  • विंडोज सर्वर 2019 चलाने वाली 2 वर्चुअल मशीनें
  • 2 SQL सर्वर 2019 एंटरप्राइज़ इंस्टेंस
  • नोड होस्टनाम testnode1 और testnode2 हैं। SQL सर्वर इंस्टेंस नाम नोड1 और नोड2 हैं।

विफलता क्लस्टरिंग जोड़ें सर्वर प्रबंधक का उपयोग करके भूमिका निभाएं या इसे पावरशेल के माध्यम से स्थापित करें:

Install-WindowsFeature –Name Failover-Clustering –IncludeManagementTools

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

स्थापना स्वचालित है, और आपको अभी तक कुछ भी कॉन्फ़िगर करने की आवश्यकता नहीं है। विफलता क्लस्टर प्रबंधक चलाएं स्नैप-इन (FailoverClusters.SnapInHelper.msc ) और एक नया क्लस्टर बनाएं।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

उन मेजबानों के नाम जोड़ें जिन्हें आप अपने क्लस्टर में शामिल करना चाहते हैं।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

फिर विज़ार्ड कुछ परीक्षण करने की पेशकश करता है। ऐसा करने के लिए, पहले आइटम का चयन करें।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

क्लस्टर नाम निर्दिष्ट करें, नेटवर्क चुनें, और क्लस्टर IP पता चुनें। क्लस्टर नाम DNS में स्वचालित रूप से दिखाई देगा; आपको मैन्युअल रूप से DNS रिकॉर्ड बनाने की आवश्यकता नहीं है। मेरे मामले में, क्लस्टर का नाम ClusterAG . है ।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

विकल्पों को अनचेक करें क्लस्टर में सभी योग्य संग्रहण जोड़ें चूंकि हम बाद में डिस्क जोड़ सकते हैं।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

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

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

कोरम गवाह विकल्प का चयन करें।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

फिर गवाह प्रकार चुनें:एक फ़ाइल साझा गवाह।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

साझा फ़ोल्डर के लिए UNC पथ निर्दिष्ट करें। निर्देशिका स्वयं बनाएं। यह आपके फ़ेलओवर क्लस्टर के बाहर किसी सर्वर पर मौजूद होना चाहिए।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

जब आप अपने क्लस्टर को कॉन्फ़िगर करते हैं, तो आपको निम्न त्रुटि दिखाई दे सकती है:

There was an error configuring the file share witness. Unable to save property changes for File Share Witness. The system cannot find the file specified.

यह संभावना है कि उपयोगकर्ता खाता, जिसके अंतर्गत क्लस्टर चल रहा है, के पास साझा फ़ोल्डर तक पहुँचने के लिए NTFS अनुमतियाँ नहीं हैं। डिफ़ॉल्ट रूप से, क्लस्टर स्थानीय उपयोगकर्ता खाते के अंतर्गत चल रहा है। आप सभी क्लस्टर कंप्यूटरों को फ़ोल्डर पर विशेषाधिकार प्रदान कर सकते हैं या क्लस्टर सेवा के लिए खाता बदल सकते हैं और इसे प्रासंगिक विशेषाधिकार प्रदान कर सकते हैं।

मूल Windows फ़ेलओवर क्लस्टर कॉन्फ़िगरेशन समाप्त हो गया है।

MS SQL सर्वर पर हमेशा उपलब्धता समूह को कॉन्फ़िगर करना

विशिष्ट SQL सर्वर आवृत्ति स्थापना के बाद, आप हमेशा उपलब्धता समूहों को सक्षम और कॉन्फ़िगर कर सकते हैं। उन्हें SQL सर्वर कॉन्फ़िगरेशन प्रबंधक के उदाहरण गुणों में सक्षम करें . जैसा कि आप स्क्रीनशॉट में देख सकते हैं, SQL सर्वर ने पहले ही पता लगा लिया है कि यह WSFC क्लस्टर से संबंधित है। हमेशा उपलब्धता समूहों पर सक्षम करें Check चेक करें और MSSQL इंस्टेंस सेवा को पुनरारंभ करें। दूसरी बार भी ऐसा ही करें।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

युक्ति। ऑलवेज ऑन कॉन्फ़िगरेशन से पहले, सुनिश्चित करें कि SQL सर्वर सेवाएँ स्थानीय सिस्टम खाते के अंतर्गत नहीं चल रही हैं। समूह प्रबंधित सेवा खातों या सामान्य डोमेन खाते का उपयोग करने की अनुशंसा की जाती है। अन्यथा, आप ऑलवेज-ऑन कॉन्फ़िगरेशन को पूरा करने में सक्षम नहीं होंगे।

SQL सर्वर प्रबंधन स्टूडियो चलाएँ, अपने होस्ट से कनेक्ट करें, हमेशा उच्च उपलब्धता पर क्लिक करें, और नया उपलब्धता समूह विज़ार्ड चलाएँ।

SQL सर्वर प्रबंधन स्टूडियो 18.x में SQL सर्वर 2017 और SQL सर्वर 2019 के लिए कुछ हमेशा ऑन सेटिंग्स दिखाई दीं जो केवल T-SQL में उपलब्ध थीं, इसलिए नवीनतम SSMS संस्करण का उपयोग करने की अनुशंसा की जाती है।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

अपने हमेशा उपलब्धता समूह के लिए एक नाम निर्दिष्ट करें और डेटाबेस स्तर स्वास्थ्य जांच select चुनें . इस विकल्प का उपयोग करते हुए, ऑलवेज ऑन यह पता लगाने में सक्षम होगा कि डेटाबेस कब अस्वस्थ है।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

अपने हमेशा उपलब्धता समूह में जोड़ने के लिए SQL सर्वर डेटाबेस चुनें।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

प्रतिकृति जोड़ें . क्लिक करें और दूसरा SQL सर्वर कनेक्ट करें। इस प्रकार आप अधिकतम 8 सर्वर जोड़ सकते हैं।

  • प्रारंभिक भूमिका एक समूह बनाया गया है जब तक एक प्रतिकृति भूमिका है। यह प्राथमिक या माध्यमिक हो सकता है;
  • स्वचालित विफलता - यदि कोई डेटाबेस अनुपलब्ध हो जाता है, तो हमेशा चालू प्राथमिक भूमिका को दूसरी प्रतिकृति में स्थानांतरित कर देगा। इस आइटम की जांच करें;
  • उपलब्धता मोड सिंक्रोनस कमिट या एसिंक्रोनस कमिट का चयन करने की अनुमति देता है। यदि आप एक सिंक्रोनस मोड का चयन करते हैं, तो प्राइमरी रेप्लिका में आने वाले ट्रांजेक्शन को सिंक्रोनस मोड के साथ अन्य सभी सेकेंडरी रेप्लिका को भेजा जाएगा। प्राथमिक प्रतिकृति केवल अन्य प्रतिकृतियों द्वारा डिस्क पर लिखे जाने के बाद ही लेनदेन को पूरा करती है। इस प्रकार, प्राथमिक प्रतिकृति विफल होने पर डेटा हानि समाप्त हो जाती है। एसिंक्रोनस मोड में, प्राथमिक प्रतिकृति अन्य प्रतिकृतियों की प्रतिक्रिया की प्रतीक्षा किए बिना तुरंत परिवर्तन लिखती है।
  • पठनीय माध्यमिक एक पैरामीटर है जो द्वितीयक प्रतिकृतियों के विरुद्ध SELECT क्वेरी को चलाने की अनुमति देता है। यदि मान हाँ है, तो क्लाइंट ApplicationIntent=readonly के बिना कनेक्ट होने पर भी केवल-पढ़ने के लिए पहुँच प्राप्त करने में सक्षम होंगे ।
  • प्रतिबद्ध करने के लिए आवश्यक सिंक्रनाइज़ सेकेंडरी लेन-देन समाप्त करने के लिए सिंक्रनाइज़ किए गए द्वितीयक प्रतिकृतियों की संख्या है। इसे प्रतिकृतियों की संख्या के आधार पर सेट करें, मैं इसे 1 पर सेट करूंगा।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

समापन बिंदु . में कुछ भी संपादित न करें टैब।

बैकअप प्राथमिकताएं . में टैब, आप चुन सकते हैं कि बैकअप कहाँ से बनाया जाएगा। डिफ़ॉल्ट सेटिंग को यहां छोड़ दें:माध्यमिक को प्राथमिकता दें

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

उपलब्धता समूह श्रोता का नाम, पोर्ट और आईपी पता निर्दिष्ट करें।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

केवल-पढ़ने के लिए रूटिंग को छोड़ दें सेटिंग्स अपरिवर्तित।

प्रतिकृति सिंक्रनाइज़ेशन प्रकार का चयन करें। मैं पहला आइटम छोड़ता हूं (स्वचालित सीडिंग ) चेक किया गया।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

फिर आपकी सेटिंग्स को सत्यापित किया जाना चाहिए। यदि कोई त्रुटि नहीं है, तो परिवर्तनों को लागू करने के लिए समाप्त पर क्लिक करें।

मेरे मामले में, सभी परीक्षण सफल रहे हैं, लेकिन स्थापना के बाद परिणाम चरण में, विज़ार्ड ने उपलब्धता समूह श्रोता बनाने में त्रुटि दिखाई। EVENTID 1194 त्रुटि क्लस्टर इवेंट लॉग में दिखाई दी:

Cluster network name resource failed to create its associated computer object in the domain.

इसका मतलब है कि क्लस्टर के पास श्रोता बनाने के लिए पर्याप्त अनुमति नहीं है। दस्तावेज़ीकरण बताता है कि यह आपके क्लस्टर के ऑब्जेक्ट के लिए कंप्यूटर-प्रकार के ऑब्जेक्ट बनाने का विशेषाधिकार देने के लिए पर्याप्त है। AD में विशेषाधिकार प्रतिनिधिमंडल का उपयोग करके इसे करना आसान है (या एक त्वरित, लेकिन असुरक्षित संस्करण अस्थायी रूप से CLUSTERAG$ ऑब्जेक्ट को डोमेन व्यवस्थापक समूह में जोड़ना है)।

उपलब्धता समूह में हमेशा-चालू और निम्न SQL प्रदर्शन समस्याओं का निदान करते समय, आपको मानक SQL सर्वर निदान उपकरण का उपयोग करने के अलावा Windows क्लस्टर लॉग का अच्छी तरह से अध्ययन करना चाहिए।

चूंकि मैंने उपलब्धता समूह बनाया है, लेकिन श्रोता नहीं, मैंने इसे मैन्युअल रूप से जोड़ा है। अपने उपलब्धता समूह के लिए संदर्भ मेनू खोलें और श्रोता जोड़ें click पर क्लिक करें ।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

श्रोता का IP पता, पोर्ट और DNS नाम निर्दिष्ट करें।

सुनिश्चित करें कि श्रोता उपलब्धता समूह श्रोताओं . में दिखाई दिया है आपके हमेशा चालू समूह का अनुभाग.

इस प्रकार, आपने हमेशा उपलब्धता समूह के बुनियादी विन्यास को पूरा कर लिया है।

SQL सर्वर हमेशा चालू रहता है:संचालन क्षमता जांच और विफलता

आइए उपलब्धता समूह डैशबोर्ड (डैशबोर्ड दिखाएं) पर एक नज़र डालें।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

यह ठीक है, समूह बना दिया गया है और काम कर रहा है।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

आइए नोड 2 को मैन्युअल रूप से प्राथमिक उदाहरण बनाने का प्रयास करें। उपलब्धता समूह पर राइट-क्लिक करें और विफलता . चुनें ।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

विफलता तत्परता में मान नोट करें . कोई डेटा हानि नहीं इसका मतलब है कि कोई डेटा नष्ट नहीं होगा।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

नोड2 से कनेक्ट करें।

समाप्त क्लिक करें।

सुनिश्चित करें कि उपलब्धता समूह में नोड 2 प्राथमिक प्रतिकृति (प्राथमिक उदाहरण) बन गया है।

सुनिश्चित करें कि श्रोता सही ढंग से काम कर रहा है। SSMS में श्रोता DNS नाम और अल्पविराम द्वारा अलग किए गए पोर्ट को निर्दिष्ट करें:ag1-listener-1,1445

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

सरल इंसर्ट चलाएँ, SQL क्वेरीज़ को अपने डेटाबेस में चुनें और अपडेट करें।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

फिर प्राथमिक प्रतिकृति की स्वचालित विफलता की जाँच करें। TESTNODE2 पर बस sqlservr.exe प्रक्रिया को समाप्त करें।

शेष नोड पर उपलब्धता समूह की स्थिति जांचें:TESTNODE1\NODE1.

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

चूंकि testnode2\node2 अनुपलब्ध हो गया है, क्लस्टर ने स्वचालित रूप से testnode1\node1 स्थिति को प्राथमिक में बदल दिया है।

श्रोता की स्थिति जांचें क्योंकि क्लाइंट इसे कनेक्ट करने के लिए उपयोग करेंगे।

मेरे मामले में, मैं श्रोता से सफलतापूर्वक जुड़ा, लेकिन डेटाबेस तक पहुँचने का प्रयास करते समय, मुझे यह त्रुटि मिली:

Unable to access database 'TestDatabase' because it lacks a quorum of nodes for high availability. Try the operation again later.

प्रतिबद्ध करने के लिए आवश्यक सिंक्रनाइज़ सेकेंडरी . के कारण त्रुटि दिखाई दी विकल्प। चूंकि हम इसे कॉन्फ़िगर करते समय इसका मान 1 पर सेट करते हैं, हमेशा चालू इसे डेटाबेस से कनेक्ट करने की अनुमति नहीं देता है, क्योंकि हमारे पास केवल एक प्राथमिक प्रतिकृति शेष है।

SQL सर्वर पर हमेशा-चालू उच्च उपलब्धता समूहों को कॉन्फ़िगर करना

मान को 0 . पर सेट करें और क्वेरी को फिर से चलाने का प्रयास करें।

Testnode1 ने प्राथमिक उदाहरण स्थिति को बनाए रखा, जबकि testnode2 एक द्वितीयक स्थिति बन गया। जब कंप्यूटर चालू होने के बाद testnode2 को सफलतापूर्वक सिंक्रोनाइज़ किया गया था, तब हमने testnode1 पर डेटा बदल दिया था।

इसलिए, हमने सुनिश्चित किया है कि सब कुछ सही ढंग से काम करता है और गंभीर विफलता के मामले में डेटा पढ़ने/लिखने के लिए उपलब्ध होगा।

आप हमेशा उपलब्धता समूहों पर आसानी से कॉन्फ़िगर कर सकते हैं। यदि आप SQL सर्वर-आधारित फ़ेलओवर समाधान बनाना चाहते हैं, तो उपलब्धता समूह इसे अच्छी तरह से प्रबंधित करेंगे।


  1. उच्च प्रदर्शन NGINX और PHP-FPM वेब सर्वर को कॉन्फ़िगर करना

    PHP-FPM (फास्ट प्रोसेस मैनेजर) PHP स्क्रिप्ट चलाने के लिए FastCGI का एक अलग कार्यान्वयन है। आप LAMP स्टैक (NGINX, Apache और mod_php मॉड्यूल) की तुलना में अपनी वेबसाइटों के लिए एक तेज़ और उच्च प्रदर्शन वेब सर्वर बनाने के लिए NGINX वेब सर्वर (स्थिर प्रसंस्करण) और PHP-FPM के संयोजन का उपयोग कर सकते हैं

  1. उच्च उपलब्धता - एमएस एसक्यूएल सर्वर की उपलब्धता

    उच्च उपलब्धता (HA) एक समाधान/प्रक्रिया/तकनीक है जो यह सुनिश्चित करती है कि एप्लिकेशन/डेटाबेस किसी भी स्थिति में 24/7 पहुंच योग्य हों, चाहे वह इरादा हो या अप्रत्याशित। मूल रूप से, MS SQL सर्वर में डेटाबेस उपलब्धता सेट करने के लिए 5 विकल्प हैं। प्रतिकृति लॉगिन शिपिंग प्रतिबिंब क्लस्टरिंग हमेशा उपलब्ध

  1. उच्च उपलब्धता वास्तुकला ध्वस्त

    उच्च उपलब्धता आर्किटेक्चर क्या है? एक उच्च उपलब्ध आर्किटेक्चर तब होता है जब कई अलग-अलग घटक, मॉड्यूल या सेवाएं होती हैं जो इष्टतम प्रदर्शन को बनाए रखने के लिए एक साथ काम करती हैं, भले ही पीक-टाइम लोड कुछ भी हों। अपने शुद्धतम अर्थों में, यह प्रणाली व्यवसायों को एक निश्चित अवधि में बिना असफलता के ल