कनेक्शन स्ट्रिंग का उपयोग करके कमांड लाइन से एसक्यूएल प्लस से कनेक्ट करें


41

मान लीजिए कि मेरे पास एक Oracle डेटाबेस है। मेरे पास एक उपयोगकर्ता नाम = x, पासवर्ड = y, डेटाबेस = z है। इसके अलावा मैं बंदरगाह = ए, एसआईडी = बी, होस्टनाम = सी जानता हूं।

तो मुझे सही तरीके से कनेक्ट करने की आवश्यकता कैसे है? मैंने कई विकल्पों का उपयोग किया जैसे:

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'

sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=b)))

इन कमांड लाइनों को सबमिट करने से आमतौर पर मुझे त्रुटि संदेश मिलते हैं जैसे:

ORA-12560: TNS: प्रोटोकॉल अडैप्टर एरर
ORA-12514: TNS: श्रोता को वर्तमान में सेवा का पता नहीं है

अग्रिम में बहुत धन्यवाद!!


3
मान लें कि आपके पास सही होस्ट / पोर्ट है, तो यह मुझे लगता है कि उदाहरण श्रोता के साथ पंजीकृत नहीं है या पंजीकृत नहीं है।
— कॉलिन टी हार्ट

1
ezconnect का उपयोग करते हुए:sqlplus x/y@c:a/b
— डायटर डीएचकर

1
यदि मैं इसे उद्धरण के साथ घेरता हूं तो रिकॉर्ड के लिए, आपका दूसरा उदाहरण (कम से कम) मेरे लिए काम करता है। एक्स की तरह @ "(वर्णन = (ADDRESS = (प्रोटोकोल = टीसीपी) (मेजबान = ग) (पोर्ट = क)) (CONNECT_DATA = (सिड = ख)))"
— rogerdpack

विंडो में ओपन -> सेवाएं प्रारंभ-> oracleservicexe यह मेरे लिए काम करता है।
— प्रकाश

जवाबों:


74

क्या आप ने कोशिश की

sqlplus username/password@host:port/service
sqlplus x/y@c:a/b

sqlplus के आधुनिक संस्करण (संस्करण 11 या नए) इस वाक्यविन्यास को समझते हैं और आपको tnsnames.ora फ़ाइल की आवश्यकता नहीं है।


2
यह पूरी तरह से काम करता है
— गजोट्रेस

4
कौन सा संस्करण? CentOS ERROR पर मेरे लिए काम नहीं करता: ORA-12154: TNS: निर्दिष्ट पहचानकर्ता को हल नहीं कर सका
— Edmondo1984

डिफ़ॉल्ट पोर्ट संख्या: 1521
— इवान चाऊ

4
मेरे पास सेवा के बजाय SID है इसलिए ":" के बजाय "/" ने मेरे लिए काम किया sqlplus उपयोगकर्ता नाम / पासवर्ड @ होस्ट: port: sid
— Pratik Goenka

1
sqlplus है कि वाक्य रचना का v11.2.0.1.0समर्थन नहीं करता है के साथ आता है host:port। लगता है 11.2.0.4.0पहले से ही समर्थन करता है ...
— गावेंको

12

डेटाबेस से कनेक्ट करने के लिए tnsnames.ora फ़ाइल का उपयोग करना सबसे सरल है। इसके लिए इसे संपादित करें और एक नई प्रविष्टि जोड़ें: यह फ़ाइल सामान्य रूप से $ ORACLE HOME \ NETWORK \ ADMIN निर्देशिका में रहती है।

myDb  =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
   )
 (CONNECT_DATA =
   (SERVICE_NAME =b)
 )
)

और फिर आप db से जुड़ सकते हैं:

sqlplus x / y @ myDb


कमांड लाइन पर पासवर्ड रखने से बचने के लिए यहां टिप्पणियों में लिंक देखें: serverfault.com/a/87038/27813
— rogerdpack

7

मूल पोस्टर के लिए ... पहले विकल्प में आप एक बंद कोष्ठक से चूक गए

गलत: (आपका तार)

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'

सही बात:

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED))))'

2

आपकी sqlplus लाइन सही दिखती है, निम्नलिखित को सत्यापित करें:

  1. आप डेटाबेस सर्वर पर sysdba के रूप में कनेक्ट कर सकते हैं।
  2. आप उस उपयोगकर्ता के रूप में कनेक्ट कर सकते हैं जिसे आप डेटाबेस सर्वर पर स्वयं प्रयास कर रहे हैं।
  3. आप जिस कंप्यूटर से कनेक्ट करने का प्रयास कर रहे हैं, उससे डेटाबेस सर्वर को पिंग कर सकते हैं।
  4. आप उस कंप्यूटर से श्रोता को tnsping कर सकते हैं, जिससे आप कनेक्ट करने का प्रयास कर रहे हैं।

यदि इन सभी की जांच हो, तो आप यह सुनिश्चित करने के लिए एक नई कनेक्शन लाइन बना सकते हैं कि आपके पास टाइपो नहीं है।


1

शायद आपका डेटाबेस नहीं है। यदि मशीन को फिर से चालू किया गया था और उदाहरण ऑटोस्टार्ट पर सेट नहीं है (और इसे मैन्युअल रूप से शुरू नहीं किया गया था), तो आपको स्वयं सेवा शुरू करने की आवश्यकता हो सकती है।

यदि आपके पास सेवा स्क्रीन तक पहुंच है, तो आप इसे वहां से कर सकते हैं; या, आप इसे कमांड लाइन से कर सकते हैं।

कमांड प्रॉम्प्ट पर जाएं और निम्नलिखित कमांड दर्ज करें:

set oracle_sid=ORCL

net start oracleserviceORCL

पहले Oracle SID सेट करता है; दूसरा वास्तव में सेवा शुरू करता है।


0

sqlplus मदद से निकालने:

नेट सेवा नाम या आसान कनेक्ट के रूप में हो सकता है।

  @[<net_service_name> | [//]Host[:Port]/<service_name>]

-2

मैंने पाया कि दूरस्थ डेस्कटॉप कनेक्शन करना आसान है और कमांड प्रॉम्प्ट को फिर से खोलें:

sqlplus sys/YourPassword as sysdba


-3

आपको अपने डेटाबेस की सेवाएं शुरू करनी चाहिए। इसके लिए, Start मेनू -> Run पर जाएं और services.mscफिर शुरू करें फिर डेटाबेस सेवाओं के लिए वहां खोजें और इसे शुरू करें। उसके बाद यह काम करना शुरू कर देगा।


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