ORA-12505, TNS: ผู้ฟังไม่ทราบ SID ที่ระบุในตัวอธิบายการเชื่อมต่อ


154

ฉันได้ติดตั้ง Oracle 11g Express Edition Release 2 ในระบบปฏิบัติการ windows 7 64 บิตของฉันแล้วและพยายามรันโปรแกรม JDBC จากนั้นฉันก็พบข้อผิดพลาดดังต่อไปนี้:

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.jlcindia.jdbc.JDBCUtil.geOracleConnection(JDBCUtil.java:28)
    at Lab3O.main(Lab3O.java:15)
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:385)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
    ... 8 more

1
การเริ่มต้น OracleServiceXE ด้วยตนเองจากบริการที่ทำงานให้ฉัน
Sen

คำตอบ:


184

ฉันแก้ไขปัญหานี้ด้วยการแก้ไขสตริง jdbc ของฉัน

ตัวอย่างเช่นสตริง jdbc ที่ถูกต้องควรเป็น ...

jdbc:oracle:thin:@myserver:1521/XE

แต่สตริง jdbs ที่ฉันใช้คือ ...

jdbc:oracle:thin:@myserver:1521:XE

(หมายเหตุ: ระหว่าง1521และXEควรเป็น/)

สตริง jdbc ที่ไม่ดีนี้ให้ข้อผิดพลาด ORA-12505 ให้ฉันด้วย


53
ถ้าคุณใช้ a / มันเป็นชื่อบริการสุทธิถ้าคุณใช้โคลอนเป็น SID
eckes

89

มีบางสิ่งที่อาจทำให้เกิดปัญหานี้ แต่ก่อนที่คุณจะเริ่มต้นกับ JDBC คุณต้องแน่ใจว่าคุณสามารถเชื่อมต่อกับฐานข้อมูลโดยใช้ SQL * Plus หากคุณไม่คุ้นเคยกับ SQL * Plus เป็นเครื่องมือบรรทัดคำสั่งสำหรับการเชื่อมต่อกับฐานข้อมูล Oracle ซึ่งเป็นส่วนมาตรฐานของ Oracle มาเป็นเวลานานและรวมอยู่ใน Oracle XE

เมื่อเชื่อมต่อกับฐานข้อมูล Oracle โดยใช้ JDBC คุณจะไม่เชื่อมต่อกับฐานข้อมูลโดยตรง แต่คุณเชื่อมต่อกับผู้ฟัง TNS ซึ่งจะเชื่อมต่อคุณกับฐานข้อมูลแทน ข้อผิดพลาดORA-12505หมายความว่าผู้ฟังเพิ่มขึ้นและคุณสามารถเชื่อมต่อได้ แต่ไม่สามารถเชื่อมต่อคุณกับฐานข้อมูลได้เนื่องจากไม่ทราบว่าฐานข้อมูลนั้นอยู่ มีสองเหตุผลสำหรับสิ่งนี้:

  • ฐานข้อมูลยังไม่เริ่มต้นขึ้น
  • ฐานข้อมูลไม่ได้ลงทะเบียนกับผู้ฟังเช่นเนื่องจากฐานข้อมูลเริ่มต้นก่อนที่ผู้ฟัง (เมื่อฐานข้อมูลเริ่มต้นระบบจะลงทะเบียนตัวเองพร้อมฟังถ้ามันกำลังทำงานอยู่หากผู้ฟังไม่ทำงานฐานข้อมูลจะไม่ลงทะเบียนตัวเองและหากผู้ฟังเริ่มทำงานมันจะไม่ไปค้นหาฐานข้อมูลที่อาจ ลงทะเบียนกับมัน.)

ORA-12505 หมายความว่าผู้ฟังรู้เกี่ยวกับฐานข้อมูลนั้น แต่ผู้ฟังไม่ได้รับการแจ้งเตือนจากฐานข้อมูลว่าฐานข้อมูลนั้นอยู่ (หากคุณพยายามเชื่อมต่อกับฐานข้อมูลผิดโดยใช้ SID ผิดคุณจะได้รับข้อผิดพลาด ORA-12154 "TNS: ไม่สามารถแก้ไขตัวระบุการเชื่อมต่อที่ระบุ")

บริการใดของ Oracle ที่ทำงานใน Services snap-in (เปิดสิ่งนี้จากแผงควบคุม> เครื่องมือการดูแลระบบ> บริการหรือเพียงแค่เริ่ม> เรียกใช้> services.msc.) คุณต้องใช้บริการ OracleServiceXE และ OracleXETNS ตัวกรองจะทำงาน

