SQL सर्वर का स्कीमा इतिहास बदलता है हम उन डेटाबेस के नाम को पहचान सकते हैं जिन्हें SQL सर्वर से हटा दिया गया था। एक बड़े SQL सर्वर वातावरण में, प्रत्येक SQL सर्वर मामले के प्रत्येक स्कीमा परिवर्तन इतिहास के साथ इंटरफ़ेस करना एक अत्यंत परेशानी भरा कार्य है। इस ब्लॉग में, हम उन चरणों पर एक नज़र डालेंगे जिन्हें आप SQL सर्वर में तेज़ी से हटाए गए डेटाबेस को ऑटो-ट्रैक करने के लिए ट्रेस कर सकते हैं।
<ब्लॉककोट>महत्वपूर्ण समाधान: क्या आप SQL सर्वर से हटाए गए डेटाबेस घटकों को पुनर्प्राप्त करने में समस्याओं का सामना कर रहे हैं यदि हाँ तो SQL सर्वर पर हटाए गए डेटाबेस ऑब्जेक्ट को लाइव निर्यात करने के लिए SQL मरम्मत उपकरण सॉफ़्टवेयर का प्रयास करें।
दो अनूठी तकनीकें हैं जिनके द्वारा कोई बिना अधिक प्रयास के यह ट्रैक कर सकता है कि SQL सर्वर में डेटाबेस को किसने हटाया है। मुख्य तकनीक अंतर्निहित स्कीमा परिवर्तन इतिहास रिपोर्ट का उपयोग कर रही है। बाद की तकनीक SQL सर्वर डिफ़ॉल्ट ट्रेस को एक तालिका में लोड करने के लिए है यह देखने के लिए कि डेटाबेस को किसने हटाया है।
विधियां SQL सर्वर में हटाए गए डेटाबेस को ट्रैक करें
<मजबूत>1. SQL सर्वर स्कीमा परिवर्तन इतिहास रिपोर्ट का उपयोग करके डेटाबेस को ट्रैक करें
- SQL सर्वर प्रबंधन स्टूडियो खोलें और SQL सर्वर इंस्टेंस से कनेक्ट करें।
- SQL सर्वर इंस्टेंस पर राइट-क्लिक करें और रिपोर्ट चुनें -> मानक रिपोर्ट -> स्कीमा परिवर्तन इतिहास।
- फिर, योजना परिवर्तन इतिहास रिपोर्ट खुल जाएगा, जिसमें डेटाबेस को हटाए जाने के समय के साथ-साथ SQL सर्वर डेटाबेस को किसने डिलीट किया, इस बारे में अंतर्दृष्टि होगी।
2.डिफ़ॉल्ट ट्रेस फ़ाइलों का उपयोग करके डेटाबेस को ट्रैक करें
SQL सर्वर डिफ़ॉल्ट ट्रेस फ़ाइल SQL सर्वर इंस्टेंस पर क्या हो रहा है, यह समझने के लिए DBA को असाधारण रूप से सहायक डेटा देती है।
SQL सर्वर में ट्रेस फ़ाइल के डिफ़ॉल्ट पथ का पता लगाने के लिए नीचे दी गई क्वेरी को निष्पादित करें।
चुनें
पथ AS [डिफ़ॉल्ट ट्रेस फ़ाइल]
, max_size AS [ट्रेस फ़ाइल का अधिकतम फ़ाइल आकार]
,max_files AS [ट्रेस फ़ाइलों की अधिकतम संख्या]
, start_time AS [प्रारंभ समय]
,last_event_time AS [आखिरी इवेंट समय]
sys.traces से जहां is_default =1
जाओ
SQL सर्वर ट्रेस फ़ाइल को SQL सर्वर तालिका में लोड करने के लिए चरण दर चरण निर्देश
नोट: दूषित LDF फ़ाइलों से डेटाबेस पुनर्प्राप्त करने के लिए SQL लॉग एनालाइज़र सॉफ़्टवेयर आज़माएँ।
SQL सर्वर में क्लाइंट डेटाबेस को किसने डिलीट किया, इसके लिए महत्वपूर्ण डेटा को पढ़ने के लिए ट्रांजिटरी टेबल में डिफ़ॉल्ट ट्रेस फ़ाइल सामग्री को लोड करने के लिए नीचे की स्क्रिप्ट निष्पादित करें। यदि आपको सबसे हालिया ट्रेस फ़ाइल में महत्वपूर्ण डेटा नहीं मिलता है, तो उस समय डेटा को एक्सप्लोर करने के लिए सर्वर पर सभी पहुंच योग्य ट्रेस फ़ाइलों से डेटा लोड करने के लिए निर्धारित किया जाता है।
tempdb का उपयोग करें
जाओ
अगर OBJECT_ID('dbo.TraceTable', 'U') खाली नहीं है
ड्रॉप टेबल dbo.TraceTable;
ट्रेसटेबल में *चुनें
से ::fn_trace_gettable
('G:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\Log\log_12.trc', डिफ़ॉल्ट)
जाओ
चुनें
डेटाबेस आईडी
, डेटाबेस का नाम
, लॉगिन नाम
,होस्टनाम
, एप्लिकेशन का नाम
, प्रारंभ समय
, मामला
जब EventClass =46 तब 'डेटाबेस बनाया गया'
जब EventClass =47 तब 'डेटाबेस गिरा दिया गया'
अन्यथा 'कोई नहीं'
END AS EventType
tempdb.dbo.TraceTable से
जहां DatabaseName ='MyTechMantra'
और (इवेंट क्लास =46 /* इवेंट क्लास 46 ऑब्जेक्ट को संदर्भित करता है:बनाया गया */
या EventClass =47) /* इवेंट क्लास 47 ऑब्जेक्ट को संदर्भित करता है:हटाया गया */
जाओ
रैप अप करें
इस ब्लॉग में, हमने देखा है कि कोई इनबिल्ट SQL सर्वर स्कीमा परिवर्तन इतिहास रिपोर्ट की सहायता से या डिफ़ॉल्ट ट्रेस फ़ाइलों का उपयोग करके SQL सर्वर में हटाए गए डेटाबेस को कितनी प्रभावी ढंग से ट्रैक कर सकता है। इसके अलावा, यदि आपकी डेटाबेस फ़ाइलें दूषित या अत्यधिक क्षतिग्रस्त हैं, तो डेटाबेस फ़ाइलों को पुनर्प्राप्त करने के लिए, हम SQL पुनर्प्राप्ति सॉफ़्टवेयर जैसे तृतीय-पक्ष टूल का उपयोग करने की अनुशंसा करते हैं।