解决PL/SQL developer 不能成功连接本地数据库的错误,错误代码:ora-12170

  背景:
  使用 pl/sql developer连接本地版本为 Oracle10gXEUniv 10.2.0的数据库,一开始 pl/sql developer能够成功连接登录,但后来我觉得 Oracle每次都启动服务太过占用内存,于是将 OracleServiceXEOracleXETNSListener服务关闭,在需要使用数据库的时候在启动这两个服务。但当我再次启动这两个服务,并用 Pl/sql developer进行连接时出现 ora-12170 tns 连接超时的错误。
=====================================================================
  解决办法:
  修改目录 E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server\NETWORK\ADMIN下的文件 tnsnames.oralistener.ora将这两个文件中 HOST后面的主机都修改为 127.0.0.1然后重启 OracleServiceXEOracleXETNSListener服务
这时 pl/sql developer连接 oracle时报出 ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 的错误 ,再次修改 listener.ora文件,修改前该文件内容为
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
  )
 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )
 
DEFAULT_SERVICE_LISTENER = (XE)
 
修改的方式是:再在该文件中添加一个需要连接的数据库实例的描述,就是添加一个SID_DESC,我自己连接的数据库实例是XE,添加后的文件内容为:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = XE)
      (ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)
)
/* 红色字体部分即为新加的数据库实例 XE 的实例描述,注意该实例描述的 ORACLE_HOME 后面不能像其它实例那样加 (PROGRAM = extproc), 否则会报“ ORA-28547: TNS: 连接服务器失败,可能是 Net8 管理错误。”*/
  )
 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )
 
DEFAULT_SERVICE_LISTENER = (XE)
 

你可能感兴趣的:(oracle,数据库,ORA-12514,pl/sql,ORA-28547)