หากทั้งสองบริการเริ่มทำงานคุณสามารถเชื่อมต่อกับฐานข้อมูลใน SQL * Plus โดยใช้คำสั่งต่อไปนี้ได้หรือไม่ (ฉันสมมติว่าคุณกำลังเรียกใช้สิ่งเหล่านี้บนเครื่องที่คุณติดตั้ง Oracle XE ไว้)

ระบบ sqlplus / ระบบรหัสผ่าน @XE
ระบบ sqlplus / ระบบรหัสผ่าน
sqlplus / as sysdba

(แทนที่system-passwordด้วยรหัสผ่านที่คุณกำหนดไว้สำหรับผู้ใช้ SYS และ SYSTEM ระหว่างการติดตั้ง Oracle XE)

ตัวแรกของทั้งสามตัวเชื่อมต่อผ่านตัวรับฟัง TNS แต่ตัวที่สองตัวที่สองเชื่อมต่อโดยตรงกับฐานข้อมูลโดยไม่ต้องผ่านตัวฟังและจะทำงานเฉพาะเมื่อคุณอยู่บนเครื่องเดียวกับฐานข้อมูล หากคนแรกล้มเหลว แต่อีกสองคนประสบความสำเร็จการเชื่อมต่อ JDBC ก็จะล้มเหลวเช่นกัน ALTER SYSTEM REGISTERถ้าเป็นเช่นนั้นเชื่อมต่อกับฐานข้อมูลโดยใช้อย่างใดอย่างหนึ่งของอีกสองและเรียกใช้ จากนั้นออกจาก SQL * Plus และลองแบบฟอร์มแรกอีกครั้ง

หากบัญชีที่สามล้มเหลว แต่บัญชีที่สองใช้งานได้ให้เพิ่มบัญชีผู้ใช้ของคุณไปยังกลุ่ม ora_dba ทำสิ่งนี้ในแผงควบคุม> การจัดการคอมพิวเตอร์> ผู้ใช้และกลุ่มภายใน

เมื่อคุณได้รับการเชื่อมต่อของแบบฟอร์ม

ระบบ sqlplus / ระบบรหัสผ่าน @XE

ในการทำงานคุณควรเชื่อมต่อกับ Oracle XE ผ่าน JDBC (บังเอิญคุณไม่ได้แสดงรหัส JDBC ที่คุณใช้เชื่อมต่อกับฐานข้อมูล แต่ฉันสงสัยว่ามันอาจจะถูกต้องเพราะอาจมีข้อผิดพลาดอื่น ๆ อีกมากมายหากส่วนของสตริงการเชื่อมต่อผิด)


3
@Raj: ฉันไม่เห็นสิ่งที่การแก้ไขของคุณนำไปสู่คำตอบดังนั้นฉันจึงลบมัน หากคุณต้องการมีส่วนร่วมในคำถามจำนวนมากโปรดโพสต์คำตอบของคุณเองแทนที่จะแก้ไขคนอื่น
ลุควู้ดเวิร์ด

@LukeWoodward ฉันได้รับข้อผิดพลาดนี้ SP2-0734: unknown command beginning "system/ora..." - rest of line ignored. ในทุก 3
vaibhavcool20

1
@qtpseleniumSupport: ข้อความนั้นบอกว่าคุณอยู่ใน SQL * Plus และคุณป้อนบรรทัดsystem/ora...(หรือ SQL * Plus อ่านบรรทัดนั้นจากไฟล์ที่คุณบอกให้อ่าน) บรรทัดคำสั่งที่ฉันให้ไว้ด้านบนมีจุดประสงค์เพื่อใช้จากหน้าต่าง command-prompt / shell / Terminal หากคุณกำลังใช้ SQL * Plus แทนที่ด้วยsqlplus connect
ลุควู้ดเวิร์ด

"ฐานข้อมูลไม่ได้ลงทะเบียนกับผู้ฟังเช่นเพราะฐานข้อมูลเริ่มต้นก่อนที่จะรับฟัง" - นี่มันขอบคุณ!
Ursache

47

ฉันก็มีข้อผิดพลาดเหมือนกัน แต่เมื่อลองทั้งสามข้อล้มเหลว หากทั้งสามข้อข้างต้นล้มเหลวลองใช้สถานะ LSNRCTL หากคุณพบบริการ (XE ในกรณีของฉัน) ลองทำสิ่งนี้

