उपलब्धता समूह डेटाबेस नहीं सिंक्रनाइज़ / पुनर्प्राप्ति लंबित मोड में फंस गया


12

SQL Server 2014 SP1 (12.0.4422.0) उदाहरण में स्टोरेज को अपग्रेड करते समय हम एक ऐसे मुद्दे पर भाग गए जहां दो डेटाबेस SQL ​​सर्वर को पुनरारंभ करने के बाद द्वितीयक पर शुरू नहीं होंगे। जब हम नया (बड़ा) SSDs स्थापित करते हैं और नए वॉल्यूम पर डेटा फ़ाइलों की प्रतिलिपि बनाते समय सर्वर कुछ घंटों के लिए ऑफ़लाइन हो जाता था। जब हमने SQL सर्वर को फिर से शुरू किया, लेकिन दो डेटाबेस फिर से सिंक्रनाइज़ होने लगे। अन्य दो को SSMS में सिंक्रोनाइज़िंग / रिकवरी पेंडिंग के रूप में प्रदर्शित नहीं किया गया था ।

SSMS सिंकिंग / रिकवरी पेंडिंग नहीं है

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

उपलब्धता समूह, उपलब्धता डेटाबेस

और यहां तक ​​कि डेटा आंदोलन को निलंबित करने की कोशिश में एक त्रुटि संदेश उत्पन्न हुआ:

डेटाबेस 'StackExchange.Bycycles.Meta' में डेटा आंदोलन को स्थगित करने में विफल, जो उपलब्धता समूह 'SENetwork_AG' में उपलब्धता प्रतिकृति 'n-sql03' पर रहता है। (Microsoft.SqlServer.Smo)

अतिरिक्त जानकारी: एक लेनदेन-SQL कथन या बैच निष्पादित करते समय एक अपवाद उत्पन्न हुआ। (Microsoft.SqlServer.ConnectionInfo)

डेटाबेस 'StackExchange.Bycycles.Meta' को दुर्गम फ़ाइलों या अपर्याप्त मेमोरी या डिस्क स्थान के कारण नहीं खोला जा सकता है। विवरण के लिए SQL सर्वर त्रुटि लॉग देखें। (Microsoft Sql सर्वर, त्रुटि: 945)

मैंने जाँच की और फाइलें मौजूद थीं और उनके पास कोई अनुमति मुद्दे नहीं थे। मैंने प्रबंधन के तहत SSMS में SQL सर्वर लॉग की भी जाँच की, लेकिन दोनों डेटाबेस के साथ लंबित पुनर्प्राप्ति या किसी भी समस्या के बारे में कुछ नहीं देखा।

मदद के लिए खोज करने पर मुझे दो अलग-अलग लेख मिले, जिनमें कहा गया था कि डेटाबेस को पुनर्स्थापित करने की आवश्यकता होगी।

क्या रिकवरी पेंडिंग में किसी डेटाबेस के अटकने पर माध्यमिक पर डेटा प्रतिकृति को फिर से शुरू करने का कोई तरीका है?

जवाबों:


16

चूंकि सर्वर कुछ समय के लिए ऑफ़लाइन था, हमने सोचा कि यह प्राथमिक की पुनर्प्राप्ति विंडो के बाहर चला गया हो सकता है। हमने डेटाबेस पर नवीनतम लेन-देन लॉग को लागू करने का प्रयास करने का फैसला किया , यह देखने के लिए कि क्या पुनर्प्राप्ति प्रक्रिया को किक-स्टार्ट करेगा:

-- Remove database from Availability Group:    
Alter Database [StackExchange.Bicycles.Meta] SET HADR OFF;

-- Apply t-logs to catch up. This can be done manually in SSMS or via:
RESTORE LOG [StackExchange.Bicycles.Meta] FROM DISK = '\\ny-back01\backups\SQL\_Trans\SENetwork_AG\StackExchange.Bicycles.Meta\StackExchange.Bicycles.Meta_LOG_20160217_033201.trn' WITH NORECOVERY;

-- Re-join database to availability group
ALTER DATABASE [StackExchange.Bicycles.Meta] SET HADR AVAILABILITY GROUP = [SENetwork_AG];
ALTER DATABASE [StackExchange.Bicycles.Meta] SET HADR RESUME;

दोनों डेटाबेस के लिए द्वितीयक सर्वर पर ऊपर चल रहे Afer वे फिर से सिंक्रनाइज़ करना शुरू करने में सक्षम थे।

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


1

आप एएजी से डीबी हटा सकते हैं, प्राथमिक नोड पर एक पूर्ण बैकअप और लेनदेन बैकअप बना सकते हैं, इन दो बैकअप को द्वितीयक नोड के डीबी पर पुनर्स्थापित करें, फिर डीएजी को एएजी में फिर से जोड़ें। इस समय यह संकेत दे सकता है कि माध्यमिक नोड DB सिंक्रनाइज़ नहीं हो रहा है, लेकिन सिर्फ वही कर रहा है जो दूसरे उत्तर में सुझाया गया है (जिस तरह से इसे दंडित किया गया था -2), मेरा मतलब है कि माध्यमिक नोड को प्राथमिक में ले जाना, यह इसे ठीक कर देगा।


-2

अगली बार, प्राथमिक को 'सिंक्रनाइज़ नहीं कर रहे' माध्यमिक और फिर से वापस करने में असफल होने का प्रयास करें। माध्यमिक को अब सिंक्रनाइज़ किया जाना चाहिए।


3
यह एक भयानक सुझाव है।
धनु

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