ओरेकल में SQL कमांड हैं जो एक जारी कर सकता है ताकि एक लेनदेन लॉग न हो। क्या SQL Server 2008 के लिए कुछ समान है?
मेरा परिदृश्य: हमें सर्वर (देव, क्यूए, प्रोडक्ट) पर टीएक्स लॉग की आवश्यकता है, लेकिन शायद हम डेवलपर मशीनों पर उनके बिना कर सकते हैं।
ओरेकल में SQL कमांड हैं जो एक जारी कर सकता है ताकि एक लेनदेन लॉग न हो। क्या SQL Server 2008 के लिए कुछ समान है?
मेरा परिदृश्य: हमें सर्वर (देव, क्यूए, प्रोडक्ट) पर टीएक्स लॉग की आवश्यकता है, लेकिन शायद हम डेवलपर मशीनों पर उनके बिना कर सकते हैं।
NOLOGGED
विकल्प का जिक्र कर रहे हैं तो यह सच नहीं है ।
जवाबों:
आप किसी भी परिस्थिति में SQL सर्वर में लेनदेन लॉग के बिना नहीं कर सकते। इंजन बस काम नहीं करेगा।
आप अपने पुनर्प्राप्ति मॉडल को अपने देव मशीनों पर SIMPLE के लिए सेट कर सकते हैं - जो ट्रांज़ लॉग बैकअप नहीं होने पर लेन-देन लॉग ब्लोटिंग को रोक देगा।
ALTER DATABASE MyDB SET RECOVERY SIMPLE;
SQL सर्वर को कार्य करने के लिए लेनदेन लॉग की आवश्यकता होती है।
लेन-देन लॉग के लिए ऑपरेशन के दो तरीके हैं:
में पूर्ण मोड लेनदेन लॉग आप डेटाबेस का बैकअप लेने तक बढ़ रही रखता है। में सरल मोड: लेन-देन लॉग में अंतरिक्ष हर 'पुनर्नवीनीकरण' है चेकप्वाइंट ।
पूर्ण पुनर्प्राप्ति मॉडल में बहुत कम लोगों को अपने डेटाबेस को चलाने की आवश्यकता होती है । पूर्ण मॉडल का उपयोग करने का एकमात्र बिंदु यह है कि यदि आप प्रति दिन कई बार डेटाबेस का बैकअप लेना चाहते हैं, और पूरे डेटाबेस का बैकअप लेने में बहुत लंबा समय लगता है - तो आप बस लेन-देन लॉग का बैकअप लेते हैं।
लेन-देन लॉग पूरे दिन बढ़ता रहता है, और आप बस इसे जारी रखते हैं। उस रात आप अपने पूर्ण बैकअप करते हैं, और एसक्यूएल सर्वर तो ट्रंकेटस लेनदेन लॉग, अंतरिक्ष लेनदेन लॉग फ़ाइल में आवंटित पुन: उपयोग करने शुरू होता है।
यदि आप कभी भी पूर्ण डेटाबेस बैकअप करते हैं , तो आप पूर्ण पुनर्प्राप्ति मोड नहीं चाहते हैं।
ऊपर उल्लेख नहीं किया गया एक तीसरा पुनर्प्राप्ति मोड है। पुनर्प्राप्ति मोड अंततः निर्धारित करता है कि एलडीएफ फाइलें कितनी बड़ी हो जाती हैं और उन्हें किस प्रकार लिखा जाता है। उन मामलों में जहां आप किसी भी प्रकार के थोक आवेषण करने जा रहे हैं, आपको DB को "BULK / LOGGI" में सेट करना चाहिए। इससे थोक आवेषण तेजी के साथ आगे बढ़ता है और इसे मक्खी पर बदला जा सकता है।
ऐसा करने के लिए,
USE master ;
ALTER DATABASE model SET RECOVERY BULK_LOGGED ;
इसे वापस बदलने के लिए:
USE master ;
ALTER DATABASE model SET RECOVERY FULL ;
इस बारे में वार्तालाप को जोड़ने की भावना में कि कोई एलडीएफ क्यों नहीं चाहेगा, मैं इसे जोड़ता हूं: हम बहुआयामी मॉडलिंग करते हैं। अनिवार्य रूप से हम DB का उपयोग वैरिएबल के एक बड़े स्टोर के रूप में करते हैं जो बाहरी कार्यक्रमों का उपयोग करके थोक में संसाधित होते हैं। हमें कभी भी रोलबैक की आवश्यकता नहीं है। यदि हम सभी लॉगिंग को बदलकर प्रदर्शन को बढ़ावा दे सकते हैं, तो हम इसे दिल की धड़कन में ले जाएंगे।
Tx लॉग के साथ आपकी समस्या क्या है? वो बढ़ते हैं? फिर बस चेकपॉइंट विकल्प पर ट्रंकट सेट करें।
Microsoft प्रलेखन से:
SQL Server 2000 या SQL Server 2005 में, "सरल" पुनर्प्राप्ति मॉडल SQL सर्वर के पुराने संस्करणों में "चेकपॉइंट लॉग ऑन ट्रूप" के बराबर है। अगर हर बार चेकपॉइंट पर सर्वर से ट्रांजेक्शन लॉग को छोटा किया जाता है, तो यह आपको डेटाबेस रिकवरी के लिए लॉग का उपयोग करने से रोकता है। आप अपने डेटा को पुनर्स्थापित करने के लिए केवल पूर्ण डेटाबेस बैकअप का उपयोग कर सकते हैं। "सरल" पुनर्प्राप्ति मॉडल का उपयोग किए जाने पर लेन-देन लॉग के बैकअप अक्षम होते हैं।
यदि यह केवल अंतरिक्ष को बचाने के लिए देव मशीनों के लिए है तो बस सरल रिकवरी मोड के साथ जाएं और आप ठीक कर रहे हैं।
उत्पादन मशीनों पर हालांकि मैं दृढ़ता से अनुशंसा करता हूं कि आप डेटाबेस को पूर्ण पुनर्प्राप्ति मोड में रखें। यह सुनिश्चित करेगा कि आप जरूरत पड़ने पर समय पर वसूली कर सकते हैं।
इसके अलावा - पूर्ण पुनर्प्राप्ति मोड में डेटाबेस होने से आप लेन-देन लॉग पढ़कर आकस्मिक अपडेट को पूर्ववत कर सकते हैं और हटा सकते हैं। नीचे देखें या अधिक विवरण।
मैं SQL सर्वर 2005 में UPDATE क्वेरी कैसे रोलबैक कर सकता हूं?
Sql सर्वर 2008 में लॉग फ़ाइल (* .LDF) पढ़ें
यदि अंतरिक्ष उत्पादन मशीनों पर एक समस्या है तो बस लगातार लेन-देन लॉग बैकअप बनाएं।