SQL सर्वर हमेशाऑनलाइन डेटाबेस अपग्रेड करने के बाद नहीं सिंक्रोनाइज़िंग / इन रिकवरी मोड में अटक गया। त्रुटि: डेटाबेस नहीं खोल सकता '...' संस्करण 782


10

SQL Server 2014 SP1 (12.0.4422.0) से SQL Server 2016 CTP 3.2 (13.0.900.73) में अपग्रेड का परीक्षण करते समय मैं अनुशंसित अद्यतन प्रक्रिया का पालन कर रहा था और एक समस्या में भाग गया, जहां डेटाबेस विफल होने के बाद पुराने प्राथमिक पर शुरू नहीं होगा अद्यतन माध्यमिक के लिए। हमारा सेटअप एक प्राथमिक प्रतिकृति और एक एकल माध्यमिक प्रतिकृति है, और मेरे द्वारा पूर्ण किए गए चरण थे:

  1. सिंक्रोनस-कम सेकेंडरी रेप्लिका पर स्वचालित फेलओवर निकालें
  2. नए संस्करण के लिए द्वितीयक सर्वर इंस्टेंसेस को अपग्रेड करें
  3. मैन्युअल रूप से माध्यमिक प्रतिकृति पर विफल
  4. सत्यापित करें कि डेटाबेस नए प्राथमिक प्रतिकृति पर ऑनलाइन हैं
  5. पिछले-प्राथमिक प्रतिकृति को नए संस्करण में अपग्रेड करें

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

डेटाबेस ... पहुँच योग्य नहीं है। (ObjectExplorer)

मैंने देखा SQL सर्वर लॉग के माध्यम से जाँच कर रहा है

डेटाबेस को नहीं खोल सकता '...' संस्करण 782. डेटाबेस को नवीनतम संस्करण में अपग्रेड करें।

मास्टर को छोड़कर..साइड डेटाबेस डेटाबेस से पता चला कि यह वास्तव में एक पुराना संस्करण था और अपग्रेड के दौरान अपडेट नहीं किया गया था:

SSMS sysdat डेटाबेस संस्करण

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

मैंने डेटाबेस को अलग करने या अपडेट करने के लिए उन्हें "किक" करने के लिए ऑफ़लाइन सेट करने के लिए टीएसक्यूएल का उपयोग करने की कोशिश की, लेकिन जब से वे एसक्यूएल एजी का हिस्सा हैं, तो वे कमांड काम नहीं करते हैं।

SQL एजी का हिस्सा होने पर मैं डेटाबेस को नवीनतम संस्करण में कैसे अपग्रेड कर सकता हूं?

जवाबों:


10

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

यहाँ "पैच" तय करने के बाद एजी डेटाबेस का एक स्क्रीनशॉट है, लेकिन परीक्षण डेटाबेस को ठीक करने से पहले:

SQL AG पर डेटा मूवमेंट फिर से शुरू करें

ध्यान दें कि आप एक ही समय में कई डेटाबेस पर प्रतिकृति फिर से शुरू करने के लिए माध्यमिक पर TSQL का उपयोग कर सकते हैं:

ALTER DATABASE [Patch] SET HADR RESUME;
ALTER DATABASE [test] SET HADR RESUME;
GO

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