2009-01-26 19 views
15

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

मेरी समस्या यह है कि लॉग बढ़ता रहता है। मुझे पता है कि लॉग को फिर से उपयोग के लिए चिह्नित किया जाना चाहिए, लेकिन लॉग क्यों बढ़ रहा है? Log_reuse_wait_desc "कुछ भी नहीं" दिखाता है।

मैं लॉग फ़ाइल को 1 एमबी तक छोटा कर सकता हूं, इसलिए मुझे पता है कि इसमें कोई लेनदेन नहीं है। मैं ऐसा करने के लिए एक नौकरी स्थापित कर सकता हूं, लेकिन मैं 500 एमबी पर लॉग छोड़ना पसंद करूंगा, जो दैनिक भार को संभालने के लिए पर्याप्त है। अगर मैं ऐसा करता हूं, तो लॉग बढ़ता है।

मैं लॉग को लगातार आकार में कैसे रख सकता हूं?

कृपया ध्यान दें: लॉग फ़ाइल को हटाना इस समस्या को हल नहीं करता है। मुझे पता है कि यह कैसे करें। मैं लेन-देन लॉग में स्थान के लिए पुन: उपयोग करने के लिए एक रास्ता खोजने का प्रयास कर रहा हूं।

+0

मैं हाल ही में एक ऐसी ही सवाल का जवाब दे: [http://stackoverflow.com/questions/453858/sql-server-log-file-confusion#454137](http://stackoverflow.com/ प्रश्न/453858/वर्ग-सर्वर-लॉग-फ़ाइल-भ्रम # 454137) – DavGarcia

+0

क्या आप नियमित रूप से अपने लेनदेन लॉग का बैक अप ले रहे हैं? – bobwienholt

+0

चूंकि रिकवरी मॉडल यहां 'सरल' है, इसलिए लेनदेन लॉग बैकअप को विकल्प के रूप में पेश नहीं किया जाता है। लेनदेन लॉग अभी भी "चेकपॉइंट्स" के बीच भर सकता है, इस मामले में उसे लॉगफाइल का आकार बदलना होगा, या इसे अप्रतिबंधित विकास में बदलना होगा (जिस तरह से अभी भी "प्रतिबंधित" विकास के रूप में दिखाया गया है, 2,097,152 एमबी के अधिकतम आकार के साथ) । अधिक जानकारी के लिए, यह लिंक देखें: http://social.msdn.microsoft.com/Forums/sqlserver/en-US/c00aba0e-45b1-43ef-8188-ea258c0eeb8b/transaction-log-size-simple-recovery-model?forum = sqldatabaseengine –

उत्तर

4

एक रखरखाव का काम है कि डीबी बैकअप और यदि आप ऐसा करने DBCC SHRINKFILE उपयोग कर सकते हैं मेरे सिर के ऊपर बंद लॉग

+0

मेरे पास एक नौकरी है जो डीबी का बैक अप लेती है। मैं लॉग को छोटा कर सकता हूं। हालांकि, यह समस्या का समाधान नहीं करता है क्योंकि जब आयात नौकरी चलती है तो लॉग को स्थान आवंटित करना होगा। –

0

सिकुड़ता पैदा करते हैं।

DBCC SHRINKFILE (DataFile1, 7) 

पर 7MB

दस्तावेज़ करने के लिए फ़ाइल DataFile1 तक संकुचित:

3

DBCC SHRINKFILE आदेश आप एक लक्ष्य आकार निर्दिष्ट कर सकते हैं MSDN

25

लॉग फ़ाइल व्यवहार प्रयोजनों के लिए प्रयोग किया जाता है, भले ही डेटाबेस सरल रिकवरी मोड में है। यदि LOG आकार वास्तव में 500 एमबी से आगे बढ़ रहा है, तो कोई उस क्वेरी या संग्रहीत प्रक्रिया को चला रहा है जिसके लिए उस स्थान की आवश्यकता है।

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

तो, अगर लॉग आकार 1 एमबी से शुरू हो रहा है और 700 एमबी कहने के लिए बढ़ रहा है, तो कुछ ऐसा किया जा रहा है जिसके लिए उस जगह की आवश्यकता है। यदि आप आकार को 500 एमबी तक लॉक करते हैं, तो आपको अंत में "अंतरिक्ष से बाहर लॉग फ़ाइल" त्रुटि प्राप्त होगी।

यदि आपको वास्तव में 500MB पर इसे ठीक करना चाहते हैं, आप कर सकते हैं निम्नलिखित: (मैं SQL सर्वर 2005 का उपयोग कर रहा)

  1. लॉन्च Microsoft SQL सर्वर प्रबंधन स्टूडियो
  2. अपने डेटाबेस का पता लगाएं और उस पर राइट-क्लिक करें। गुणों का चयन करें।
  3. फ़ाइलें अनुभाग
  4. पर क्लिक करें लॉग फ़ाइल फ़ाइल का पता लगाएं।
  5. बदलें करने के लिए प्रारंभिक आकार: 500
  6. Autogrowth अनुभाग का पता लगाएं और अंडाकार (...)
  7. सही का निशान हटाएँ "Autogrowth सक्षम करें" पर क्लिक करें। ओके पर क्लिक करें।
  8. परिवर्तन करने के लिए ठीक क्लिक करें।

नोट: आप "ऑटोग्राउथ सेक्शन" में अधिकतम लॉग फ़ाइल आकार भी सेट कर सकते हैं।

वैकल्पिक रूप से, आप परिवर्तन करने के लिए निम्न स्क्रिप्ट का उपयोग कर सकते हैं। उचित मूल्य के साथ DATABASENAME को बदलें। यदि आवश्यक हो तो लॉग फ़ाइल नाम भी बदलें।

USE [master] 
GO 
ALTER DATABASE [DatabaseName] MODIFY FILE (NAME = N'DATABASENAME_Log', SIZE = 512000KB , FILEGROWTH = 0) 
GO 

संबंधित मुद्दे