मुझे एक सहयोगी को भेजने से पहले एलडीएफ फ़ाइल खाली करने की आवश्यकता है। लॉग को छोटा करने के लिए मैं SQL सर्वर को कैसे मजबूर करूं?SQL सर्वर लॉग फ़ाइल को छोटा करने का आदेश क्या है?
उत्तर
के बाद अगर मैं अच्छी तरह से याद है ... क्वेरी विश्लेषक या समकक्ष में:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
प्रबंधन स्टूडियो में:
- एक जीवित पर्यावरण पर ऐसा मत करो, लेकिन आप के रूप में ज्यादा के रूप में आप कर सकते हैं db अपने देव हटना सुनिश्चित करने के लिए:
- राइट-क्लिक करें डेटाबेस, चुनें
Properties
, फिरOptions
। >Shrink
- ->Files
- बदलें
- सुनिश्चित करें कि "रिकवरी मॉडल" के लिए "सरल", नहीं "पूर्ण"
- ठीक क्लिक करें
- राइट-क्लिक करें डेटाबेस, चुनें
- राइट-क्लिक करें डेटाबेस फिर से, चुनें
Tasks
सेट किया गया है फ़ाइल प्रकार "लॉग" - पर क्लिक करें ठीक क्लिक करें।
वैकल्पिक रूप से, एसक्यूएल यह करने के लिए:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
रेफरी: http://msdn.microsoft.com/en-us/library/ms189493.aspx
आपके उत्तर ने अभी मेरा दिन बचा लिया है! मुझे "राइट-क्लिक - टास्क -> हटना" विकल्प नहीं पता था। धन्यवाद! –
आप लाइव वातावरण में क्या करते हैं? पहले लॉग का बैकअप लें? –
मैं कोई डीबीए नहीं हूं, लेकिन हाँ, मेरा मानना है कि लॉग का बैक अप इसे छोटा कर देगा: http://technet.microsoft.com/en-us/library/ms179478।एएसपीएक्स – Blorgbeard
बैकअप लॉग logname साथ truncate_only एक DBCC SHRINKFILE आदेश
एसक्यूएल सर्वर 2008 के लिए, आदेश है:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
यह 1 एमबी करने के लिए नीचे मेरी 14GB लॉग फ़ाइल कम कर दिया।
चूंकि प्रश्न संदिग्ध है कि कौन सा संस्करण और स्वीकृत उत्तर SQL Server 2008 पर लागू नहीं है, यह उत्तर अभी भी उम्र के बावजूद मान्य है। –
धन्यवाद, इससे मुझे एक बड़ी लॉग फ़ाइल को कम करने में मदद मिली जिसने डीबीसीसी SHRINKFILE –
के साथ प्रतिक्रिया नहीं की थी जब आप कर चुके हैं तो पुनर्प्राप्ति मॉडल को पूर्ण रूप से बदलना न भूलें! – Dan
एसक्यूएल 2008 के लिए आप कर सकते हैं nul
डिवाइस के लिए बैकअप लॉग:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
और फिर DBCC SHRINKFILE
का उपयोग लॉग फ़ाइल को काटना।
यह एकमात्र ऐसा है जो मेरी स्थिति में काम कर रहा है ... TRUNCATE_ONLY – TomXP411
प्रबंधन स्टूडियो के माध्यम से डेटाबेस को अलग करना एक और विकल्प है। फिर बस लॉग फ़ाइल को हटाएं, या उसका नाम बदलें और बाद में हटा दें।
प्रबंधन स्टूडियो में वापस डेटाबेस को फिर से संलग्न करें। संलग्न विंडो में लॉग फ़ाइल को फ़ाइलों की सूची से हटा दें।
डीबी एक नई खाली लॉग फ़ाइल संलग्न करता है और बनाता है। सबकुछ जांचने के बाद सब ठीक है, आप नामित लॉग फ़ाइल को हटा सकते हैं।
आपको शायद इसे उत्पादन डेटाबेस के लिए उपयोग नहीं करना चाहिए।
के साथ बैकअप का उपयोग करने का प्रयास करते समय मुझे कोई त्रुटि मिली! यह कभी नहीं करें! लॉग में डेटा हो सकता है अभी तक डेटा फ़ाइल के लिए प्रतिबद्ध नहीं है। आप इस तरह के डेटा खो देंगे। – Paul
चेतावनी! यह गलत और खतरनाक है! – defines
यदि आपके उत्तर में, आप इसे उत्पादन में आजमाने की चेतावनी देते हैं, तो पोस्टिंग के लायक नहीं है। –
यह डेटाबेस पुनर्प्राप्ति मॉडल को SIMPLE (ब्लॉर्गबीर्ड के उत्तर में) के रूप में सेट करने से निश्चित रूप से बेहतर है क्योंकि यदि आपका पुनर्प्राप्ति मॉडल पूर्ण है, तो आपके पास यह है एक कारण के लिए इस तरह से सेट करें। –
truncate_only को SQL Server 2008 में बहिष्कृत किया गया है, इसलिए आपको डीबी को सरल पुनर्प्राप्ति पर स्विच करना होगा http://msdn.microsoft.com/en-us/library/ms143729(SQL.90).aspx –
SQL Server 2012 के लिए यह काम करता है, लेकिन 'TRUNCATE_ONLY' के बिना '। –