ora-12528 : message 12528 not found; product=RDBMS ; facility=ora

author:skate
time:2009/11/28
我用pl/sql developer连接数据库时报错误ora-12528
故障环境说明:
在pl/sql(client)连接数据库时为提示:
ora-12528 : message 12528 not found; product=RDBMS ; facility=ora
说明:我的数据库类型是asm类型,不是rdbms数据库
我登录数据库服务器查看:
C:\Documents and Settings\Administrator>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 28-11月-2009 21:1
0:56
Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期 28-11月-2009 18:35:33
正常运行时间 0 天 2 小时 35 分 23 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 C:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件 C:\oracle\product\10.2.0\db_1\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=asm)(PORT=1521)))
服务摘要..
服务 "+ASM_XPT" 包含 1 个例程。
例程 "+asm", 状态 BLOCKED, 包含此服务的 1 个处理程序...
服务 "+ASm" 包含 2 个例程。
例程 "+ASM", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
例程 "+asm", 状态 BLOCKED, 包含此服务的 1 个处理程序...
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
发现服务的状态为blocked,表示此实例不能接受连接
监听服务一共有三种状态,分别如下所示:
BLOCKED:表示此实例不能接受连接
UNKNOWN:表示此实例在listener.ora文件中注册,而不是通过动态服务注册,因而不知道其状态
READY:表示此实例可接受连接
解决办法:
修改clinet 的tnsnames.ora
方法1、我的listener中local_listener是动态注册的.
动态注册需在TNS的connect_data字串加入(UR=A),对UR=A用于在listener中的服务状态为blocked service时仍样建立通信。
asm =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.105)(PORT = 1521))
)
(CONNECT_DATA =
#skate add begin
(UR=A)
#skate add end
(SERVICE_NAME = +asm)
)
)
这种方式适合客户端少,如果客户端多的话,你要修改所有的客户端。而下面的方法只有修改服务器的listener.ora文件就ok的
方法2、如果你的监听器注册为动态注册的话。修改服务器的listener.ora,变动态注册监听为静态注册。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
#skate add begin
(SID_DESC =
(GLOBAL_DBNAME = +ASm)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(SID_NAME =+ASM)
)
#skate add end
)
----end------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构