ओरेकल tnsnames.ora में सेवा नाम से कैसे अलग है


178

मुझे उनमें से दो की आवश्यकता क्यों है? जब मुझे एक या दूसरे का उपयोग करना होगा?


1
जब मेरे पास SID नाम है तो हमारी सेवा का नाम कैसे मिलेगा?
मृणाल सौरभ

जवाबों:


154

@DAC द्वारा उद्धरण

संक्षेप में: SID = कनेक्ट करते समय आपके DB, ServiceName = उपनाम का अद्वितीय नाम

सख्ती से सच नहीं। SID = INSTANCE का अनूठा नाम (जैसे मशीन पर चलने वाली ऑरेकल प्रक्रिया)। ओरेकल "डेटाबेस" को फाइल मानता है।

सेवा का नाम = एक नाम (या कई उदाहरण) के लिए उपनाम। इसका मुख्य उद्देश्य यह है कि यदि आप एक क्लस्टर चला रहे हैं, तो क्लाइंट "मुझे SALES.acme.com से कनेक्ट कर सकता है" कह सकता है, DBA मक्खी पर ऐसे उदाहरणों की संख्या को बदल सकता है जो SALES.acme.com अनुरोधों के लिए उपलब्ध हैं, या यहां तक ​​कि SALES.acme.com को किसी भी सेटिंग्स को बदलने की आवश्यकता वाले क्लाइंट के बिना पूरी तरह से अलग डेटाबेस में ले जाएं।


1
तो, अपने उदाहरण में, हो सकता है SIDs Sales1, Sales2है, और Sales3, जो सभी सेवा का नाम माध्यम से उपलब्ध हैं Sales?

1
मुझे लगता है कि विपरीत मामला है: आपके पास एक एसआईडी है जो कई सेवाओं के रूप में उपलब्ध है। फिर आप सेवाओं में से एक ले सकते हैं, और इसे अलग SID / डेटाबेस पर इंगित कर सकते हैं।
कॉलिन निकोल्स

क्या हमारे पास Oracle SID नाम TNS नाम के समान हो सकता है? क्या यह एक समस्या होगी?
user2441441

2
@ user2441441: मैथ्यू ने जो स्पष्टीकरण दिया है, उसे देखते हुए, मुझे लगता है कि आप इस धारणा में सही हैं कि कई SID और एक बार सेवा हो सकती है जो सभी SIDs का सार करती है
Dwarak

26

कृपया देखें: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm

Oracle SIDs और Oracle Service NAMES में क्या अंतर है। एक कॉन्फ़िगर टूल सेवा के नाम के लिए दिखता है और फिर SID के लिए अगला दिखता है! क्या चल रहा है?!

Oracle SID एक अनूठा नाम है जो विशिष्ट रूप से आपके उदाहरण / डेटाबेस की पहचान करता है जहां सेवा का नाम TNS उपनाम है जिसे आप तब देते हैं जब आप दूरस्थ रूप से अपने डेटाबेस से जुड़ते हैं और यह सेवा नाम आपके क्लाइंट में Tnsnames.ora फ़ाइल में दर्ज किया जाता है और यह हो सकता है SID के समान और आप इसे अपनी इच्छानुसार कोई अन्य नाम भी दे सकते हैं।

SERVICE_NAME, oracle 8i के बाद की नई सुविधा है जिसमें डेटाबेस श्रोता के साथ खुद को पंजीकृत कर सकता है। यदि डेटाबेस इस तरह से श्रोता के साथ पंजीकृत है, तो आप tnnames.ora में SERVICE_NAME पैरामीटर का उपयोग कर सकते हैं - अन्यथा tnsnames.ora में SID का उपयोग करें।

यदि आपके पास OPS (RAC) है, तो आपके पास प्रत्येक उदाहरण के लिए अलग-अलग SERVICE_NAME होगा।

SERVICE_NAMES डेटाबेस सेवा के लिए एक या एक से अधिक नामों को निर्दिष्ट करता है जिससे यह उदाहरण जुड़ता है। एक ही डेटाबेस के विभिन्न उपयोगों के बीच अंतर करने के लिए आप कई सेवाओं के नाम निर्दिष्ट कर सकते हैं। उदाहरण के लिए:

SERVICE_NAMES = sales.acme.com, widgetsales.acme.com