sqlplus /nolog
conn  system
alter system register;  
exit  
lsnrctl status  

ตอนนี้คุณสามารถเห็นบริการ
แม้ว่าจะไม่เห็นลองนี้

sqlplus /nolog  
conn system  
alter system set local_listener = '(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' scope = both;  
alter system register;  
exit  
lsnrctl status

สิ่งนี้น่าจะใช้ได้ ...


2
คุณทำมันคน! หลังจากตั้งค่าlocal_listenerผู้ฟัง orcl จะถูกแสดงในlsnrctlขณะนี้ ขอบคุณหนึ่งล้าน!
asgs

สิ่งนี้ทำให้ระบบของฉันทำงานได้ แต่โปรดทราบว่าฉันเรียกใช้สิ่งต่อไปนี้: ALTER SYSTEM ตั้งค่า local-listener = XE;
Daniel Williams

เมื่อฉันพิมพ์: 'แก้ไขการตั้งค่าระบบ local_listener =' (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521)) 'scope = both;' มันส่งคืนข้อผิดพลาด: ORA-65040: operation not allowed from within a pluggable databaseมันหมายความว่าอะไร? ไม่สามารถกำหนดค่า JDBC: /
Alg_D

1
ทั้งคำตอบที่ได้รับการโหวตสูงสุดช่วย แต่อันนี้ช่วยได้มากกว่า ดูเหมือนว่าฉันไม่ได้มี 127.0.0.1 เป็นที่อยู่ผู้ฟัง (ฉันมีหนึ่งที่มีชื่อท้องถิ่นของพีซีของฉัน) ดังนั้นโดยการเพิ่มอันใหม่นี้มันจึงเริ่มทำงาน
johnbr

alter system set local_listener = ... ทำงานให้ฉัน
Ben Asmussen

31

เมื่อคุณได้รับข้อผิดพลาดนี้ "ORA-12505, TNS: ผู้ฟังไม่รู้จัก SID ที่ระบุในตัวอธิบายการเชื่อมต่อ"

วิธีแก้ปัญหา: เปิดบริการแล้วเริ่มต้นOracleServiceXEหลังจากนั้นลองเชื่อมต่อ ...


ฉันมีปัญหาเดียวกัน แต่เมื่อใช้งาน OracleServiceXE ดังนั้นการรีสตาร์ทบริการ OracleServiceXE จึงเหมาะกับฉัน ไม่รู้ทำไมเหรอ!
Hamedz

เมื่อมองหา OracleServiceXE โปรดทราบว่า XE สอดคล้องกับฐานข้อมูล SID เพื่อให้แน่ใจว่าคุณกำลังมองหาบริการที่ถูกต้อง OracleService [SID]
Sandoval0992

10

ฉันพบเหตุผลบางอย่างสำหรับข้อยกเว้นนี้พวกเขาคือ

1) ชื่อของฐานข้อมูล XE โดยค่าเริ่มต้นดังนั้น URL จะเป็น " jdbc: oracle: thin: @localhost: 1521: XE "

2) ตรวจสอบให้แน่ใจว่า OracleServiceXE, OracleXETNSListener กำลังทำงานอยู่จะอยู่ในแผงควบคุม \ Items \ Administrative Tools \ Servicesในแผงควบคุม \


8

ฉันแก้ไขปัญหานี้โดยแก้ไขรหัส JDBC ของฉัน

สตริง JDBC ที่ถูกต้องควรเป็น ...

conection = DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:xe","system","ishantyagi");

แต่สตริง JDBC ที่ฉันใช้คือ ...

conection = DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:orcl","system","ishantyagi");

ดังนั้นความผิดพลาดในการระบุ orcl แทน xe แสดงข้อผิดพลาดนี้เนื่องจากชื่อ SID ผิด


ในกรณีของฉันconection = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:orcl","system","ishantyagi");ทำงาน
ปราณกุมารซาร์การ์

8

ปัญหาของฉันได้รับการแก้ไขเมื่อฉันใช้รหัสด้านล่าง:

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@IPAddress:1521/servicename","userName","Password");

7

