SQL सर्वर के क्रैश लचीलापन में सुधार किया जा सकता है?


20

हमारे पास SQL ​​सर्वर (2008 SP4 और 2016 SP1) चलाने वाले पीसी हैं जो नियमित रूप से बिजली खो देते हैं। जाहिर है, यह कभी-कभी SQL सर्वर डेटाबेस के (सूचकांक) भ्रष्टाचार की ओर जाता है, जिसे हमें बाद में पुनर्स्थापित करने की आवश्यकता होती है।

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


पृष्ठभूमि: "पीसी" एक विंडोज टैबलेट है जो एक फोर्कलिफ्ट पर मुहिम की जाती है। जब उपयोगकर्ता फोर्कलिफ्ट को बंद कर देता है, तो टेबलेट शक्ति खो देता है। हमने फोर्कलिफ्ट को बंद करने से पहले विंडोज को ठीक से बंद करने के लिए उपयोगकर्ताओं को सिखाने की कोशिश की है, लेकिन असफल रहा (शायद इसलिए कि इसे ज्यादातर समय "काम" बंद कर देता है)। हम वर्तमान में अन्य विकल्पों की भी जांच कर रहे हैं, जैसे कि एक यूपीएस जो बिजली हानि पर टैबलेट को बंद करने का संकेत देता है।

जवाबों:


28

मुझे पता है कि SQL सर्वर ऐसे परिदृश्यों के लिए डिज़ाइन नहीं किया गया है और सही समाधान बिजली नुकसान के कारण को ठीक करने के लिए है […]

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

फिर भी, क्या एसक्यूएल सर्वर में कोई ट्यूनिंग विकल्प हैं जो मैं बिजली नुकसान पर डेटाबेस भ्रष्टाचार के जोखिम को कम करने के लिए सेट कर सकता हूं?

नहीं, SQL सर्वर वह कर रहा है जो उसे करना चाहिए। आपको या तो SQL सर्वर के बाहर दिखना चाहिए (ड्राइव कैशिंग के लिए विंडो सेटिंग्स [जिसे SQL बंद करना चाहता है लेकिन हम आपको बाध्य नहीं कर सकते], हार्डवेयर / फर्मवेयर अपडेट इत्यादि) या जैसा कि एरिक ने कहा है, अपेक्षाकृत के लिए बाहरी बिजली की आपूर्ति खरीदें सस्ते जो लक्षणों को हल कर सकते हैं (वास्तविक मुद्दा शायद किसी प्रकार का कैशिंग या बैटरी समर्थित लेखन है जो वास्तव में समर्थित नहीं है)।



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

26

यदि टैबलेट में काम करने वाली बैटरी है , तो बैटरी की शक्ति कम होने पर आप विंडोज को कॉन्फ़िगर कर सकते हैं ।

यदि टैबलेट में गैर-कार्यशील बैटरी है , तो बैटरी को बदलने पर विचार करें। (मेरे पास इस तरह के लैपटॉप हैं - आपको आश्चर्य होगा कि ईबे पर सस्ती प्रतिस्थापन बैटरी कैसे हो सकती हैं। वे ओईएम के साथ-साथ काम नहीं करते हैं, लेकिन हे, इस स्थिति में कुछ भी नहीं से बेहतर है।)

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

यदि उनमें से कोई भी एक विकल्प नहीं है, तो आप भाग्य से बाहर हैं। यह एक पुराना श्वेत पत्र है, लेकिन Microsoft से SQL Server 2000 I / O मूल बातें मूल रूप से बताती है कि आपको एक I / O सबसिस्टम चाहिए, जो पावर आउटेज को इनायत से संभाल सकता है।

