Oracle错误码ORA-12516解决方案
Posted Magicflowersbloom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle错误码ORA-12516解决方案相关的知识,希望对你有一定的参考价值。
一、 错误码ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序 解决方案
1.错误原因
由于超过连接最大值导致无法登录,所以用sys as dba也是登录不上的,首先需要先断开占用的procress,即停掉几个tomcat即可释放连接,接下来就可以登录了。
解决方法:
杀掉oracle进程: kill -9 `ps -ef|grep "oracle" |grep "LOCAL=NO"|awk 'print $2'`
2.以oracle身份登录数据库
(1) 以oracle身份登录数据库,命令:su -oracle
(2) 进入Sqlplus控制台,命令:sqlplus /nolog
(3) 以系统管理员登录,命令:connect / as sysdba
3.查看procress的参数值和占用值
(1)procress参数值:show parameter processes
(2)procress占用值:select count(*) from v$process;
4.查看session的参数值
(1)session参数值:show parameter sessions
修改process和session的最大值
(1)process最大值:alter system set processes=500 scope=spfile;
(2)session最大值:alter system set sessions=776 scope=spfile;
5.重启oracle 使配置生效
1).关闭
shutdown immediate
关闭成功
2).启动
startup
启动成功
6.查看procress&session的参数值 查看配置是否生效
1).查看procress参数值
show parameter processes
2).查看session参数值
show parameter sessions
修改成功
7.如果连接报错需重新挂载数据库
1).报错信息
2).重新挂载数据库
alter pluggable database ORCLPDB1 open;
alter pluggable database QHD_ZFZLFWPT open;
alter pluggable database QHD_ZFZLFWPT_TEST open;
alter pluggable database QHD_ZFZLFWPT_TEST2 open;
连接Oracle远程数据库错误:ORA-12541,ORA-12514,ORA-01017的解决方法!
1.出现如下错误:ORA-12541:TNS:no listener,如下图所示:
错误原因是我们没有开启Listener监听器服务,解决方法是在服务中开启这个服务,如下图所示。
2.出现如下错误:ORA-12514:TNS:监听程序当前无法识别链接描述符中请求的服务。如下图所示:
解决方法是需要打开服务OracleServiceORCL,如下图所示:
3.出现错误:ORA-01017:invalid username/password;logon denied。
解决方法:原来配置数据库连接的时候用户名和密码都是安装Oracle的时候配置的root和root。但是会出现上面的错误,后来使用用户名:scott,密码:tiger,能够成功登陆。这个scott账户也是在安装数据库的时候配置的。
ORA-12514的错误用第2种方法解决不了,用下面这种方法:
解决方法:修改listener.ora
原:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\app\Val\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:\app\Val\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
修改后:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\app\Val\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:\app\Val\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = E:\app\Val\product\11.2.0\dbhome_1)
(SID_NAME = ORCL)
)
)
注意连接的时候服务名一定要使用ORCL!!!
这样以后,关掉Service和LISTENER。再启动Service和LISTENER,这样应该就可以了,注意顺序。
加上了面一段东西,意思是把LISTENER服务主动注册到进程监视器(pmon)中去。所以,但你启动了Serivce后,启动LISTENER的时候,会主动去注册到进程监视器(pmon)中去。所以不会有什么问题。但是反过却不行。
如果说没有添加那一段,情况正好相反,是由实例的pmon进程在LISTENER中注册服务,LISTENER为被动注册。所以需要先起LISTENER才可以。
总结一下,如果说你不加那段东西,那么就应该先起LISTENER,如果说你加了那段东西,就应该先起Serivce。
我试了一下,的确是这样。(不过在windows上,有时候会报错,重启一下再试就可以了)
此文章为整理加转载,参考文档:
http://blog.csdn.net/xw13106209/article/details/6584753
http://blog.sina.com.cn/s/blog_7c0e26230100t0ci.html
以上是关于Oracle错误码ORA-12516解决方案的主要内容,如果未能解决你的问题,请参考以下文章
Oracle报错ORA-12516 TNS:listener could not find available handler with matching protocol stack
Oracle几个基础配置问题:ORA-12154: TNS: 无法解析指定的连接标识符ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务ORA-12516 TNS监听程序找(代
ORA-12516 "TNS监听程序找不到符合协议堆栈要求的可用处理程序" 解决方案
Oracle几个基础配置问题:ORA-12154: TNS: 无法解析指定的连接标识符ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务ORA-12516 TNS监听程序找(代
ORA-12516, TNS:listener could not find available handler with matching protocol stack
ORA-12516:TNS:listener could not find available handler with matching protocol stack