2009-01-30 14 views
6

SQL सर्वर में मेरी लॉग फ़ाइल मेरी डिस्क पर सभी जगहों का उपयोग करती है। मैं हर रात पूर्ण बैकअप चलाता हूं, लेकिन लॉग फ़ाइल बढ़ती रहती है। मैं क्या कर सकता हूँ?मेरी लॉग फ़ाइल बहुत बड़ी है

+0

यह एक डीबी व्यवस्थापक प्रश्न है। एक प्रोग्रामिंग सवाल नहीं है। – EBGreen

+4

मुझे लगता है कि इसे खुले रहना चाहिए, कई छोटी कंपनियों को प्रोग्रामर को डीबी प्रशासकों के रूप में कार्य करना होगा। वास्तव में –

+0

। कुछ लोग थोड़ा 'करीबी खुश' हैं :) –

उत्तर

5

सबसे व्यस्त सिस्टम पर, आपको पूरे दिन लॉग बैकअप शेड्यूल करना और फिर रात भर पूर्ण बैकअप देखना होगा। यह बहुत आम अभ्यास है।

-1

लॉग फ़ाइल हटाएं?

संपादित करें: स्पष्ट रूप से लॉग फ़ाइल को हटाना बुरा है, यह केवल बस SQL सर्वर पर लॉग है। मैं इसे दोहराने के लिए छोड़ रहा हूं कि क्या नहीं करना है।

+0

लॉग फ़ाइल को हटाने से SQL सर्वर के लिए वास्तव में बुरा होगा ... इसमें हार्ड त्रुटि से पुनर्प्राप्त करने के लिए जानकारी शामिल है। –

1

आप किसी प्रकार के लॉग-रोटेशन का उपयोग कर सकते हैं, और पिछले 7 दिनों के अनुसार केवल निश्चित समय का लॉग रख सकते हैं। यह पर्याप्त से अधिक होना चाहिए। या आप हर रात लॉग रीसेट कर सकते हैं, क्योंकि आपको इसे अपने बैकअप में रखना चाहिए।

1

आप अपने लॉग ऊपर बैकअप के साथ-साथ मुख्य डेटाबेस के लिए है

0

यह हटना चाहिए:

dbcc shrinkfile('databasename_log', 0) 
0

इस प्रयास करें:

dump transaction <dbname> with no_log 

और उसके बाद की स्थापना करके लॉगफ़ाइल हटना एसक्यूएल सर्वर सेटिंग्स या द्वारा autoshrink विकल्प।

मुझे लगता है कि आप इसे भी कम करने के लिए डीबीसीसी का उपयोग कर सकते हैं, लेकिन मुझे वाक्यविन्यास याद नहीं है।

4

यदि आपके पास पूर्ण बैकअप करने के लिए निर्धारित नौकरी है तो यह अच्छा है और आपका प्रारंभिक बिंदु होना चाहिए, हालांकि आपको नियमित लेनदेन लॉग बैकअप भी लेना होगा।

लेनदेन लॉग का बैक अप लेने से अंतरिक्ष को पुनः प्राप्त किया जा सकता है। एक बार जब आप अपने नियमित लेन-देन लॉग बैकअप शेड्यूल को परिभाषित कर लेते हैं, तो आप लेन-देन लॉग को अधिक अपरिवर्तनीय आकार में कम करने पर विचार करने के लिए एक याचिका में होंगे। क्योंकि यह अब अनिश्चितता से नहीं बढ़ेगा। मेरा सुझाव है कि आप निम्न Microsoft संदर्भ से परामर्श

* Database backups. 

* Differential backups (optional). 

* Transaction log backups. 

:

पूरी वसूली के लिए बैकअप रणनीति के होते हैं।

http://msdn.microsoft.com/en-us/library/aa173551(SQL.80).aspx

5

कुछ मामलों में आप लॉगफ़ाइल ठीक से काट-छांट नहीं होगा, भले ही एक लॉग बैकअप चलाया जाता है हो सकता है। आप इसे जांचने के लिए TRUNCATE_ONLY के साथ बैकअप कर सकते हैं। यह लेन-देन लॉग काटना चाहिए जब आप इस चलाएँ:

BACKUP LOG dbname WITH TRUNCATE_ONLY 

इस समस्या के कारण लॉग के पहले के एक हिस्से में एक खुला लेन-देन है। एसक्यूएल इस लेनदेन के पीछे लॉग को छोटा नहीं करेगा, संभावित रूप से एक बड़ा, कभी बढ़ता हुआ लॉग उत्पन्न कर रहा है। आपको यह पता लगाना होगा कि कौन से लेनदेन खुले हैं और क्यों।आप के साथ अपने लॉग अंतरिक्ष निगरानी कर सकते हैं:

DBCC OPENTRAN 

या::

select * from sys.dm_tran_database_transactions 
+0

हाय, ध्यान रखें कि TRUNCATE_ONLY विकल्प का उपयोग वास्तव में लेनदेन लॉग का बैकअप नहीं लेगा। लेन-देन लॉग के मुद्दों को निश्चित रूप से हल करने के बाद, आप समय पर किसी बिंदु पर पुनर्स्थापित करने की क्षमता खो देंगे और इसलिए तुरंत पूर्ण कार्रवाई के साथ इस क्रिया का पालन करना चाहिए। –

1

यह करने के लिए लेन-देन लॉग बैकअप जोड़ने के लिए बेहतर है लंबी चलने वाली लेन-देन पर

DBCC SQLPERF (LOGSPACE) 

सूचना का उपयोग कर पाया जा सकता है आपका समय - सारणी।

BACKUP LOG database TO DISK = 'D:/database_log.bak'

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

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

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