ऐसे विकल्प हैं जिनका उपयोग आप जोखिम बढ़ाने के लिए कर सकते हैं - जैसे विलंबित स्थायित्व या मेमोरी-ओनली (नॉन-ड्यूरेबल) टेबल - लेकिन डिफ़ॉल्ट रूप से, SQL सर्वर पहले से ही लेन-देन लॉग में हर लिखने के साथ विश्वसनीयता को अधिकतम करने के लिए अपनी पूरी कोशिश कर रहा है। यदि रैंडम लॉग आउट की भी गारंटी नहीं दी जा सकती है, तो यूपीएस बैटरी पर $ 100 खर्च करें।


6

मान लें कि धब्बेदार वायरलेस कनेक्शन के कारण आपके पास सर्वर के बजाय फोर्कलिफ्ट पर एक स्थानीय DB है? स्पष्ट रूप से फोर्कलिफ्ट से एसक्यूएल प्राप्त करना बेहतर समाधान होगा।

वैसे भी, जैसा ब्रेंट ने सुझाव दिया है, बैटरी की शक्ति या कुछ समान मानदंडों पर एक्स मिनट के बाद अपने आप से टेबलेट को पावर डाउन करने के लिए सेट करें।

असफल होना, एक छोटा यूपीएस जो एक सामान्य शटडाउन शुरू कर सकता है, शायद उस मामले में आपका सबसे अच्छा दांव होगा। उन चीजों के लिए उपयोगकर्ताओं पर भरोसा करना जो विफल होने के लिए कह रहे हैं।


1
"मान लें कि धब्बेदार वायरलेस कनेक्शन के कारण आपको सर्वर के बजाय फोर्कलिफ्ट पर एक स्थानीय DB है?" हां, बिल्कुल ऐसा ही है। एप्लिकेशन स्थानीय DBs और सर्वर DB को सिंक में रखता है, जो फोर्कलिफ्ट्स को WLAN द्वारा कवर किए गए क्षेत्र को छोड़ने की अनुमति देता है और अभी भी एप्लिकेशन का उपयोग करता है।
हेनजी

2

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

यही कारण है कि आपको ड्राइवर / फर्मवेयर / हार्डवेयर निर्माता के साथ जांच करने की आवश्यकता है।

यह भी लिखें कि ऑर्डरिंग को सभी लेयर्स पर गारंटीकृत किया जाना चाहिए ताकि इसे भी जांचा जा सके।

यहां तक ​​कि बैटरी समर्थित कैश विफल हो सकते हैं उदाहरण के लिए न्यूयॉर्क में तूफान के दौरान कुछ डेटा केंद्र दिनों के लिए सुलभ नहीं थे और बैटरी खत्म हो गई होगी, संभावित रूप से सराहनीय लिखते हैं

https://www.postgresql.org/docs/devel/static/wal-reliability.html

https://brad.livejournal.com/2116715.html

http://rhaas.blogspot.com/2010/10/wal-reliability.html?m=1


1

अन्य उत्तरों पर विस्तार करने के लिए:

सबसे पहले, यदि संभव हो तो फोर्कलिफ्ट से SQL प्राप्त करने का प्रयास करें। लगता है कि बिजली की कमी से उबरना बुरा है, लैपटॉप के 7,000+ एलबीएस पर चलने के बाद इसे करने की कोशिश करें। उस पर गोदाम गतिविधि के घंटे के साथ, समर्थित नहीं ...

दूसरा, बैटरी पर एक्स समय के बाद लैपटॉप को ऑटो-शटडाउन करने के लिए एक तंत्र वैसे भी होना चाहिए।

तीसरा, फोर्कलिफ्ट पर नॉन-स्विच्ड पावर फीड में लैपटॉप कनेक्ट करना एक विकल्प होगा? सुरक्षा नियमों (पर्यावरण को फोर्कलिफ्ट कुंजी के साथ सब कुछ बंद करने की आवश्यकता हो सकती है) पर विचार करना सुनिश्चित करें, और मशीन बैटरी को खत्म करने से बचने के लिए फोर्कलिफ्ट कब (वीकेंड और छुट्टियों के दौरान) का उपयोग करता है।

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