Oracle连接对方的数据库,显示无监听程序

Oracle连接对方的数据库,显示无监听程序,第1张

请按如过程检查:

1

服务器,可否正常登录数据库并查询数据sqlplus

2

服务器上

用sqlplus

user/pwd@orcl

的方式能否登录?

3

服务器的防火墙是否开着,是否没有为oracle调整过

4

客户端用oracle

sql

developer

连接时,地址,端口,数据库实例名,用户名,密码,是否都正确?

5

对于使用oci连接(pl/sql

developer、toad等)的客户端,本地网络服务名

(tnsnames.ora中的配置内容)配置的内容是否正确

第一种、解决方案如下:

listener.ora是服务器端的配置oracle的文件。

后来将listener.ora的这一行注释掉,就行了,, (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))

)

)

第二种、解决方案如下:

参考:https://forums.oracle.com/forums/message.jspa?messageID=693607

整理如下:

客户端的配置文件sqlnet.ora中配置如下:

将#SQLNET.AUTHENTICATION_SERVICES= (NTS)注释掉,改成如下即可!

如下:

SQLNET.AUTHENTICATION_SERVICES= (NONE)

同时修改监听器配置文件,具体做法是: 在oracle安装目录下搜索listener.ora文件,一般在$/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的版本不对 从 http://www.oracle.com/technology/software/tech/oci/instantclient/index.html 下载client里面很多,根据你的版本来下,我下载的是instantclient_11_2。

在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,输入用户名密码,无需输入服务名,直接登录即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8021073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存