2009-09-23 26 views
11

मैंने कल अपनी देव मशीन पर 35 जीबी डेटाबेस बहाल किया और यह सब सुबह ठीक हो रहा था जब मेरा क्लाइंट ऐप कनेक्ट नहीं हो सका। इसलिए मैंने 'रिकवरी' डेटाबेस को खोजने के लिए एसक्यूएल प्रबंधन स्टूडियो खोला।एसक्यूएल सर्वर 2005 डाटाबेस 'रिकवरी'

मुझे असामान्य लेनदेन के साथ आमतौर पर कुछ करने के अलावा इस बारे में एक बड़ी राशि नहीं पता है। अब से मुझे पता है कि कोई असामान्य लेनदेन नहीं है, यह कुछ और होना चाहिए। तो सबसे पहले, मैं जानना चाहता हूं कि यह किस स्थिति में हो सकता है। दूसरा, जब यह चल रहा है, तो मैं काम नहीं कर सकता, इसलिए अगर वसूली को रोकना, इसे तेज करना या कम से कम यह पता लगाना है कि यह कितना समय होगा जिससे मदद मिलेगी।

+0

मेरे अनुभव में मैंने सर्वर को क्रैश किया (ओएस त्रुटि या बिजली बाधा से) बड़े डेटाबेस (लगभग 100 जीबी) के लिए दुर्घटनाग्रस्त हो गया। क्या आपको ईवेंट व्यूअर में कुछ त्रुटि या चेतावनी मिली? वसूली को रोकने का एकमात्र तरीका एसक्यूएल सर्वर बंद करना है, लेकिन जब सर्वर पुनरारंभ होता है ... वसूली फिर से शुरू होती है! –

उत्तर

14

रिकवरी चालू होने पर SQL को बंद न करें। इसे खत्म करने दें। त्रुटि लॉग जांचें। यदि यह खत्म नहीं होता है, तो बैकअप से पुनर्स्थापित करें।

+1

इसे भी देखें: http://www.sqlskills.com/BLOGS/PAUL/category/Bad-Advice.aspx –

+0

अच्छी तरह से यह वास्तव में एक उत्तर नहीं है, लेकिन यह मुझे लगता है कि यह सबसे अच्छा है। अजीब बात यह है कि मैंने बस यही किया और सीधे 'डीबीसीसी चेकडब' चलाया और बिल्कुल कुछ भी गलत नहीं था। तब से नहीं हुआ है। कौन जानता है कि क्या हुआ! – Stimul8d

+2

यह तब कुछ भी हो सकता था। वसूली आमतौर पर तब होती है जब एमएसएसएलएल सेवा सही ढंग से समाप्त नहीं होती है, और डेटाबेस चेकपॉइंट नहीं होते हैं, इसलिए सभी लॉग फिर से चलाए जाते हैं। यदि आपके पास मंच पर एक विशेष रूप से लंबे समय से चलने वाला लेनदेन था, तो सर्वर की मृत्यु हो गई, इसे पुन: संसाधित करना होगा। –

11

आप यह पता लगा सकते हैं कि ईवेंट व्यूअर को देखकर कितना समय लगेगा। विंडोज लॉग पर एप्लिकेशन सेक्शन में आपको इवेंट आईडी 3450 के साथ MSSQLSERVER से सूचना संदेश प्राप्त करना चाहिए जो आपको बता रहा है कि यह क्या हो रहा है। की तरह कुछ:

डेटाबेस 'XYZ' की वसूली 10% पूरा (लगभग 123456 सेकंड रहने के) है आदि आदि

मुझे डर है कि मैं इसे कैसे को रोकने के लिए (अभी तक) नहीं जानता हूँ।

+1

एक पूर्ण उत्तर नहीं है लेकिन सभी एक ही उपयोगी हैं। धन्यवाद :-) – Stimul8d

+3

भी, रिकवरी स्थिति देखने के लिए इस स्क्रिप्ट को चला सकता है: http://timlaqua.com/2009/09/determining-how-long-a-डेटा- will-be-in-recovery-sql- सर्वर- 2008 / – nanonerd