Oracle 客户端连接服务器常见问题

上传人:ZJ****3 文档编号:43037330 上传时间:2018-06-04 格式:DOCX 页数:11 大小:24.45KB
返回 下载 相关 举报
Oracle 客户端连接服务器常见问题_第1页
第1页 / 共11页
Oracle 客户端连接服务器常见问题_第2页
第2页 / 共11页
Oracle 客户端连接服务器常见问题_第3页
第3页 / 共11页
Oracle 客户端连接服务器常见问题_第4页
第4页 / 共11页
Oracle 客户端连接服务器常见问题_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《Oracle 客户端连接服务器常见问题》由会员分享,可在线阅读,更多相关《Oracle 客户端连接服务器常见问题(11页珍藏版)》请在金锄头文库上搜索。

1、OracleOracle 客户端连接服务器常见问题之客户端连接服务器常见问题之今天安装软件一直在测试链接不能通过,出现 ORA-12154: TNS: could not resolve service name,后来才发现是 tnsnames.ora 中有误。查找网上的资料,记录下来。 要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数 据库服务器端监听配置一致),再根据错误提示解决。下面列出几种常见的连接问题: 1、 ORA-12541: TNS: 没有监听器 显而易见,服务器端的监听器没有启动,另外检查客户端 IP 地址或端口填写是否正确。启 动监听器:$

2、lsnrctl start 或C:lsnrctl start 2、 ORA-12500: TNS: 监听程序无法启动专用服务器进程 对于 Windows 而言,没有启动 Oracle 实例服务。启动实例服务:C:oradim startup -sid myoracle 3、 ORA-12535: TNS: 操作超时 出现这个问题的原因很多,但主要跟网络有关。解决这个问题,首先检查客户端与服务端 的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接。 4、 ORA-12154: TNS: 无法处理服务名 检 查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windo

3、ws 下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix 下$ORACLE_HOME/network/admin/tnsnames.ora)里每项服务 的首 行服务名称前不能有空格。 5、 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 打开 Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名 必须与服务器端监听器配置的全局数据库名一致。 6、 Windows 下启动监听服务提示找不到路径 用 命令或在服务窗口中启动监听提示找不到路径,或监听服务启动异常。打开注

4、册表,进入HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/OracleOraHome92TNSListener 项,查看 ImagePath 字符串项是否存 在,如果没 有,设定值为 D:oracleora92BINTNSLSNR,不同的安装路径设定值做相应的更改。这 种方法同样适用于 Oracle 实例服务,同 上,找到如同 HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE 项,查看 ImagePath 字符串项是否存在,如果没有

5、,则新建,设定值为d:oracleora92 binORACLE.EXE MYORACLE。 以上是 Oracle 客户端连接服务器端常见的一些问题,当然不能囊括所有的连接异常。解决 问题的关键在于方法与思路,而不是每种问题都有固定的答案。数据库客户端连接访问服务器oracle 客户端访问服务器是通过 Listener/Tnsnames 协议机制。Listener 负责再服务器上监 听来自远端的连接请求,而 Tnsnames 则是远端的连接协议。用户在使用这个机制的时候, 只需要保证三点即可:1.客户端/服务器之间的网络链路通畅。2.服务器上监听器配置正确并启动($ORACLE_HOME/ne

6、twork/admin/Listener.ora) ,且数 据库实例已经启动。3.客户端上请求器配置正确($ORACLE_HOME/network/admin/Tnsname.ora)。 下面是我的配置并访问过程: 一:检查客户端/服务器之间的网络状态客户端操作系统:Windows XP Professional SP3数据库客户端版本:Oracle 11g ReleaseIP:192.168.114.103服务器操作系统:RHEL 5.1数据库服务器版本:Oracle Enterprise 11.1.0.6 ReleaseIP:192.168.114.222IP 对应名称:ttecdis.t

7、ju-常见数据库名称 ttecdis数据库启动后实例名称 ttecdis客户端与服务器互相 ping,网络通畅。二:服务器端 Listener.ora 配置在服务器端,存在一个初始化参数 SERVICE_NAME,这个参数就是用于定义客户端文件 (tnsname.ora)请求的服务器端的服务名,也是服务器端文件(listener.ora)提供的服务 名。可以使用 show parameter service_name 来查看。修改了服务器的 SERVICE_NAME 参数,监听文件 listerner.ora 文件也要做出修改,使二者 保持一致,并使客户端的 tnsnames.ora 内的 S

