RESTORING स्थिति में डेटाबेस क्यों अटका हुआ है, इसके मूल कारण की पहचान करें


10

मुझे पता है कि ऐसे प्रश्न हैं जो डेटाबेस के RESTORINGराज्य में अटक जाने के मुद्दे को हल करते हैं और उन समाधानों का उपयोग मैन्युअल रूप से डेटाबेस को ऑनलाइन लाने के लिए करते हैं, लेकिन मेरा परिदृश्य कुछ अलग है।

मेरे पास Powershell स्क्रिप्ट का उपयोग करके एक स्वचालित पुनर्स्थापना है जो उत्पादन की एक प्रतिलिपि को एक DEV उदाहरण में पुनर्स्थापित करता है। स्क्रिप्ट लगभग एक वर्ष के लिए अपरिवर्तित हैं और कभी-कभी पुनर्स्थापना प्रक्रिया समाप्त हो जाती है, लेकिन बहाल डेटाबेस RESTORINGराज्य में अटक जाता है (कभी-कभी स्क्रिप्ट ठीक काम करती है, कभी-कभी यह इस तरह विफल हो जाती है)।

हर बार अगर मैं मैन्युअल रूप से काम करने वाली प्रक्रिया को फिर से चलाता हूं या अगर मैं SSMS के यूजर इंटरफेस से या टी-एसक्यूएल के माध्यम से डेटाबेस को मैन्युअल रूप से पुनर्स्थापित करता हूं तो यह बिना किसी समस्या के पूरा हो जाता है।

मुझे ऐसे उत्तर मिले हैं, जो CHECKDBबहाल किए गए डीबी पर चलने की सिफारिश करते हैं , लेकिन इस समस्या के कारण के रूप में कुछ भी नहीं निकला।

चूंकि पुनर्स्थापना स्क्रिप्ट डेटाबेस के पूर्ण बैकअप को पुनर्स्थापित करती है और एक "WITH RECOVERY"विकल्प का उपयोग करती है जो मैं यह पता लगाने की कोशिश कर रहा हूं कि पुनर्स्थापना प्रक्रिया को रोकना क्या हो सकता है, हालांकि मैं वास्तव में इसका उपयोग करके पुनर्स्थापित कर रहा हूं "WITH RECOVERY"

किसी भी सुझाव की वास्तव में सराहना की जाती है क्योंकि मैं यह समझने की कोशिश कर रहा हूं कि यह समय-समय पर क्यों हो रहा है।

मैं लक्षणों के उपचार के बजाय समस्या के मूल कारण को हल करना चाहूंगा, जो कि डीबी को एक बार फिर से मैन्युअल रूप से बहाल करना है।

अपडेट करें:

@Brent के रूप में Github Gist की सिफारिश की - यहाँ


1
आप SQL सर्वर लॉग और इवेंट व्यूअर से उत्तर प्राप्त कर सकते हैं, क्या आपने जाँच की थी? क्या किसी तरह से स्पेस इश्यू हो रहा है क्योंकि इससे रिस्टोरिंग स्टेट अटक सकता है। क्या आप पुनर्स्थापित करने से पहले बैकअप अखंडता को सत्यापित करते हैं? आपका स्टोरेज सबसिस्टम कैसा है
Shanky

@ शैंकी मैं उन पर एक नज़र डालूंगा, हालांकि मेरे पास उस जानकारी तक सीधी पहुंच नहीं है (मुझे अपने वरिष्ठ व्यवस्थापक से परिचित होने की आवश्यकता है)। बैकअप अखंडता को बैकअप करने और डिस्क पर लिखते समय दोनों की जांच करने के लिए सेट किया गया है।
राडू Gheorghiu

1
SQL सर्वर त्रुटि का क्या कहना है? चलाने की कोशिश करें EXEC sys.xp_readerrorlog 0,1;- पुनर्स्थापना ऑपरेशन के समय के आसपास के संदेशों की तलाश करें।
मैक्स वर्नोन

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

जवाबों:


8

ओकाम का रेजर स्पष्ट के साथ शुरू होने का सुझाव देता है:

यदि आपकी स्क्रिप्ट कभी-कभी स्थिति को पुनर्स्थापित करने में डेटाबेस छोड़ देती है, तो स्क्रिप्ट को डीबग करें।

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

यदि आप ऐसा नहीं करना चाहते हैं, तो पुनर्स्थापना घटनाओं को ट्रैक करने के लिए एक प्रोइलर या विस्तारित ईवेंट ट्रेस चलाने का प्रयास करें, लेकिन चेतावनी दी जाए - यह दिखने में जितना मुश्किल है उतना ही कठिन है। (उस पोस्ट पर टिप्पणियों को और भी अधिक पाठक विचारों के लिए पढ़ें जो उन्होंने कोशिश की और असफल रहे।)


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