ORA-12520错误解决方法2010-11-17 11:00ORA-12520错误解决方法
ORA-12520听程序无法为请求的服务器类型找到可用的处理程序:
1)数据库是专用服务器,但是在tnsname.ora配置中设置了连接方式为shared,这种情况下打开tnsname.ora,
把(server = shared) 改成 (server = dedicate)
2)是由于process不够引起的
后来查看到v$process一直涨到140多,而我的数据库设置的是150.据此大致能断定process不够,用以下语句修改数据库的processes值
alter system set processes=500 scope=spfile(由于processes是静态参数,scope只能为spfile,在v$sgastate条件为'procesees'中可以看到会每个process会点4个字节),
重新启动数据库使新改的processes生效.再重新跑eclipse,就能正常启动了.
note:如果在hibernate中的hibernate.connection.provider_class选择的是c3p0的就会出这种情况,其它的好像不会.很奇怪为什么c3p0会打开那么多个processs, 在shared连势接方式下,shared_server即是一直连在数据库的process值,注意这点
当前的连接数
select count(*) from v$process;
设置的最大连接数(默认值为150)
select value from v$parameter where name = 'processes';
修改最大连接数
alter system set processes = 300 scope = spfile;
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务! 博客分类: 数据库
OracleSQL工作.最近开机后,打开PL/SQL 输入用户米 密码总报标题的错误。
我在两台机器都发现了这个错误,开始以为PL/SQL问题,结果用ORACLE的SQL PLUS问题依旧。
BAIDU了一下,找到了解决办法。
oracle 10G:
D:\oracle\product\10.1.0\db_1\NETWORK\ADMIN目录下的listener.ora文件。
问题都在这个文件上。
该文件原文如下:
# listener.ora Network Configuration File: D:\oracle\product\10.1.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.1.0\db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
)
操作:
在 (SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.1.0\db_1)
(PROGRAM = extproc)
)
后面添加
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = D:\oracle\product\10.1.0\db_1)
(SID_NAME = orcl)
)
网上的一些文章没注意这点,由于每个人的数据库SID不同。所以加的这段话的GLOBAL_DBNAME和SID_NAME
都是你的数据库的SID。而且ORACLE_HOME也不同要根据原文的ORACLE_HOME来写。
修改完的listener.ora为:
# listener.ora Network Configuration File: D:\oracle\product\10.1.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.1.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = D:\oracle\product\10.1.0\db_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
)
重启服务。OK!!!
如果以上工作还没成功的话,那么就把(HOST = localhost) 的HOST改成你的实际IP地址,就算写127.0.0.1也可以。