pl/sql 连接服务器失败 ORA-28547错误
转自blog.sina/s/blog_4c19795f0100gjqa.html
今天来的公司启动项目,报连不上数据库的错误,用pl/sql打开数据库报错:“ORA-12514: TNS: 监听程序无法识别连接描述符中请求的服务”。
解决:
打开oracle\product\11.1.0\db_1\network\a文件,内容如下:
# a Network Configuration File: D:\oracle\product\10.1.0\db_1\network\a
# 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 = 127.0.0.1)(PORT = 1521))
)
)
)
将(SID_NAME = PLSExtProc)改为(SID_NAME = orcl),重启listener。
重新用pl/sql登录,报错:“ORA-28547: TNS: 连接服务器失败,可能是Net8管理错误。”
删掉上述文件中的(PROGRAM = extproc),重启listener,用pl/sql登录,成功。不知道为什么
我的“ORA-28547:connection to server failed,probable Oracle Net admin error”的解决步
骤(navicat,toad,plsql developer工具通用)
连接oracle 11g突然蹦出了一个错误“ORA-28547:connection to server failed,probable Oracle Net admin error”,见下图,我勒个去,真是郁闷死了,无奈在网上搜索了好久到了解决方法,写下来了以便以后参考。
第一个方法解决方案:
a是服务器端的配置oracle的文件。
后来将a的这一行注释掉,就行了,, (PROGRAM = extproc)
修改为:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = prod)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
# (PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.8)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
第二种解决方案如下:
参考路径:acle/forums/message.jspa?messageID=693607
整理如下:
客户端的配置文件a中配置如下:
将#SQLNET.AUTHENTICATION_SERVICES= (NTS)注释掉,改成如下即可!
如下:
SQLNET.AUTHENTICATION_SERVICES= (NONE)
同时修改配置文件,具体做法是: 在oracle安装目录下搜索a文件,一般在$/NETWORK/ADMIN目录下,把主机名用ip地址代替,例如(ADDRESS = (PROTOCOL = TCP)(HOST = HBONLINE1)(PORT = 1523))改为(ADDRESS = (PROTOCOL = TCP)(HOST = 168.168.168.42)(PORT = 1523))。
第三种解决方案:
如果你以上使用的是plsql developer工具或者是toad工具,应该以上的操作就绝对可以解决你的问题,
但是如果你使用的是navicat工具,以上怕是还不能解决你的问题。具体的如果在navicat工具上使用就是如下的问题:
Oracle基本是默认安装,安装过程没出现过任何异常
Oracle开启了两个服务:OracleServiceORCL和OracleOraDb11g_home1TNSListener
Navicat一直都连接不上本地的Oracle
网上搜了一大堆资料,大都是改那3个配置文件的
最终还是没能解决这个问题
最终的问题是:
Navicat主机那里如果填本机IP地址(192.168.18.8),错误代码是:ORA-12541:TNS:no listener
如果填localhost,错误代码是:ORA-28547:connection to server failed,probable Oracle Net admin error
tnsping localhost 是通的,tnsping 192.168.18.8 则出错 TNS-12541: TNS: 无监听程序
解决的方案是:
oci.dll的版本不对
从 acle/technology/software/tech/oci/instantclient/index.html 下载client
安装plsql里面很多,根据你的版本来下,我下载的是instantclient_11_1。
在navicat的 工具-选项-其他-OCI ,选择刚下的client中的 oci.dll
设置环境变量:
1)在环境变量PATH中开头增加C:\Instantclient10_2;
2)增加用户环境变量SQLPATH,值为C:\Instantclient10_2
3)增加用户环境变量NLS_LANG,值为AMERICAN_AMERICA.UTF8
选择 Basic 连接,就大概能连接上了
以上的操作可以通过如下进行排查:
进行查:
1、首先确认你的数据库已经启动了,可以用net start OracleServiceORCL
2、其次确认你的侦听启动了否,用lsnrctl status查看,如果没有启动,用lsnrctl start启动。
3、以上启动后,直接打开sqlplus,输入用户名密码,无需输入服务名,直接登录即可。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论