解决oracle11g的ORA-12505问题

今天在使用SQL Developer的时候连不上去,报ORA-12505错误,但是SQLPLUS可以连接。

检查服务名,是OracleServiceORCL,那SID应当就是orcl,但是使用该SID仍然无法连接。

查阅资料后解决方法如下:

1.  打开数据库实例的目录(我的是C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN)

找到listener.ora文件(listener监听器进程的配置文件),使用文本编辑器打开。

内容如下:

[plain] view plaincopy

  1. # listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
  2. # Generated by Oracle configuration tools.
  3. SID_LIST_LISTENER =
  4. (SID_LIST =
  5. (SID_DESC =
  6. (SID_NAME = CLRExtProc)
  7. (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)
  8. (PROGRAM = extproc)
  9. (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
  10. )
  11. )
  12. LISTENER =
  13. (DESCRIPTION_LIST =
  14. (DESCRIPTION =
  15. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
  16. (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
  17. )
  18. )
  19. ADR_BASE_LISTENER = C:\app\Administrator

2.  添加SID信息(红色字体部分)

[plain] view plaincopy

  1. # listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
  2. # Generated by Oracle configuration tools.
  3. SID_LIST_LISTENER =
  4. (SID_LIST =
  5. (SID_DESC =
  6. (SID_NAME = CLRExtProc)
  7. (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)
  8. (PROGRAM = extproc)
  9. (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
  10. )
  11. <span style="color:#ff0000;">(SID_DESC =
  12. (GLOBAL_DBNAME = orcl)
  13. (ORACLE_HOME =  C:\app\Administrator\product\11.2.0\dbhome_1)
  14. (SID_NAME = orcl)
  15. )
  16. </span>  )
  17. LISTENER =
  18. (DESCRIPTION_LIST =
  19. (DESCRIPTION =
  20. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
  21. (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
  22. )
  23. )
  24. ADR_BASE_LISTENER = C:\app\Administrator

3.  重新启动 OracleServiceORCL 和
OracleOraDb11g_home1TNSListener 服务。最后试一试,连接成功!

附:

PL/SQL DEVELOPER 和 SQLPLUS 采用 service_name 进行连接

而应用程序是按照 sid_name 进行连接,所以出现 PL/SQL DEVELOPER和SQLPLUS
能够连接而应用程序却无法连接的问题。

使用 SELECT INSTANCE_NAME FROM V$INSTANCE
语句,就可以查看当前数据库实例的sid_name了。

出处:http://blog.csdn.net/mdifferent/article/details/7887832

时间: 2024-10-08 04:28:47

解决oracle11g的ORA-12505问题的相关文章

ORA 12505 Listener does not currently know of SID given in connection descriptor

一..和以往一样新建完一个Android项目之后,会报android.support.v4....或者V7找不到的错误. 这是因为这两个包在另一个附带的项目(android-support-v7-appcompat)下. 解决办法:右键你刚才建 的项目〉Properties>Android 在下边 点Add  然后把android-support-v7-appcompat添加上就好了. 二.从别的地方直接Import的项目也会报这个错...若是eclipse已经有android-support-

解决oracle11g数据库中空表exp无法导出的问题

之前再做项目的时候下载了一个开源的程序,数据库在移植的时候通过exp/imp导入导出,结果程序在启动时报错,对比过后发现两个数据库表相差了十几个,再排查问题,发现少掉的十几个表全部是空表,查了一下oracle11g的特性,发现当数据条数是0时不分配segment,所以就不能被导出!我勒个擦!坑爹有木有! 但是总不能每个表插入一条数据再导出吧,作为一个程序猿总不能上手工课吧,于是继续查,找到了一个解决办法,特此记录,以儆效尤! 第一种解决办法: 在创建数据库之前,先将数据库segment属性进行修

轻松解决oracle11g 空表不能exp导出的问题

轻松解决oracle11g 空表不能exp导出的问题 [引用 2012-9-22 18:06:36]  字号:大 中 小 oracle11g的新特性,数据条数是0时不分配segment,所以就不能被导出.共两种解决方法,推荐使用第二种(最简单).一.修改数据库参数alter system set deferred_segment_creation=false; 修改后,也不会导出空表,只有新建的空表才会导出,不适用,只有新建数据库时,修改此参数才比较有用.二.sql语句1.先查询一下哪些表是空的

[转]轻松解决oracle11g 空表不能exp导出的问题

转自:http://www.2cto.com/database/201109/105931.html oracle11g的新特性,数据条数是0时不分配segment,所以就不能被导出. 解决方法: 1插入一条数据(或者再删除),浪费时间,有时几百张表会累死的.2创建数据库之前使用代码: Sql代码 alter system set  deferred_segment_creation=false;  调整再建表这两种方都不好下面是终极方法: 先查询一下哪些表是空的: Sql代码 select t

解决Oracle11g空表无法导出的问题

Oracle11g 新增參数deferred_segment_creation  ,建库的时候默认值为true,意思是延时载入,当表中不存在数据的时候,不为这个表创建空间,当你导出的时候会发现非常多表不存在 使用show parameter deferred deferred_segment_creation; 命令能够查看deferred_segment_creation的值.假设想让空表导出 方法一:像库表中插入值 方法二:1.运行sql改动deferred_segment_creation

轻松解决oracle11g 空表不能exp导出的问题。

解决方法: 1插入一条数据(或者再删除),浪费时间,有时几百张表会累死的.2创建数据库之前使用代码: Sql代码 alter system set  deferred_segment_creation=false;  调整再建表这两种方都不好下面是终极方法: 先查询一下哪些表是空的: Sql代码 select table_name from user_tables where NUM_ROWS=0;   下面我们通过select 来生成修改语句:Sql代码 select 'alter table

解决oracle11g 空表不能exp导出的问题

在使用exp备份数据库,然后使用imp导入的时候出现了好多表或者视图不存在的错误信息. 究其原因,是11G中增加了一个新的特性:数据条数是0时不分配segment,所以就不能被导出. 解决思路:就是向空表中增加一行数据.但是如果有很多空表,一行一行的导入就好出现问题.下面是终极解决方案: 在命令行执行: select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 将查询出来的语句

解决oracle11g数据库监听连接不上问题

java连接数据库报错12514,无法识别监听,但是PL客户端可以连接 oracle 监听 添加ip 同时修改tnsnames.ora.listener.ora将这两个文件中HOST后面的主机都修改为127.0.0.1然后重启OracleServiceXE.OracleXETNSListener服务 listener.ora文件修改为 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME

如何解决Oracle11g使用dmp命令无法导出空表问题

导出:exp  username/[email protected] file=路径 tables=(tb1)    //tables=(tb1)可有可无,方便导出指定表 导入:imp username/[email protected] file=路径 tables=(tb1)  full=y 在用plsql导出dmp的时候,没有数据的表显示没有导出成功 解决 1 查询一下当前用户下的所有空表 select table_name from user_tables where NUM_ROWS=