ต้องเผชิญกับข้อผิดพลาดที่คล้ายกันการแก้ปัญหาด้านบนไม่ได้ช่วยอะไร มีปัญหาในไฟล์ listner.ora โดยไม่ได้ตั้งใจฉันเพิ่มSIDจากการSID_LISTดูด้านล่าง (ส่วนระหว่างดวงดาว *)

 SID_LIST_LISTENER =
      (SID_LIST =

        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
          (PROGRAM = extproc)
        )
        )

 *(SID_DESC =
           (SID_NAME = XE)
           (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
         )*
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        )
      )


    DEFAULT_SERVICE_LISTENER = (XE)

แก้ไขข้อผิดพลาดนี้ดังนี้:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
       (SID_NAME = XE)
       (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
     )
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )


DEFAULT_SERVICE_LISTENER = (XE)

หยุดและฐานข้อมูล ป้อนคำอธิบายรูปภาพที่นี่

หยุดผู้ฟัง OracleServiceXE และ OracleXETNSListener ด้วยตนเองเนื่องจากไม่ได้หยุดโดยอัตโนมัติโดยไปที่รายการ \ Administrative Tools \ Services แผงควบคุม \ Tools \ Services รีสตาร์ทฐานข้อมูลและทำงานได้อย่างมีเสน่ห์


4

ตอนแรกฉันมาที่นี่พร้อมกับปัญหาเดียวกัน ฉันมี jus ติดตั้ง Oracle 12c บน Windows 8 (64- บิต) แล้ว แต่ฉันได้แก้ไขมันด้วย 'TNSPING xe' ในบรรทัดคำสั่ง ... หากการเชื่อมต่อไม่ได้ถูกสร้างขึ้นมาหรือไม่พบชื่อให้ลองใช้ชื่อฐานข้อมูล ในกรณีของฉันมันคือ 'orcl' ... 'TNSPING orcl' อีกครั้งและถ้า pings สำเร็จแล้วคุณต้องเปลี่ยน SID เป็น 'orcl' ในกรณีนี้ (หรือชื่อฐานข้อมูลใดที่คุณใช้) ...


4

ความเป็นไปได้อย่างหนึ่งที่ฉันไม่ได้เห็นกันอย่างกว้างขวางก็คืออาจมีปัญหาในการแก้ไขชื่อโฮสต์บนเครื่องโฮสต์ หากไม่มีรายการสำหรับ $ (ชื่อโฮสต์) ใน / etc / hosts ผู้ฟังของ Oracle จะสับสนและจะไม่เกิดขึ้นอีก

นั่นกลายเป็นปัญหาของฉันและการเพิ่มชื่อโฮสต์และที่อยู่ IP ใน / etc / hosts ช่วยแก้ไขปัญหาได้



4

หากคุณมีการเชื่อมต่อที่ใช้งานได้ใน Oracle SQL Developer ให้ใช้ข้อมูลในเมนูการเชื่อมต่อเพื่อสร้าง URL ของคุณดังที่อธิบายไว้ในภาพต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ในตัวอย่างด้านบน URL จะเป็น: jdbc:oracle:thin:@ORADEV.myserver.com:1521/myservice

โปรดทราบว่าหากคุณกำลังใช้ SID อยู่จะมีเครื่องหมายโคลอน (":") แทนเครื่องหมายทับ ("/") หลังชื่อโฮสต์


2

ฉันก็เผชิญกับปัญหาเดียวกัน ฉันติดตั้ง Oracle Express รุ่น 10g ในระบบปฏิบัติการ Windows XP โดยใช้ VMware แล้วและก็ใช้งานได้ดี เนื่องจากมันพิมพ์เคียวรี SQL ที่น่าอึดอัดใจมากในยูทิลิตี้ SQL ที่ให้บริการโดย 10g และตั้งแต่ฉันเคยทำงานกับนักพัฒนา SQL ฉันจึงติดตั้งนักพัฒนา SQL 32 บิตใน XP และลองเชื่อมต่อกับ DB SID "XE" ของฉัน แต่การเชื่อมต่อล้มเหลวด้วย error-ORA-12505 TNS listener ไม่รู้จัก SID ที่ระบุในตัวอธิบายการเชื่อมต่อ ฉันอยู่ที่ทะเลว่าปัญหานี้เกิดขึ้นได้อย่างไรเนื่องจากมันทำงานได้ดีกับยูทิลิตี้ SQL และฉันได้สร้างการแมป Informatica เพียงเล็กน้อยโดยใช้แบบเดียวกัน ฉันเรียกดูสิ่งต่างๆมากมายที่นี่และใช้คำแนะนำที่เสนอให้ฉันหลังจากที่สถานะของ "lsnrctl" ในฟอรัมสาธารณะ แต่ไม่มีประโยชน์ อย่างไรก็ตามเมื่อเช้านี้ฉันพยายามสร้างการเชื่อมต่อใหม่อีกครั้ง และ Voila มันทำงานได้โดยไม่มีปัญหา ฉันคาดเดาหลังจากอ่านในไม่กี่โพสต์ที่บางครั้งผู้ฟังฟังก่อนที่จะเชื่อมต่อ DB หรือบางสิ่งบางอย่าง (ให้อภัยฉันสำหรับการอ้างอิงดิบของฉันเพราะฉันเป็นมือใหม่ที่นี่) แต่ฉันแนะนำให้รีสตาร์ทเครื่องและตรวจสอบอีกครั้ง


