图片 1 

一、错误描述

今天在帮同事安装PL/SQL时,在登陆的时候出现上述错误,从网上找了好多解决方法,但都没有解决问题。对于免安装版本的PL/SQL在登陆是应该先配置好路径:bin\instantclient_11_2\NETWORK\ADMIN下面的tnsnames.ora

登陆PL/SQL
Developer登陆本地数据库时先报没有监听程序,查看服务发现Oracle监听服务没有启动。右击启动监听程序,报错:

 

错误描述:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了。一些服务自动停止,如果它们没有什么可做的,例如
“性能日志和警报 “服务。

例如:

二、原因分析

DDR =

你安装oracle的时候是连网的,那么listener.ora文件里的HOST=网络给你分配的IP地址,而在你断网的时候就会出现这样的情况。

(DESCRIPTION =

三、解决办法

(ADDRESS = (PROTOCOL = TCP)

方法一:监听器

(HOST = 192.168.1.213)(PORT = 1521))

通过listener.ora或者Net
Manager修改监听器配置。将原来本地字符串127.0.0.1或者localhost改为主机名。

(CONNECT_DATA =

首先查阅你的**\product\11.2.0\dbhome_1\NETWORK\ADMIN目录下的”tnsnames.ora”和”listener.ora”这两个文件,然后看看里面的”HOST”信息,看看是不是你当前的ip地址,如果不是尝试着把这个2个文件改成你的ip地址,或直接就改成127.0.0.1(或计算机名字):

(SERVER = DEDICATED)

注意:此时的监听配置文件”listener.ora”里面的HOST=的内容(IP或者主机名)必须和,服务配置文件”tnsnames.ora”里面,你想要链接的服务的HOST=的内容完全一致。意思就是说要么都是IP地址,要么都是主机名。如果有多个服务(Net
Manager中配置的网络服务)那么查看”tnsnames.ora”文件中与监听HOST内容一致的PL/SQL才可正常登录进去,否则无监听程序。

(SERVICE_NAME = orcl)

上面这里是”listener.ora”里面的HOST,我的是主机名。

)

上面这里是”tnsnames.ora”的配置信息,由于我的机子上面装了两个数据库DB1,DB2。分别建立了连接服务也叫做DB1,DB2。(不知道什么情况,建好后tnsnames.ora里一个HOST是IP地址,另一个是我的主机名。)结果导致DB1的PL/SQL正常连接进入(因为是IP地址和listener.ora的HOST地址完全匹配),而DB2的PL/SQL却提示没有监听程序。(什么情况,DB1不是都正常进入了么咋还没有监听呢。我去~~)后来网上找教程说是【修改”listener.ora”的HOST地址,如果是IP则改成主机名】于是照搬。运行PL/SQL,DB2登陆成功,爽啊。结果DB1没有监听程序(什么情况啊)。后来查看”listener.ora”发现此问题,说明两个文件的HOST的内容需要完全匹配才行,全部改成主机名,两个数据库登陆都成功,搞定!

)

方法二:环境变量

网上的解决方法有

环境变量中ORACLE_HOME改为:*(你自己的安装路径)\product\11.2.0\dbhome_1

(1)监听没有启动起来,针对免安装版本不存在此问题。

有的情况,装貌似安装客户端被自动改为**:\Ora11InstantClient了

(2)设置一下PLSQLDeveloper的连接路径,打开PL/SQL在不登陆状态下进入工具——>首选项,出现如下界面,

方法三:注册表

图片 2

KEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/OracleOraDb11g_home1TNSListener

网上的解决办法是配置OACLE目录以及库,免安装版本不存在本地的ORACLE客户端,所以此种方法不能解决问题。

中的ImagePath改为:D:\oracle\product\10.2.0\db_1/BIN/TNSLSNR.EXE(之前后面的.EXE没有)。

 

原因及解决办法:

出现登陆报错一般是由于在配置tnsnames.ora时,配置的内容是复制过来的,所以在上述的

图片 3

其中DDR前面可能存在空格,我们只要把前面的空格去掉就可以解决问题了。

 

附:

在安装软件时,特别是老外的软件时不要出现中文命名的文件夹

相关文章