ऑफ़लाइन जाने के लिए SQL Server 2008 डेटाबेस को कैसे बाध्य करें


106

मैं अपने डेटाबेस को ऑफ़लाइन कैसे जाने के लिए बाध्य करता हूं, इस बात की परवाह किए बिना कि पहले से ही कौन या कौन इसका उपयोग कर रहा है?

मैंने कोशिश की:

ALTER DATABASE database-name SET OFFLINE;

लेकिन यह 7 मिनट के बाद भी लटका हुआ है।

मैं यह चाहता हूं क्योंकि मुझे परिदृश्य का परीक्षण करने की आवश्यकता है।

अगर यह भी संभव है?

जवाबों:


186

ऑफ़ लाइन हो जाओ

USE master
GO
ALTER DATABASE YourDatabaseName
SET OFFLINE WITH ROLLBACK IMMEDIATE
GO

ऑनलाइन जाओ

USE master
GO
ALTER DATABASE YourDatabaseName
SET ONLINE
GO

8
@radbyx: DBDN के masterसंचालन के दौरान MSDN का उपयोग करने के लिए कहते हैं
abatishchev

17
@radbyx: यदि आप MY_DATABASE का उपयोग करते हैं, तो MY_DATABASE SET OFFLINE को विफल कर दें, क्योंकि आप इसका उपयोग कर रहे हैं! हां, मैं बस
उसी से लड़ गया

10
मेरे लिए काम नहीं किया: Msg 5061, स्तर 16, राज्य 1, लाइन 1 से पहले DATABASE विफल रहा क्योंकि डेटाबेस 'MyDatabase' पर एक लॉक नहीं रखा जा सकता था। बाद में पुन: प्रयास करें। एमएसजी 5069, लेवल 16, स्टेट 1, लाइन 1 ऑल्टर डबस्ट स्टेटमेंट फेल हो गया।
एंडीज

6
मैंने ऐसी घटनाएँ देखी हैं जहाँ आपको अभी भी एक 'sp_who2 सक्रिय' / 'sp_whoisactive' का उपयोग करने की ज़रूरत है, जो अनुसूचित नौकरी मशीनों या मिडलेटियर सामानों से कुछ जिद्दी कनेक्शन देखने के लिए और उनसे छुटकारा पाने के लिए SPID नंबर के साथ KILL चलाएं
क्रिस वुड

24

आपको WITH ROLLBACK IMMEDIATEपहले या पहले से ही इसका उपयोग करने वाले लोगों के संबंध में अन्य सम्मेलनों को बूट करने के लिए उपयोग करने की आवश्यकता है ।

या WITH NO_WAITमौजूदा कनेक्शनों को न लटकाने और न मारने के लिए उपयोग करें। देखें http://www.blackwasp.co.uk/SQLOffline.aspx जानकारी के लिए

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