2011-07-28 16 views
10

मेरे पास SQL ​​सर्वर 2008 स्थापना है जिसमें लगभग 15 डेटाबेस चल रहे हैं। अब अंतरिक्ष की कमी के कारण मैं डेटा पथ को दूसरे ड्राइव पर ले जाना चाहता हूं। इसके लिए सबसे अच्छा अभ्यास क्या है। यदि SQL सर्वर प्रशासन के लिए अपेक्षाकृत नया है, तो किसी भी SQL कमांड को शामिल करते हुए विवरण में बताएं।एसक्यूएल सर्वर डेटा बदलता है और मौजूदा डेटाबेस का लॉग पथ

नोट - मैंने पहले से ही SQL प्रबंधन स्टूडियो 2008 से SQL सर्वर गुणों में पथ को नए पथ में बदल दिया है। लेकिन मैं मौजूदा डेटाबेस को नए पथ में रहने के लिए भी पसंद करूंगा।

उत्तर

12

सबसे पहले देखते हैं, अलग डेटाबेस:

USE master; 
GO 
-- Important! We need to drop the existing connections. 
ALTER DATABASE DBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 
GO 
EXEC sp_detach_db @dbname = N'DBName'; 
GO 

अगला कदम - फ़ाइलें .mdf कॉपी और इस डेटाबेस फ़ाइलों की .ldf नए स्थान

को

USE master; 
EXEC sp_attach_db @dbname = N'dbName', 
@filename1 = N'', --path do .mdf 
@filename2 = N''; --path to .ldf 
GO 

आप d हैं:

और फिर डेटाबेस संलग्न सभी डेटाबेस को एक-एक करके संलग्न करना और अलग करना नहीं चाहते हैं, आप sys.databases गतिशील प्रबंधन दृश्य में खोज करने वाले curosr का उपयोग करके, आवश्यक सभी डेटाबेस को संलग्न करने और अलग करने के लिए SQL स्क्रिप्ट उत्पन्न कर सकते हैं। लेकिन डेटाबेस फ़ाइलों की प्रतिलिपि बनाना न भूलें।