2

ฉันมีปัญหาเดียวกันดังนั้นเพื่อแก้ไขปัญหานี้ฉันแรกกำหนดค่าฟังของฉันโดยใช้ใหม่netcaหลังจากนั้นฉันลบฐานข้อมูลเก่าของฉันซึ่งเป็น ORCL โดยใช้dbcaแล้วฉันสร้างฐานข้อมูลใหม่อีกครั้งโดยใช้dbca


2

ฉันประสบปัญหาเดียวกันและแก้ไขได้โดยเริ่มบริการ OracleServiceXE ใหม่ Goto Services.msc จากนั้นตรวจสอบว่าบริการ 'OracleServiceXE' เปิดใช้งานแล้ว


2

ฉันแก้ไขปัญหานี้โดยเปลี่ยน " SID " เป็น " SERVICE_NAME " ในไฟล์ TNSNAMES.ora ของฉัน

โปรดดูว่าฐานข้อมูลของคุณขอ SID หรือ SERVICE_NAME

ไชโย


2

หากคุณใช้ Oracle Express Edition คุณควรมี URL นี้

jdbc: oracle: thin: @localhost: 1521: xe หรือ jdbc: oracle: thin: @localhost: 1521 / XE

ฉันมีปัญหาที่คล้ายกันกับ liquibase config plugin ใน pom.xml และฉันเปลี่ยนการกำหนดค่าของฉัน:

`<configuration>
   <driver>oracle.jdbc.OracleDriver</driver>
   <url>jdbc:oracle:thin:@localhost:1521:xe</url>
   <defaultSchemaName></defaultSchemaName>
   <username>****</username>
   <password>****</password>
</configuration>`

2

การเชื่อมต่อ = DriverManager.getConnection ("jdbc: oracle: thin: @localhost: 1521: xe", "สกอตต์", "เสือ");

ข้อผิดพลาดที่ฉันได้รับ:

java.sql.SQLException: ผู้ฟังปฏิเสธการเชื่อมต่อกับข้อผิดพลาดต่อไปนี้: ORA-12505, TNS: ผู้ฟังไม่รู้จัก SID ที่ให้ไว้ในตัวอธิบายการเชื่อมต่อตัวบ่งชี้การเชื่อมต่อที่ใช้โดยไคลเอ็นต์คือ: localhost: 1521: xe

ฉันจะแก้ไขมันได้อย่างไร:

การเชื่อมต่อ con = DriverManager.getConnection ("jdbc: oracle: thin: localhost: 1521: xe", "scott", "tiger");

(ลบ @)

ไม่ทราบสาเหตุ แต่ตอนนี้มันใช้งานได้ ...


1

ตรวจสอบโดยการทำ tnsping และชื่ออินสแตนซ์ในเครื่องโฮสต์ มันจะให้การตัดสินใจของคุณกับ tns และชื่อโฮสต์เวลาส่วนใหญ่แตกต่างกันซึ่งไม่ตรงกัน

ฉันแก้ไขปัญหาเช่นเดียวกัน

ในเครื่อง Unix $ tnsping (Enter)

มันให้คำอธิบาย tns เต็มที่ฉันพบว่าชื่อโฮสต์นั้นแตกต่าง .. :)


1

กรุณาตรวจสอบทั้งสองOracleServiceXEและมีสถานะเริ่มต้นเมื่อคุณนำทางผ่านOracleXETNSListenerstart->run->services.msc

