कैसे डिफ़ॉल्ट स्थान से SQL सर्वर लोकलDB उदाहरण के फ़ोल्डर को स्थानांतरित करने के लिए?


13

मुझे कई त्रुटियाँ मिलती हैं LocalDB( स्टार्टअप त्रुटि , SQL सर्वर प्रबंधन स्टूडियो से DB नहीं बना सकते हैं और जब बैकअप को बहाल करने की कोशिश कर रहे हैं तो कई समस्याएँ ) और मुझे जो कुछ भी ठीक नहीं मिला, उनमें से कुछ भी मदद नहीं कर रहा है। यह मुझे लगता है कि सभी त्रुटियों की जड़ें सही ढंग से स्थापित नहीं होने की अनुमति में हैं।

अब एक साधारण DDL तालिका निर्माण स्क्रिप्ट SQL सर्वर प्रबंधन स्टूडियो से ठीक काम करता है और मेरे उपयोगकर्ता खाते के फ़ोल्डर की जड़ में डेटाबेस बनाता है ( जैसा कि समझाया गया है )। उदाहरण फ़ोल्डर हालांकि ( उन्नत सेवाओं के साथ SQL सर्वर एक्सप्रेस कोD:\Users\[My name]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances स्थापित करने के बावजूद स्थित है) मैंने डेटा फ़ोल्डर को किसी अन्य स्थान पर निर्दिष्ट किया है - जहां केवल मानक SQL सर्वर एक्सप्रेस फाइलें संग्रहीत की जाती हैं, लेकिन इंस्टेंसेस नहीं है ) अनुमतियों के संबंध में समस्याग्रस्त लगती है (खाते के विपरीत) जड़) इसलिए और मेरी परियोजनाओं के बीच एक स्थान पर मेरे DB फ़ाइलों को रखने के लिए मैं उदाहरण फ़ोल्डर को दूसरी जगह स्थानांतरित करना चाहूंगा। क्या यह संभव है? मुझे संबंधित रजिस्ट्री प्रविष्टि भी नहीं मिली है।.mdfLocalDB

मैं SQL सर्वर एक्सप्रेस 2012 और उसी संस्करण के SSMS का उपयोग कर रहा हूं (नवीनतम अपडेट स्थापित)।

किसी भी सहायता की सराहना की जाएगी।

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

मैं कहीं और करने के लिए LocalDB उदाहरण के रूट फ़ोल्डर स्थापित करने की कोशिश की है, लेकिन मैं हर फ़ोल्डर की कोशिश की त्रुटि से इनकार कर दिया, अर्थात्

Alter सेटिंग 'Microsoft.SqlServer.Management.Smo.ObjectKeyBase' के लिए विफल रहा। (Microsoft.SqlServer.Smo)

------------------------------ अतिरिक्त जानकारी:

Transact-SQL स्टेटमेंट या बैच निष्पादित करते समय एक अपवाद उत्पन्न हुआ। (Microsoft.SqlServer.ConnectionInfo)


RegCreateKeyEx () त्रुटि 5, 'प्रवेश निषेध है।' (Microsoft SQL सर्वर, त्रुटि: 22002)

मुझे यह भी मिलता है, भले ही फ़ोल्डर में सभी के लिए पूर्ण नियंत्रण सेट हो! यहां तक ​​कि काम करने वाले एकमात्र फ़ोल्डर को और अधिक मनोरंजक बनाने के लिए, जो डिफ़ॉल्ट के रूप में सेट किया गया है (उपयोगकर्ता खाते की जड़) में कोई विशेष अनुमतियों को लागू नहीं किया गया है - सिर्फ वही जो मेरे उपयोगकर्ता के पास है (बस किसी अन्य फ़ोल्डर को मैंने सेट करने की कोशिश की है)। इसके प्रभाव में इसका अर्थ है कि मेरे सभी लोकल डीबीडी डेटाबेस की फाइलें मेरे खाते के रूट फ़ोल्डर में सहेजी गई हैं।


1
क्या होता है जब आप एक डेटाबेस बनाते हैं और डिफॉल्ट को लेने के बजाय स्पष्ट रूप से फाइलों को एक विशिष्ट स्थान पर सेट करते हैं?
हारून बर्ट्रेंड

