कुछ तालिकाओं पर लॉगिंग को अक्षम करना


9

मैं SQL Server 2005 का उपयोग कर रहा हूँ। मेरे पास दो तालिकाएँ हैं जिनमें समग्र जानकारी है। सूचना को लगातार अपडेट किया जा रहा है, जिससे एक दिन में लगभग 5GB लॉग डेटा प्राप्त होता है। (यह पूरे डेटाबेस से बड़ा है!) मैं इन तालिकाओं पर लॉगिंग को अक्षम करना चाहता हूं, क्योंकि वापस रोल करना वास्तव में आवश्यक नहीं है। मैं फिर भी डेटाबेस में अन्य तालिकाओं पर लॉगिंग रखना चाहूंगा।

क्या डेटाबेस के भीतर कुछ तालिकाओं पर लॉगिंग को अक्षम करना संभव है? यदि नहीं, तो क्या मैं एक ही स्कीमा में दो तालिकाओं को रख सकता हूं, फिर स्कीमा पर लॉगिंग अक्षम करें? क्या एक ही डेटाबेस में दो तालिकाओं को स्थानांतरित करने और वहां लॉगिंग को अक्षम करने का एकमात्र विकल्प है?

अद्यतन: मुझे लगता है कि मैं समझाता हूं कि मुझे वास्तव में इन तालिकाओं पर गतिविधि लॉग करने की आवश्यकता क्यों नहीं है।

दो टेबल जीपीएस डेटा से भरे हुए हैं, इसलिए वे काफी बड़े हो जाते हैं। पहली तालिका क्षेत्र में छह Android तालिकाओं से कच्चे स्थानों पर कब्जा कर रही है। प्रत्येक टैबलेट का नया डेटा प्रत्येक 5-10 सेकंड में आता है। फिर उस जानकारी को स्थान, स्थानबी, यात्रा समय के रूप में एकत्रित किया जाता है। लक्ष्य अंततः वास्तविक ड्राइविंग डेटा के आधार पर सभी स्थानों के बीच कम से कम यात्रा समय है। डेटा केवल एक छोटे शहर के लिए है, और केवल चार दशमलव स्थानों के लिए सटीक है, इसलिए यह प्रबंधनीय है। हालाँकि, जैसे ही नया कच्चा डेटा आता है, धीमी यात्रा के समय होते हैं जिन्हें अद्यतन करने की आवश्यकता होती है, और नए जिन्हें सम्मिलित करने की आवश्यकता होती है।

एक बार जब कच्चे डेटा को एकत्र किया जाता है, तो इसे शुद्ध किया जाता है। अब हम अधिक समय तक यात्रा करने के लिए पीछे नहीं जा रहे हैं, इसलिए यही कारण है कि इन तालिकाओं में वापस रोल करना इतना मायने नहीं रखता है।


जवाबों:


8
  • क्या डेटाबेस के भीतर कुछ तालिकाओं पर लॉगिंग को अक्षम करना संभव है?
  • क्या मैं एक ही स्कीमा में दो तालिकाओं को रख सकता हूं, फिर स्कीमा पर लॉगिंग अक्षम करें?
  • क्या एक ही डेटाबेस में दो तालिकाओं को स्थानांतरित करने और वहां लॉगिंग को अक्षम करने का एकमात्र विकल्प है?

उपयोगकर्ता संचालन को लॉग करना अक्षम नहीं किया जा सकता है।

न्यूनतम-लॉग किए गए ऑपरेशनों के संचालन का एक वर्ग होता है जो केवल लेनदेन को वापस ले जाने की अनुमति देता है (जैसा कि आगे रोल करने में सक्षम होने के लिए विरोध किया जाता है )। हालाँकि, यह ध्वनि नहीं करता है कि आप क्या कर रहे हैं जो लागू करने के लिए मानदंडों को पूरा करेगा, और न ही मुझे लगता है कि यह समस्या को हल करेगा।