8、ERVICE_NAME 与之一致。才能保证通畅。此处特意将服务器的 SERVICE_NAME 设置为两个值,以描述客户端请求服务器端连接的对 应关系。ALTER SYSTEM SET SERVICE_NAMES=kanon,emily scope=both-此修改将使的 spfile 与内存同 时被修改,下面是监听器的配置。配置举例: LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)(DESCRIPTION =(ADDRESS = (PROT

9、OCOL = IPC)(KEY = EXTPROC1521)SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = kanon)(ORACLE_HOME = $ORACLE_HOME/)(SID_NAME = ttecdis)(SID_DESC =(GLOBAL_DBNAME = emily)(ORACLE_HOME = $ORACLE_HOME/)(SID_NAME = ttecdis)Listener.ora 位于目录$ORACLE_HOME/network/admin.文件内包含两部分内容:LISTENER 包 含了监听使用的协

10、议、本机地址和监听端口;SID_LIST_LISTENER 描述了本机对外提供的服 务(GLOBAL_DBNAME) 。 完成上述两端的配置后,启动数据库,之后,启动监听器(lsnrctl start),显示信息如下: Listening Endpoints Summary.(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ttecdis.tju-)(PORT=1521) Services Summary. Service “kanon“ has 1 instan

11、ce(s).Instance “ttecdis“, status UNKNOWN, has 1 handler(s) for this service. Service “emily“ has 1 instance(s).Instance “ttecdis“, status UNKNOWN, has 1 handler(s) for this service. Service “ttecdis“ has 1 instance(s).Instance “ttecdis“, status UNKNOWN, has 1 handler(s) for this service. The command

12、 completed successfully此时,服务器实现启动监听程序,向外提供服务 kanon 与 emily(GLOBAL_DBNAME 参数描 述的值就是对外提供的服务器名) ,客户端可以向服务器上的 kanon(SERVICE_NAME 参数 描述的值就是目的服务)发起连接了。三:远端 Tnsnames.ora 配置配置举例:wintolinux =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.114.222)(PORT = 1521)(CONNECT_DATA =(SERVER =

13、DEDICATED)(SERVICE_NAME = kanon)文件内包含两部分内容:ADDRESS_LIST 描述了连接使用的协议、服务器地址和端口; CONNECT_DATA 描述了目标服务器名(SERVICE_NAME) ,tnsname.ora 内的 SERVICE_NAME 要与服务器端的 GLOBAL_DBNAME 相同,这是客户端请求的服务。还可以修改客户端配置的 SERVICE_NAME = emily 来请求连接另一个服务。wintolinux =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 1

14、92.168.114.222)(PORT = 1521)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = emily)客户端并不需要关心它连接的数据库究竟是哪个,更不会想到两个客户端连接的是同一个 数据库了。四:测试客户端向服务器发起连接1.客户端启动 sqlplus,不登录cmdsqlplus /nolog2.向服务器发起连接sql connect sys/ttecdiswintolinux as sysdba(wintolinux 是我的客户端 tnsname.ora 内的配 置连接信息标识符)得到反馈信息:ERROR:ORA-12532

15、: TNS: 无效的参数3.检测到数据库服务器是否可以 ping 通cmdtnsping wintolinux 不通!4.分析原因检查网络连接-通过!检查配置文件正确性-通过!检查服务器防火墙设置-system-config-securitylevel-发现 1521 端口被关闭。打开该端口,再次连接,成功。5.测试访问客户端执行 SQL 语句 select * from dual;输出结果。成功!扩展: 在 Oracle8i 以及之后的版本里,Oracle 引入了一个动态服务注册功能。所谓动态服务注册 是指当实例启动之后,由后台进程 PMON 在监听器中注册数据库服务器信息,在此机制下, 原

16、来监听器配置文件 listener.ora 中的 DIS_LIST 部分将不是必须的, 默认的配置文件里面也的确是没有这部分的。如果先启动监听器,再启动数据库实例,我 们就可以通过 lsnrctl status 命令看到动态注册进入的服务了,此时服务的状态不再是 UNKNOWN,而是 READY 了,因为监听器具体知道是哪个服务注册进来了。 另外,在客户端配置工具 net manager 中,服务名不支持“域名格式“,但 tnsname 协议是支 持的,所以可以通过手工修改 tnsname.ora 的方式更改服务名为“域名格式“的。本文来自 CSDN 博客,转载请标明出处: http:/ 客户端配置及其使用说明http:/ 2010-04-15 11:05 佚名

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号