广州网站开发小程序,工业设计专业怎么样,湘潭市网站建设设计,华为网站搭建最简单的有可能是你的服务还没有开启#xff0c;需要启动服务#xff01;#xff01;#xff01;#xff01;
在连接数据库的时候#xff0c;有时会遇到一个“ORA12514#xff1a;监听程序当前无法识别连接描述符中请求的服务”的错误#xff0c;这个错误其实就是数据…最简单的有可能是你的服务还没有开启需要启动服务
在连接数据库的时候有时会遇到一个“ORA12514监听程序当前无法识别连接描述符中请求的服务”的错误这个错误其实就是数据库动态注册关于动态注册会在稍后讲解不生效导致监听器无法识别客户端连接符中提供的服务名从而拒绝建立数据库连接时报的错误信息所以就需要对监听器配置做修改。
在这里还需对问题进行细化有时候可能会发现在刚开启监听器的时候会发生这个错误但过了一会再进行连接就不会报错这其实是因为动态注册需要时间而刚开启监听器时数据库还未注册到监听器导致报错这种情况不在本文讨论范围内。
listener.ora文件存放在$ORACLE_HOME/network/admin以我的Oracle11为例就是D:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN这个文件存放的就是监听器的配置监听器在启动时会读取该文件我们先来了解一下这个文件。
该文件的大概配置如下图
上图中SID_LIST_LISTENER参数就是数据库注册动态注册或是静态注册注册就是将数据库作为一个服务注册到监听器。客户端不需要知道数据库名和实例名只需要知道该数据库对外提供的服务名就可以申请连接到数据库动态注册就是在监听器配置文件中不明确的声明数据库实例和服务名而是在数据库启动时才由数据库自动注册到监听器静态注册就是在监听器配置文件中明确声明数据库实例和服务名。LISTENER参数就是监听器的配置其中PROTOCOL参数是协议名一般为TCPHOST参数是地址可以写IP地址、服务器名、localhost、127.0.0.1PORT参数是端口号默认为1521。
既然是因为动态注册引起的问题那么最简单的解决方法自然是由动态注册改为静态注册如下图 (SID_DESC(GLOBAL_DBNAMEORCL)(ORACLE_HOMED:\app\Administrator\product\11.2.0\dbhome_1)(SID_NAMEORCL)) 红线框内的就是静态注册SID_NAME参数是数据库实例名GLOBAL_DBNAME参数是全局数据库名在配置客户端的本地服务名时“服务名”要与全局数据库名一致配置好后重启监听器就可正常连接了。
修改为静态注册看起来虽简单但也有不足之处首先要修改为静态注册需对配置文件和参数较为熟悉否则很有可能会配置错误其次当参数的值有所改变时必须重新修改配置才行。
还有一种方法就是修改host参数的值host参数可以有四种值IP地址、服务器名、localhost、127.0.0.1由于可取值变多了导致了解决办法也随着导致出现问题的原因而多样化了起来各种情况都可能有不同的解决办法可以在这四个值之间尝试修改需要注意的是当采用localhost和127.0.0.1时客户端的本地服务名不能使用IP地址和服务器名进行配置否则会报“ORA12541无监听程序”的错误还有就是修改之后要重启监听器。