สำหรับกรณีของฉันเท่านั้นที่OracleXETNSListenerเริ่มต้น แต่OracleServiceXEยังไม่ได้เริ่มเมื่อฉันเริ่มต้นด้วยright clicking -> startและตรวจสอบการเชื่อมต่อที่ใช้งานได้สำหรับฉัน


1

ฉันมีปัญหาที่คล้ายกันใน SQL Workbench

URL:

jdbc: oracle: thin: @ 111.111.111.111: 1111: xe

ไม่ทำงาน

URL:

jdbc: oracle: thin: @ 111.111.111.111: 1111: asdb

โรงงาน

สิ่งนี้ช่วยฉันในสถานการณ์ที่เป็นรูปธรรม ฉันกลัวว่าอาจมีเหตุผลอื่นอีกมากมายด้วยวิธีแก้ปัญหาที่แตกต่างกัน


0

มีปัญหาที่คล้ายกัน ปัญหาเริ่มเกิดขึ้นกะทันหัน - เรากำลังโหลด URL การเชื่อมต่อฐานข้อมูลที่สมดุล แต่ในการเชื่อมต่อ jdbc ฉันชี้ไปที่ฐานข้อมูลเดียวโดยตรง

เปลี่ยนเพื่อโหลด db db ที่สมดุลและใช้งานได้


2
เราขอแนะนำให้ใช้ URL สตริงการเชื่อมต่อแบบเต็มตามที่แสดง jdbc: oracle: thin: @ (DESCRIPTION = (ADDRESS = (HOST = myhost)) (PORT = 1521) (PROTOCOL = tcp)) (CONNECT_DATA = (SERVICE_NAME = myorcldbservicename))
Nirmala

0

ในกรณีของฉันไม่ได้ออกกำลังกายในที่สุดฉันก็เริ่ม oracle และ TNS listener ของฉันใหม่ ดิ้นรนเป็นเวลา 2 วัน


0

ฉันได้รับข้อผิดพลาดนี้ORA-12505, TNS: ผู้ฟังไม่รู้จัก SID ที่ระบุในตัวอธิบายการเชื่อมต่อในขณะที่ฉันพยายามเชื่อมต่อกับ oracle DB โดยใช้นักพัฒนา SQL

สตริง JDBC ที่ใช้คือjdbc: oracle: thin: @myserver: 1521 / XEเห็นได้ชัดว่าเป็นบริการที่ถูกต้องหนึ่งและบริการบังคับ Oracle ที่จำเป็นOracleServiceXE, OracleXETNSListener และทำงานอยู่

วิธีที่ฉันแก้ไขปัญหานี้ (ใน Windows 10)

 1. Open run command.
 2. Type services.msc 
 3. Find services with name OracleServiceXE and OracleXETNSListener in the list.
 4. Restart OracleServiceXE service first. After completing the restart try restarting OracleXETNSListener service.

0

นอกเหนือจากบริการที่รันอยู่ (OracleServiceXE, OracleXETNSListener) ที่มีโอกาสที่ซอฟต์แวร์ / ไฟร์วอลล์ป้องกันไวรัสของคุณอาจยังบล็อกพวกเขาอยู่ เพียงให้แน่ใจว่าพวกเขาจะไม่ถูกบล็อกป้อนคำอธิบายรูปภาพที่นี่



0

oracle ของฉันหยุดทำงานและฉันได้รับข้อผิดพลาดนี้ ฉันรีสตาร์ทเครื่องและลองวิธีแก้ไขปัญหาด้านบน ในที่สุดฉันเปิดบริการส่วนประกอบและเริ่มบริการ oracle อีกครั้งและทุกอย่างก็เริ่มทำงาน หวังว่านี่จะช่วยใครซักคน


0

ฉันเพิ่งสร้างลิงค์ฐานข้อมูลไม่ถูกต้อง

การแก้ไขที่ง่ายสำหรับฉันคือเพียงเปลี่ยน 'SID' เป็น SERVICE_NAME

CREATE DATABASE LINK my_db_link
CONNECT TO myUser IDENTIFIED BY myPassword
USING
'
(
    DESCRIPTION=
    (
        ADDRESS=
        (PROTOCOL=TCP)
        (HOST=host-name-heren)
        (PORT=1521)
    )
    (CONNECT_DATA=(SID=theNameOfTheDatabase))
)';

เปลี่ยนแปลง

SID=theNameOfTheDatabase

ถึง

SERVICE_NAME=theNameOfTheDatabase 

แก้ไขปัญหาของฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.