मैं SQL Server 2008 डेटाबेस में हस्तांतरण लॉग को कैसे काटूँ?


9

मैं SQL Server 2008 डेटाबेस में हस्तांतरण लॉग को कैसे काटूँ?

सर्वोत्तम संभव तरीके क्या हैं?

मैंने एक ब्लॉग से इस प्रकार की कोशिश की:

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

2) डेटाबेस फ़ाइल या डेटाबेस सिकुड़ना विखंडन कहते हैं।

बहुत सारी चीजें हैं जो आप कर सकते हैं। सबसे पहले, उन्हें कम करने और उन्हें बार-बार खोने के बजाय निम्नलिखित कमांड का उपयोग करके उचित लॉग बैकअप लेना शुरू करें।

BACKUP LOG [TestDb] TO  DISK = N'C:\Backup\TestDb.bak'
GO

फ़ाइल को SHRINKING का कोड निकालें। यदि आप उचित लॉग बैकअप ले रहे हैं, तो आपकी लॉग फ़ाइल आमतौर पर (आमतौर पर, विशेष मामलों को बाहर रखा जाता है) बहुत बड़ी नहीं होती है।


2
ठीक है, और क्या हुआ जब आपने कोशिश की?

जवाबों:


4

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

ऐसा लगता है कि आप अपनी लॉग फ़ाइल को बाद में सिकोड़ना चाहते हैं, जिस स्थिति में आप एक DBCC SHRINKFILE(yourTLogName)कमांड चलाएंगे । इसमें सिकुड़ने के लिए अनुरोधित आकार के लिए एक वैकल्पिक दूसरा पैरामीटर है।


8

आप null डिवाइस के लिए लॉग इन बैकअप ले सकते हैं:

backup log [databasename] to disk = 'nul';

या आप पुनर्प्राप्ति मॉडल को सरल और फिर से पूर्ण / बल्क पर वापस स्विच कर सकते हैं।


मैंने इस पर + एक किया क्योंकि यह dbas टूलबॉक्स में एक उपकरण है और आपका उत्तर नकारात्मक मतों के लायक नहीं है जो मुझे लगता है। मैं इस भावना से सहमत हूं कि लेन-देन बैकअप लेने का सबसे अच्छा तरीका है, लेकिन सभी अच्छे उपकरणों का उपयोग सही तरीके से या खराब तरीके से किया जा सकता है।
मार्टिन Sjöberg

6

यदि आप अपने लॉग डेटा की परवाह नहीं करते हैं और सिर्फ इससे छुटकारा पाना चाहते हैं:

रिकवरी मॉडल को पूर्ण से सरल में बदलें, और फिर वापस पूर्ण में। TRUNCATEONLY तर्क के साथ DBCC SHRINKFILE का उपयोग करके फ़ाइल को सिकोड़ें

निम्नलिखित कमांड रिकवरी मॉडल को पूर्ण से सरल में बदल देगा

ALTER DATABASE <databse_name> SET RECOVERY SIMPLE

निम्न आदेश पुनर्प्राप्ति मॉडल को पूर्ण में बदल देगा

ALTER DATABASE <databse_name> SET RECOVERY FULL

लॉग फ़ाइल का नाम खोजने के लिए आप निम्नलिखित क्वेरी का उपयोग कर सकते हैं

SELECT name 
FROM sys.master_files
WHERE database_id = DB_ID('<databse_name>')

फ़ाइल को सिकोड़ें

DBCC SHRINKFILE (N'<logical_file_name_of_the_log>' , 0, TRUNCATEONLY)

देखें कि SQL सर्वर लॉग फ़ाइल को छोटा करने के लिए कमांड क्या है? इस बारे में अधिक जानकारी के लिए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.