यह आलेख एक डॉकर कंटेनर पर SQL सर्वर इंस्टेंस से लिंक किए गए सर्वर को दूसरे डॉकर कंटेनर पर SQL सर्वर इंस्टेंस में बनाने की प्रक्रिया के माध्यम से चलता है। दोनों डॉकर कंटेनर एक ही मशीन पर हैं।
प्रक्रिया बिल्कुल वैसी ही है जिसका उपयोग आप किसी भी लिंक किए गए सर्वर को बनाने के लिए करेंगे (उदाहरण के लिए, भले ही SQL सर्वर इंस्टेंस अलग मशीनों पर हों और डॉकर कंटेनर में नहीं चल रहे हों)।
यहां सभी उदाहरण ट्रांजैक्ट-एसक्यूएल का उपयोग करते हैं। यह आपको ग्राफिकल यूजर इंटरफेस (जैसे एसएसएमएस) पर भरोसा किए बिना लिंक्ड सर्वर बनाने में सक्षम बनाता है।
लिंक किया गया सर्वर बनाएं
T-SQL का उपयोग करके एक लिंक्ड सर्वर बनाने के लिए, sp_addlinkedserver
निष्पादित करें लिंक किए गए सर्वर के साथ-साथ उसके स्रोत के नाम से गुजरते समय संग्रहीत प्रक्रिया।
लिंक किए गए सर्वर को बनाने का एक उदाहरण यहां दिया गया है:
EXEC sp_addlinkedserver @server=N'Homer', @srvproduct=N'', @provider=N'MSOLEDBSQL', @datasrc=N'172.17.0.2,1433';
इस मामले में, लिंक किए गए सर्वर का नाम होमर है और मैं डॉकटर कंटेनर का आईपी पता निर्दिष्ट करता हूं, उसके बाद टीसीपी पोर्ट। आवश्यकतानुसार सर्वर का नाम और आईपी पता/पोर्ट बदलें।
टर्मिनल विंडो में निम्न कोड चलाकर आप अपने डॉकटर कंटेनर का आईपी पता पा सकते हैं:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' Homer
अगर वह काम नहीं करता है, तो पुराने तरीके को आजमाएं:
docker inspect -f"{{.NetworkSettings.IPAddress}}" Homer
आवश्यकतानुसार कंटेनर का नाम बदलें।
लिंक किए गए सर्वर का परीक्षण करें
अब जब आपने लिंक किया हुआ सर्वर जोड़ लिया है, तो आप sp_testlinkedserver
. का उपयोग कर सकते हैं इसका परीक्षण करने के लिए:
EXEC sp_testlinkedserver Homer;
परिणाम (यदि सफल हो):
Commands completed successfully.
लॉगिन विफल?
यदि आपको "लॉगिन विफल" त्रुटि मिलती है, तो संभावना है कि आपके पास दूरस्थ सर्वर पर संबंधित लॉगिन नहीं है। आपको स्थानीय सर्वर पर समान क्रेडेंशियल के साथ संबंधित लॉगिन की आवश्यकता होगी।
वैकल्पिक रूप से, आप केवल लिंक किए गए सर्वर के लिए एक अलग लॉगिन बना सकते हैं।
अधिक विवरण और ऐसा करने के उदाहरणों के लिए SQL सर्वर (T-SQL उदाहरण) में एक लिंक्ड सर्वर बनाएँ देखें। वह आलेख लिंक किए गए सर्वर के लिए उसी विवरण का उपयोग करता है जो इस आलेख में है। इसमें एक वितरित क्वेरी चलाने और लिंक किए गए सर्वर पर एक पास-थ्रू क्वेरी को कॉन्फ़िगर करने के बाद चलाने का एक उदाहरण भी है।
लिंक किए गए सर्वर को छोड़ें
"होमर" नामक लिंक किए गए सर्वर और सभी संबद्ध लॉगिन को छोड़ने का एक उदाहरण यहां दिया गया है।
EXEC sp_dropserver 'Homer', 'droplogins';
droplogins
तर्क वैकल्पिक है, लेकिन यदि आप किसी लिंक किए गए सर्वर को छोड़ते समय इसे निर्दिष्ट नहीं करते हैं जिसमें संबद्ध दूरस्थ और लिंक सर्वर लॉगिन प्रविष्टियां हैं, या एक प्रतिकृति प्रकाशक के रूप में कॉन्फ़िगर किया गया है, तो एक त्रुटि संदेश वापस आ जाता है।
अधिक उदाहरणों के लिए टी-एसक्यूएल का उपयोग करके लिंक किए गए सर्वर को निकालें देखें।