नमस्ते
मैं इस लेख में SQL सर्वर में डेटाबेस स्नैपशॉट की व्याख्या करना जारी रखूंगा।
इस पोस्ट से पहले पिछले लेख पढ़ें।
SQL सर्वर डेटाबेस स्नैपशॉट -1
SQL सर्वर डेटाबेस स्नैपशॉट -2
SQL सर्वर डेटाबेस स्नैपशॉट -3
उत्पादन डेटाबेस के लिए यह त्रुटि बहुत डरावनी और वित्तीय हानि है।
हम इस त्रुटि से वापस आने के लिए स्नैपशॉट डेटाबेस का उपयोग करेंगे। हम एडवेंचरवर्क्स डेटाबेस में AWBuildVersion तालिका बनाने के लिए स्नैपशॉट डेटाबेस की AWBuildVersion तालिका का उपयोग करते हैं। हम इसके लिए Select * in कमांड का प्रयोग करेंगे। स्क्रिप्ट चलाने के बाद स्क्रीनशॉट इस प्रकार है। जैसा कि लाल रेखा द्वारा इंगित किया गया है, गिराई गई तालिका अपने डेटा के साथ स्रोत डेटाबेस में वापस आ जाती है।
आइए अधिक बोधगम्य होने के संदर्भ में इसी तरह का एक और उदाहरण करते हैं। आइए किसी भी तालिका के डेटा को हटा दें और इसे स्नैपशॉट डेटाबेस से फिर से वापस कर दें। जैसा कि नीचे चित्र 1.1 में बताया गया है, ProductionWorks डेटाबेस के निचले भाग में BillOfMaterials तालिका को AdventureWorks डेटाबेस से हटाया जा रहा है। जब हम एक ही समय में सेलेक्ट काउंट का चयन करते हैं, तो 0 रिकॉर्ड की पूछताछ की जाती है जैसा कि नीचे दी गई छवि में दिखाया गया है।
हम इस त्रुटि से वापस आने के लिए फिर से स्नैपशॉट डेटाबेस का उपयोग करते हैं। जैसा कि ऊपर 2.1 में है, हम उसी स्कीमा और स्नैपशॉट डेटाबेस की तालिका को स्रोत डेटाबेस में संबंधित तालिका में सम्मिलित कर रहे हैं। उसी तरह, जब हमने सेलेक्ट काउंट की क्वेरी की थी, तो उतनी ही संख्या में लाइन रिकॉर्ड डाले जाते हैं, जैसा कि चित्र 2.2 में दिखाया गया है।
अंत में, स्नैपशॉट डेटाबेस से एक व्यवस्थापक त्रुटि बनाते हैं, और इस बार हम स्नैपशॉट डेटाबेस से स्रोत डेटाबेस को पुनर्स्थापित करेंगे। इस प्रकार, एडवेंचरवर्क्स डेटाबेस स्नैपशॉट प्रारंभिक स्थिति में वापस आ रहा है। मैं उत्पादन स्कीमा से BillOfMaterials तालिका के डेटा को हटा रहा हूं और साथ ही मैंने बिक्री स्कीमा के तहत SalesOrderDetail तालिका को छोड़ दिया है। स्क्रीनशॉट इस प्रकार है। चूंकि उत्पादन स्कीमा के निचले भाग में BillOfMaterials तालिका का डेटा हटा दिया गया है, SalesOrderDetail तालिका प्रदर्शित नहीं होती है क्योंकि इसे गिरा दिया गया है।
हमने सोर्स डेटाबेस में बहुत सारे बदलाव किए हैं, हमने कहा है कि ये बदलाव हमेशा Sparse File में लिखे जाते हैं। निम्न छवि विरल फ़ाइल का अंतिम संस्करण दिखाती है। जबकि मूल आकार 1 नहीं बदला है, मूल विरल फ़ाइल संख्या 2 में वृद्धि हुई है। इसका कारण, जैसा कि मैंने कहा, स्रोत डेटाबेस में किए गए सभी परिवर्तन यहां लिखे गए हैं। तो जब उपयोगकर्ता बदले गए डेटा को पढ़ता है, तो यह स्पैस फ़ाइल से पढ़ता है। यदि उपयोगकर्ता अपरिवर्तित डेटा क्वेरी करता है, तो इसे स्रोत डेटाबेस से पढ़ा जाएगा।
अब स्नैपशॉट पर वापस आते हैं।
SQL Server 2017 Database Snaphot Restore coderestore
database
AdventureWorks
from
database_snapshot=
'AdventureWorksSnaphot'
जैसा कि ऊपर दिखाया गया है, हम स्नैपशॉट को पुनर्स्थापित करने के बाद सभी गिराई गई और हटाई गई तालिकाओं को क्वेरी कर सकते हैं।