डेटाबेस को ऑफ़लाइन लिए बिना लॉग फ़ाइल को स्थानांतरित करें


14

मुझे डेटाबेस लॉग फ़ाइल को ऑफ़लाइन ले जाए बिना एक नए विभाजन में ले जाने की आवश्यकता है।

ऐसा करने का सामान्य तरीका डीबी को अलग करना होगा, लॉग फ़ाइल को स्थानांतरित करना होगा फिर डीबी को फिर से भरना होगा।

क्या डेटाबेस को ऑफ़लाइन किए बिना ऐसा करना संभव है और यदि ऐसा है तो कैसे?


जवाबों:


16

ऑनलाइन डेटाबेस के साथ ऐसा करने का कोई तरीका नहीं है।

जब आप एक डेटाबेस फ़ाइल ( ALTER DATABASE ... MODIFY FILE) ले जाते हैं, तो आपको निम्न संदेश भी मिलता है:

फ़ाइल "YourFile" को सिस्टम कैटलॉग में संशोधित किया गया है। अगली बार डेटाबेस शुरू होने पर नए पथ का उपयोग किया जाएगा ।


ऐसा करने का सामान्य तरीका डीबी को अलग करना होगा, लॉग फ़ाइल को स्थानांतरित करना होगा फिर डीबी को फिर से भरना होगा।

यह "सामान्य" या स्वीकृत तरीका नहीं है जो मैं करूंगा। डेटाबेस फ़ाइलों को स्थानांतरित करने के लिए, मैं निम्नलिखित कार्य करता हूं:

  1. फ़ाइल के स्थान को बदलने के लिए एक चेतावनी आदेश चलाएँ।
  2. डेटाबेस ऑफ़लाइन ले
  3. चरण # 1 में निर्दिष्ट फ़ाइल के लिए भौतिक रूप से फ़ाइल को स्थानांतरित करें
  4. डेटाबेस ऑनलाइन लाओ

TechNet पर यह संदर्भ देखें: उपयोगकर्ता डेटाबेस ले जाएँ


3

थॉमस स्ट्रिंगर के उत्तर से टेकनेट मूव यूजर डेटाबेस में संदर्भ के अनुसार , यदि आप संपूर्ण SQL सर्वर आवृत्ति ("नियोजित स्थानांतरण प्रक्रिया" का पालन किए बिना) फ़ाइलों को स्थानांतरित करना चाहते हैं, तो क्रम होना चाहिए:

ALTER DATABASE database_name SET OFFLINE;
... move the file(s) to new location
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );
ALTER DATABASE database_name SET ONLINE;

पहले ऑफ़लाइन नोट करें; बाद में फ़ाइलों को स्थानांतरित करें और SQL सर्वर को नए स्थान के बारे में बताएं।

यदि आपको संपूर्ण SQL सर्वर आवृत्ति को नीचे ले जाने की आवश्यकता है ("शेड्यूल किए गए डिस्क रखरखाव के लिए स्थानांतरण के लिए प्रक्रिया देखें"), तो सबसे पहले फ़ाइल स्थानों को संशोधित करना सबसे अच्छा है ताकि जब आवृत्ति को पुनरारंभ किया जाए, तो फ़ाइलों को खोजने में कोई समस्या न हो नए स्थानों में।


1

मुझे पता है कि यह एक पुराना सवाल है, लेकिन क्या आप नए स्थान में दूसरी लॉग फ़ाइल (जो कि मूल के बजाय DB द्वारा प्रयोग की जाती है) को जोड़ नहीं सकते हैं, फिर मूल को सिकोड़ / हटा सकते हैं?

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