Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

UNC शेयर पर SQL सर्वर डेटाबेस

AttachDbFileName एक भयानक और भ्रामक विशेषता है। क्या होता है कि प्रत्येक एप्लिकेशन जो इस "डेटाबेस" से जुड़ता है, डेटा फ़ाइल की एक प्रति बनाता है। तो अगर Machine1 जोड़ता है, और परिवर्तन करता है, वे परिवर्तन Machine2 . के लिए अदृश्य हैं . यह सिंगल-मशीन परिदृश्य में भी बहुत भ्रम का कारण बनता है क्योंकि लोग विजुअल स्टूडियो के माध्यम से जुड़ेंगे, कुछ अपडेट करेंगे, और फिर इसे प्रबंधन स्टूडियो से नहीं देख पाएंगे। या ठीक इसके विपरीत। User Instance सुविधा का बहिष्कार कर दिया गया है किसी कारण से; कृपया इन दोनों का उपयोग बंद कर दें।

चूंकि आप चाहते हैं कि एक से अधिक मशीनें/एप्लिकेशन उसी . से कनेक्ट हों आपके डेटाबेस की प्रतिलिपि, आप जो समाधान चाहते हैं वह यह है कि डेटाबेस की एक प्रति SQL सर्वर के एकल उदाहरण से जुड़ी हो, और दोनों एप्लिकेशन/मशीन बस उस एकल प्रति से कनेक्ट हों।

MACHINE1-PC . पर यह करें:

  1. ले जाएँ ShopDatabase.mdf और इससे जुड़े .ldf अपने उपयोगकर्ता फ़ोल्डर से और अपने उदाहरण के लिए डेटा फ़ोल्डर में फ़ाइल करें। यह कुछ होगा जैसे:

  2. .\SQLEXPRESS . का उपयोग करके स्थानीय एक्सप्रेस उदाहरण से कनेक्ट करें . डेटाबेस संलग्न करें निम्नलिखित कोड का उपयोग करना:

    CREATE DATABASE ShopDatabase 
      ON (FILENAME = 'C:\...\ShopDatabase.mdf'), 
      -------------------^^^ fill this in
         (FILENAME = 'C:\...\ShopDatabase_Log.ldf') 
      -------------------^^^ fill this in
    FOR ATTACH;
    
    -- if there is no log file, you may need to do:
    
    CREATE DATABASE ShopDatabase 
      ON (FILENAME = 'C:\...\ShopDatabase.mdf') 
      -------------------^^^ fill this in
    FOR ATTACH_REBUILD_LOG;
    
  3. MACHINE1-PC . का बाहरी IP पता निर्धारित करें (आप इसे किसी अन्य मशीन से पिंग के माध्यम से कर सकते हैं - स्थानीय रूप से यह आपको 127.0.0.1 . बताएगा जो बेकार है)। यह मानते हुए कि आपके पास एक निश्चित आईपी है और डीएचसीपी का उपयोग नहीं कर रहे हैं, यह संभवतः कनेक्ट करने का एक अधिक विश्वसनीय तरीका होने जा रहा है, या कम से कम एक अतिरिक्त कदम (नाम को हल करना) गायब है। यदि आप डीएचसीपी का उपयोग करते हैं, हालांकि आप इस पर भरोसा नहीं करना चाहेंगे क्योंकि आपका आईपी पता संभावित रूप से समय के साथ बदल जाएगा। आपकी कनेक्शन स्ट्रिंग अब होनी चाहिए:

    Data Source=MACHINE1-PC\SQLEXPRESS;
      Network=DBMSSOCN;
      Integrated Security=True;
      Initial Catalog=ShopDatabase;
    
    -- or:
    
    Data Source=<<IP Address>>\SQLEXPRESS;
      Network=DBMSSOCN;
      Integrated Security=True;
      Initial Catalog=ShopDatabase;
    
    -- (replace <<IP Address>> of course)
    

Machine1 . पर आपकी कनेक्शन स्ट्रिंग कर सकती है Data Source=.\SQLEXPRESS का उपयोग करें , लेकिन एक-दो कीस्ट्रोक्स को बचाने की तुलना में सुसंगत होना बेहतर है। इस तरह यदि आप अपनी कॉन्फ़िग फ़ाइल आदि में अन्य परिवर्तन करते हैं, तो उन्हें मशीन का नाम बदलने की आवश्यकता के बिना अन्य मशीनों में वितरित किया जा सकता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या डीबी में एक ही नाम के साथ बाधाएं हो सकती हैं?

  2. विंडो फ़ंक्शंस - रीसेट के साथ कुल चल रहा है

  3. SQL सर्वर फेलओवर क्लस्टर इंस्टालेशन -4

  4. SQL Server 2000 से 2008 माइग्रेशन - DISTINCT का उपयोग करते समय समस्या के आधार पर ऑर्डर करें

  5. SQL सर्वर:संचार लिंक विफलता आवश्यक SSL (पैकेट प्राप्त करने में विफल)