आप एक एकल सेवा की पहचान करने के लिए सेवा नामों का उपयोग भी कर सकते हैं जो प्रतिकृति के उपयोग के माध्यम से दो अलग-अलग डेटाबेस से उपलब्ध है।

Oracle पैरेलल सर्वर वातावरण में, आपको हर उदाहरण के लिए यह पैरामीटर सेट करना होगा।

संक्षेप में: SID = आपके DB उदाहरण का अद्वितीय नाम, ServiceName = कनेक्ट करते समय उपयोग किया जाने वाला उपनाम


मैं उलझन में हूं। ऐसा नहीं होना चाहिए कि आरएसी में, आपके पास प्रत्येक उदाहरण के लिए अलग "INSTANCE_NAME" होगा? और एक SERVICE_NAME कई उदाहरणों से संबद्ध हो सकता है?
इवान सतरिया

20

मुझे पता है कि यह प्राचीन है, जब बारीक उपकरण, उपयोग, उपयोगकर्ताओं या लक्षणों के साथ व्यवहार किया जाता है: किसी का नाम और सेवा नामकरण आपके tnsnames प्रविष्टियों की तरह थोड़ा फ्लेक्स जोड़ सकते हैं:

mySID, mySID.whereever.com =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = myHostname)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = mySID.whereever.com)
    (SID = mySID)
    (SERVER = DEDICATED)
  )
)

मैंने सोचा था कि मैं इसे यहां छोड़ दूंगा क्योंकि यह सवाल के लिए मामूली रूप से प्रासंगिक है और जब ओरेकल नेटवर्किंग के स्पष्ट idiosyncrasies से कुछ कम के आसपास बुनाई का प्रयास करने में मददगार हो सकता है।


5

SID और सेवा नाम क्या है

कृपया https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm पर oracle के दस्तावेज़ देखें

यदि भविष्य में उपरोक्त लिंक पहुँच योग्य नहीं है, तो इस उत्तर को लिखने के समय, उपरोक्त लिंक आपको "डेटाबेस नेट सर्विसेज़ एडमिनिस्ट्रेटर गाइड" के चैप्टर कॉन्सेप्टस चैप्टर में "डेटाबेस सेवा और डेटाबेस इंस्टेंस पहचान" विषय पर निर्देशित करेगा। । यह गाइड ओरेकल द्वारा "ओरेकल डेटाबेस ऑनलाइन डॉक्यूमेंटेशन, 10 जी रिलीज़ 2 (10.2)" के हिस्से के रूप में प्रकाशित किया गया है।

जब मुझे एक या दूसरे का उपयोग करना होगा? मुझे उनमें से दो की आवश्यकता क्यों है?

आरएसी पर्यावरण में मानचित्रण के नीचे विचार करें,

SID SERVICE_NAME
बॉब
1 बॉब बॉब
2 बॉब बॉब
3 बॉब बॉब 4 बॉब

यदि लोड संतुलन को कॉन्फ़िगर किया गया है, तो श्रोता सभी चार सिड्स में कार्यभार को 'संतुलित' करेगा। यहां तक ​​कि अगर लोड संतुलन कॉन्फ़िगर किया गया है, तो आप हर समय bob1 से कनेक्ट कर सकते हैं, अगर आप SERVICE_NAME के ​​बजाय SID का उपयोग करके करना चाहते हैं।

कृपया देखें, https://community.oracle.com/thread/4049517


0

ओरेकल शब्दावली के अनुसार:

SID एक Oracle डेटाबेस उदाहरण के लिए एक अद्वितीय नाम है। ---> Oracle डेटाबेस के बीच स्विच करने के लिए, उपयोगकर्ताओं को वांछित SID <- निर्दिष्ट करना होगा। SID एक TNSNAMES.ORA फ़ाइल में कनेक्ट डिस्क्रिप्टर के कनेक्ट डेटा भागों में और LISTENER.ORA फ़ाइल में नेटवर्क श्रोता की परिभाषा में शामिल है। जिसे सिस्टम आईडी के रूप में भी जाना जाता है। Oracle सेवा नाम "MyOracleServiceORCL" की तरह कुछ भी वर्णनात्मक हो सकता है। Windows में, आप Windows सेवा के तहत सेवा के रूप में अपना सेवा नाम चला सकते हैं।

आपको TNSNAMES.ORA में SID का उपयोग एक बेहतर दृष्टिकोण के रूप में करना चाहिए।

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