1
आपके जवाब का धन्यवाद! यह काम करता है (अगर मैं अपने प्रोजेक्ट फ़ोल्डर की तरह एक उपयुक्त फ़ोल्डर का चयन करता हूं) लेकिन हर बार पथ निर्दिष्ट करना बहुत असुविधाजनक है। मैं बस विश्वास नहीं कर सकता कि चूक को बदलने का कोई तरीका नहीं है।
पीडोन

जब आप सर्वर नोड पर जाते हैं, तो राइट क्लिक, गुण, डेटाबेस पैरामीटर और डिफ़ॉल्ट स्थान स्विच करते हैं? वे मान जो आप स्थापित करने के दौरान निर्धारित करते हैं या कुछ और?
KookieMonster

मुझे ठीक वैसी ही समस्या हो रही है। मुझे लगता है कि कारण बदलने की फ़ोल्डर अनुमतियों में कोई प्रभाव नहीं है क्योंकि यह वास्तव में आपको बता रहा है कि रजिस्ट्री के साथ अनुमतियों की समस्या है, विशेष रूप से एक रजिस्ट्री कुंजी (अंतिम भाग देखें: RegCreateKeyEx)। दुर्भाग्य से मैं यह पता नहीं लगा सकता कि यह किस कुंजी को बनाना चाहता है।
डेविगलिक

जवाबों:


13

ऊपर मेरी टिप्पणी देखें। मैंने रजिस्ट्री एक्सेस का पता लगाने के लिए प्रोसेस मॉनिटर का उपयोग किया और पाया कि यह लिखने की कोशिश करते हुए एक्सेस अस्वीकृत हो रहा था:

3:16:40.8405491 PM sqlservr.exe 8756 RegCreateKey HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\MSSQLServer ACCESS DENIED Desired Access: Write

मैंने रजिस्ट्री संपादक को खोलकर और सभी को पूर्ण पहुंच प्रदान करके इसे प्राप्त किया HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\MSSQLServer। फिर मैंने डिफ़ॉल्ट स्थान को बदल दिया और एक बार हो जाने के बाद सभी को हटा दिया। इससे निम्नलिखित अतिरिक्त कुंजियाँ बनीं जो पहले नहीं थीं:

DefaultData

DefaultLog

BackupDirectory


धन्यवाद। मैं अंत में एक अलग मार्ग चला गया हूं, इसलिए यह परीक्षण नहीं कर सकता कि यह मेरे लिए कैसे काम करेगा।
पिडोन

3
मैंने अभी-अभी आपके द्वारा प्रस्तावित समाधान की कोशिश की थी और हाँ मुझे आपके द्वारा रजिस्ट्री में उल्लिखित एक्स्ट्रा मिला है। फिर भी यह मेरे स्थानीय डेटाबेस के वर्तमान गुणों मूल्यों को ओवरराइड या परिवर्तित नहीं करता है। रजिस्ट्री सभी 3 स्थानों के लिए वांछित मान दिखाती है, लेकिन SMSS में अभी भी स्थापना के द्वारा डिफ़ॉल्ट स्थान हैं। एमएस एसक्यूएल सर्वर कॉम्पैक्ट 3.5 एसपी 1 का उपयोग इस तरह के व्यवहार का कारण हो सकता है?
user3840527

2
यह एकमात्र ऐसी जगह है जहाँ मैं इस त्रुटि के बारे में कोई भी जानकारी पा सका हूँ । किसी दिन, हां, उस reg कुंजी के लिए अनुमतियों में फेरबदल करने से त्रुटि दूर हो जाती है, लेकिन जैसा कि user3840527 कहता है, SSMS के मूल डिफ़ॉल्ट स्थान बाद में भी हैं, इसे बाहर निकालने और फिर से खोलने के बाद भी।
यन दुरान

@Piedone, क्या आप संभवतः यह बता सकते हैं कि रेज कुंजी विधि का उपयोग करने के बजाय आपने क्या किया था? या कहीं ओर इशारा करते हैं जो विधि की व्याख्या करता है? धन्यवाद
यान डुरान

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