एसक्यूएल सर्वर समाधान SIMPLEवसूली में एक नए डेटाबेस में मचान तालिकाओं को जमीन पर लाने के लिए होगा , जो एकत्रीकरण परिणाम डेटाबेस से अलग है, जो मुझे लगता है कि FULLवसूली में है। हालांकि यह लॉगिंग की मात्रा को कम नहीं करेगा , यह डेटा लोड द्वारा उत्पन्न लॉग को वापस करने की आवश्यकता को समाप्त करेगा । ( लॉगिंग के बारे में यहां मेरे ब्लॉग पोस्ट देखें , और डेटाबेस के रिकवरी मॉडल को चुनने में शामिल कुछ कारक।)

तालिकाओं को किसी अन्य डेटाबेस में अलग करने से लॉग फ़ाइल को तेजी से I / O सबसिस्टम पर लैंड करने की सुविधा मिलेगी, जो कि स्थानीय रूप से संलग्न सॉलिड-स्टेट ड्राइव का एक छोटा सा सरणी है।

इसके अलावा, विचार करें कि समस्या को हल करने के लिए अकेले SQL सर्वर सबसे अच्छा समाधान नहीं हो सकता है। अन्य RDBMS समाधान हैं जो कुछ तालिकाओं के लिए लॉगिंग को पूरी तरह से अक्षम करने की क्षमता प्रदान करते हैं। डेटा का मंचन और एकत्रीकरण दूसरे सिस्टम में किया जा सकता है, और परिणाम मौजूदा SQL सर्वर डेटाबेस में विलय हो जाते हैं, जो पूर्ण लॉगिंग और बैकअप द्वारा अच्छी तरह से संरक्षित है।


@ डांगोवांस: आपका स्वागत है।
जॉन सिगेल

3

नहीं, स्कीमा, टेबल या डेटाबेस स्तर की परवाह किए बिना SQL सर्वर में लॉगिंग को रोकने का कोई तरीका नहीं है।

तथ्य यह है कि एसक्यूएल सर्वर डेटाबेस में संशोधन या परिवर्तन करने वाले हर लेनदेन को लॉग किया जाता है, जब स्नैपशॉट अलगाव का उपयोग किया जाता है, तो टेम्प स्टोर से संबंधित संस्करण स्टोर लेनदेन को छोड़कर। (लेनदेन लॉग गारंटी देता है में प्रवेश कि लेनदेन वापस (निश्चित आपरेशन के लिए आप बल्क लॉग इन करने के लिए वसूली मॉडल बदलकर (यह न्यूनतम लॉग इन आपरेशनों कहा जाता है) लॉगिंग कम कर सकते हैं --- आप SQL सर्वर पुस्तकें ऑनलाइन में इसके बारे में अधिक सीख सकते हैं लुढ़काया जा सकता है यहां


0

जवाब है, हमेशा की तरह, यह निर्भर करता है।
तुमने कब कहा था:

मेरे पास दो तालिकाएँ हैं जिनमें समग्र जानकारी है। जानकारी लगातार अपडेट की जा रही है

यह किस तरह का एकत्रीकरण है?
इसके बजाय VIEW का उपयोग करने का प्रयास करें, अपडेट करने की आवश्यकता नहीं है, और कोई लॉगिंग नहीं है।

यदि वह विकल्प नहीं है, तो छोटे लेनदेन का उपयोग करने का प्रयास करें, और उनके बीच लॉग अप करें।

एक अलग डेटाबेस का उपयोग करने का अर्थ है सुरक्षा प्रशासन का ऊपरी भाग आदि और इसका स्वयं का लेन-देन लॉग होगा (यहां तक ​​कि SIMPLE पुनर्प्राप्ति मॉडल के साथ भी लॉग लिखा गया है, SQL सर्वर बस लॉग को स्वचालित रूप से काटता है, लेकिन डिस्क स्थान को रिलीज़ नहीं करता है) इसलिए मैं उस विकल्प की सिफारिश नहीं करूंगा ।


मैंने इस सवाल को अद्यतन किया कि किस प्रकार का एकत्रीकरण हो रहा है।
खतरों के खिलाड़ी

@dangowans मैं बल्क-लॉग-रिकवरी मॉडल के बारे में सोच रहा हूं, क्या आपके डीआरपी को पुनर्स्थापना-दर-बिंदु प्रदर्शन करने की क्षमता की आवश्यकता है? क्या आप प्रतिकृति का उपयोग करते हैं? न्यूनतम लॉग ऑपरेशंस के
Roi Gavish
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.