ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连

原创 2012年03月27日 12:40:43

ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连

解决方安参照http://blog.sina.com.cn/s/blog_4b7325080100bm46.html

首先在cmd中执行lsnrctl status命令
C:\Documents and Settings\Administrator>lsnrctl status

会显示如下信息:(注意你的可能是英文版)

监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=svctag-5dk652x)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个例程。
例程 "orcl", 状态 BLOCKED, 包含此服务的 1 个处理程序...
服务 "orcl_XPT" 包含 1 个例程。
例程 "orcl", 状态 BLOCKED, 包含此服务的 1 个处理程序...
命令执行成功

如果看到 BLOCKED
这个问题说明数据库没有Mount
连接数据库,发现:
ORA-12528: TNS:listener: all appropriate instances are blocking new connections
用sqlplus /nolog
sql>connect [email=sys/ammic@amicly]sys/ammic@amicly[/email] as sysdba
ORA-12528: TNS:listener: all appropriate instances are blocking new connections

连接的问题可以通过修改listener.ora的参数,把动态的参数设置为静态的参数,红色标注部分,然后从新启动监听,就OK

位置D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN


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) //如果已经有这个orcl了,这个文件就不用修改
      (ORACLE_HOME = D:\oracle\product\10.1.0\db_1) //这里要根据你的实际路径来
      (SID_NAME = orcl)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = lypch )(PORT = 1521))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
    )
  )

通过修改tnsnames.ora的参数,红色表注部分
# tnsnames.ora Network Configuration File: D:\oracle\product\10.1.0\db_1
\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
AMMICLY =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = lypch )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
      (UR=A) //加上这个,不知道是什么意思
    )
  )
EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

我在这一步就重启机器啦,然后就好了,后面的没有试验。


然后 sqlplus /nolog
SQL>alter database mount;
SQL>alter database open;

这样就可以启动数据库了;

或者用Oradim -shutdown -sid ammicly -shuttype srvc,inst -shutmode immediate -syspwd ammic;关闭数据库
在用oradim -startup -sid ammicly -starttype srvc,inst -syspwd ammic;启动数据库解决;也可以在截面上从启动数据库服务来解决;

总结RA-12528问题是因为监听中的服务使用了动态服务,系统启动后,数据库没有正常的MOUNT,因此在动态模式下,就会出现这个问题,用静态的就不会有这个问题,因此上面的方法就是把监听设置为静态,或者在tnsnames.ora中追加(UR=A)或者从启动服务,三种方法解决问题;

ORA-12528 TNS: 监听程序: 所有适用例程都无法建立新连接 解决办法

最近一段时间不知道怎么的

关于Oracle所有适用例程都无法建立新连接问题

一般出现这个问题 可能是因为你的数据库没有Mount  解决方案: 1. 1,可以通过修改listener.ora(该文件位于:{你的Oracle安装盘}:\app\administrator\p...

ora-12528 TNS 监听程序所有适用例程都无法建立新连接

产生原因: 这种情况可能是暂时的,比如数据库实例正在启动,过段时间再连接。 解决方案: 过段时间再连接。如果还是不行,查看数据库实例的状态 SQL> select status fro...
  • lrh_079
  • lrh_079
  • 2013年11月20日 19:22
  • 3277

ORA-12528: TNS: 监听程序: 所有适…

D:\Script>set day=-12-17 D:\Script>cd d:\backup D:\backup>md -12-17 D:\backup>sqlplus /nolog @D:\scr...

]ORA-12528: TNS: 监听程序: 所有适用的例程都不允许建

D:Script>set day=-12-17D:Script>cd d:backupD:backup>md -12-17D:backup>sqlplus /nolog @D:scriptcold_b...

Oracle 错误总结及问题解决 ORA

建议使用CTRL + F精确搜索 ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 ORA-00017: 请求会...

记一次断电恢复ORA-01033错误

客户的电脑因为频繁断电,造成orcle无法连接,报ORA-01033:oracle初始化或者关闭错误. 按照传统方法 进入cmd sqlplus sys/password@user as sysdb...

ora-12528 TNS 监听程序所有适用例程都无法建立新连接

这种情况可能是暂时的,比如数据库实例正在启动,过段时间再连接。 过段时间再连接。如果还是不行,查看数据库实例的状态 查看数据库实例状态脚本: select status from v$ins...
  • lrh_079
  • lrh_079
  • 2013年11月28日 14:42
  • 1496

ORA-12528: TNS: 监听程序: 所有适用的例程都不允许建

D:\Script>set day=-12-17 D:\Script>cd d:\backupD:\backup>md -12-17D:\backup>sqlplus /nolog @D:\scrip...

ORA-12528问题解决 与 静态注册

原文:http://blog.chinaunix.net/u/9800/showart_396710.htmlstartup nomount 之后用sqlplus sys/orcl@orcl as s...
  • yjq8116
  • yjq8116
  • 2010年08月28日 22:56
  • 2438
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连
举报原因:
原因补充:

(最多只允许输入30个字)