近段时间很多人提出监听配置及监听器安全设置相关问题,客户终端(Client)无法连接服务器端(Server)。Oracle的监听器一直以来都存在一个严重的安全问题,那就是:如果不设置安全措施,那么能够访问的用户就可以远程关闭监听器。本文现对监听配置作一简单介绍,并提出一些客户终端无法连接服务器端的解决思路,愿对广大网友与读者有一些帮助

  一、监听器(LISTENER)

  监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。

  二、本地服务名(Tnsname)

  Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。

  本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。Oracle常用的客户端配置就是采用的本地服务名,本文中介绍的也主要是基于本地服务名的配置。

  三、Oracle网络连接配置方法

  配置Oracle服务器端与客户端都可以在其自带的图形化Oracle网络管理器(Oracle Net Manager)里完成(强烈建议在这个图形化的工具下完成Oracle服务端或客户端的配置)。在Windows下,点击“开始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager”启动Oracle网络管理器工具,在Linux/Unix下,利用netmgr命令来启动图形化Oracle网络管理器,如:$ netmgr。

  1、 Oracle监听器配置(LISTENER):

  选中树形目录中监听程序项,再点击左上侧“+”按钮添加监听程序,点击监听程序目录,默认新加的监听器名称是LISTENER(该名称也可以由任意合法字符命名)。选中该名称,选中窗口右侧栏下拉选项中的“监听位置”,点击添加地址按钮。在出现的网络地址栏的协议下拉选项中选中 “TCP/IP”,主机文本框中输入主机名称或IP地址(如果主机即用作服务端也作为客户端,输入两项之一均有效;如果主机作为服务端并需要通过网络连 接,建议输入IP地址),端口文本框中输入数字端口,默认是1521,也可以自定义任意有效数字端口。

  选 中窗口右侧栏下拉选项中的“数据库服务”,点击添加数据库按钮。在出现的数据库栏中输入全局数据库名,如myoracle。注意这里的全局数据库名与数据 库SID有所区别,全局数据库名实际通过域名来控制在同一网段内数据库全局命名的唯一性,就如Windows下的域名控制器,如这里可以输入 myoracle.192.168.1.5。Oracle主目录可以不填写,输入SID,如myoracle。

  保存以上配置,默认即可在Oracle安装目录下找到监听配置文件 (Windows下如D:oracleora92networkadminlistener.ora,Linux/Unix下$ ORACLE_HOME/network/admin/listerer.ora)。至此,Oracle服务端监听器配置已经完成。

  2、 本地服务名配置(Tnsnames):

  本地服务名是基于Oracle客户端的网络配置,所以,如果客户端需要连接数据库服务器进行操作,则需要配置该客户端,其依附对象可以是任意一台欲连接数据 库服务器进行操作的PC机,也可以是数据库服务器自身。如前面所介绍,可以利用Oracle自带的图形化管理工具Net Manager来完成Oracle客户端的配置。

  如果数据库服务器端相关服务启动了,可以点击测试按钮进行连接测试。Oracle默认是通过scott/tiger用户进行测试连接,由于 scott用户是 Oracle自带的示例用户,对于正式的业务数据库或专业测试数据库可能没有配置这个用户,所以需要更改成有效的用户登录才可能测试成功。如果这里测试连接不成功,也不要紧,先点完成按钮结束配置。

  回到Oracle网络管理器(Oracle Net Manager)主窗口,保存配置,默认即可在Oracle安装目录下找到本地服务名配置文件 (Windows下如D:oracleora92networkadmintnsnames.ora,Linux/Unix下$ ORACLE_HOME/network/admin/ tnsnames.ora)。

  树形目录下的服务命名可以通过编辑菜单里的重命名菜单更改成任意合法字符组成的服务名称,注意服务名称前不能有空格字符,否则可能无法连接数据库服务器。

  3、 连接数据库服务器:

  (1)启动服务器端监听器与数据库服务:

  Linux/Unix下,启动监听器:$ lsnrctl start。

  ·   关闭监听器:$ lsnrctl stop。

  ·   查看监听状态:$ lsnrctl status。

SQL>conn sys@myoracle as sysdba

这里的myoracle是前面配置的客户端本地服务名。

  或  

SQL>conn / as sysdba
  SQL>startup

  Windows下,启动监听器:C:lsnrctl start。

  启动Oracle实例服务:C:oradim –startup –sid myoracle。

  关闭Oracle实例服务:C:oradim –shutdown –sid myoracle。

  以上服务必须同时启动,客户端才能连接数据库。由于默认配置的监听器名称是Listener,上述命令可以正常启动监听器,如果监听器名称是其它名称,如aListener,则需要用下列方式才能启动:

  Linux/Unix下:$ lsnrctl start aListener。

  Windows下:C:lsnrctl start aListener。

  (2)测试连接数据库服务器。

  测试的方法多种多样,可以在上面配置本地服务名时进行测试,也可以是第三方客户端工具,如PL/SQL Developer,最方便的是用Oracle自带的SQLplus工具,以下利用SQLplus进行测试: 

 C:sqlplus /nolog
  SQL>conn zgh@myoracle

  已连接。

  四、客户端连接服务器端常见问题排除方法

  要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示解决。下面列出几种常见的连接问题:

  1、 ORA-12541: TNS: 没有监听器:

  显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:

  $ lsnrctl start或C:lsnrctl start。

  2、 ORA-12500: TNS: 监听程序无法启动专用服务器进程:

  对于Windows而言,没有启动Oracle实例服务。启动实例服务:C:oradim –startup -sid myoracle。

  3、 ORA-12535: TNS: 操作超时:

  出现这个问题的原因很多,但主要跟网络有关。解决这个问题,首先检查客户端与服务端的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接。

  4、 ORA-12154: TNS: 无法处理服务名:

  检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下$ORACLE_HOME/network/admin/tnsnames.ora)里每项服务的首 行服务名称前不能有空格。

  5、 ORA-12514: TNS:

监听进程不能解析在连接描述符中给出的 SERVICE_NAME打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。

  6、 Windows下启动监听服务提示找不到路径:

  用命令或在服务窗口中启动监听提示找不到路径,或监听服务启动异常。打开注册表,进入HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/OracleOraHome92TNSListener项,查看ImagePath字符串项是否存在,如果没有,设定值为D:oracleora92BINTNSLSNR,不同的安装路径设定值做相应的更改。这种方法同样适用于Oracle实例服务,同上,找到如同HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE项,查看ImagePath字符串项是否存在,如果没有,则新建,设定值为d:oracleora92 binORACLE.EXE MYORACLE。

  以上是Oracle客户端连接服务器端常见的一些问题,当然不能囊括所有的连接异常。解决问题的关键在于方法与思路,而不是每种问题都有固定的答案。

oracle 配置监听和TNS常见的问题相关推荐

  1. oracle增加网络服务,Oracle 配置监听和本地网络服务

    一.配置监听 在oracle的配置和移植工具中打开Net Configuration Assistant,然后点击下一步. 点击下一步,然后输入监听的名称点击下一步 点击下一步后如图 点击下一步如图 ...

  2. Oracle配置监听和连接,已经一些比较容易混淆的相关概念

    http://www.cnblogs.com/jacktu/archive/2008/02/27/1083235.html 1.配置监听 配置监听的方法有3种: Database  PLSExtPro ...

  3. Oracle配置监听要注意的地方

    昨天心血来潮,把Oracle的监听都删了,准备重新配一遍,结果弄了一天才配好,不过对Oracle的了解更深了一些. 对昨天的问题做一个总结: 1.直接在NetManager中删掉监听时,实际的监听服务 ...

  4. Oracle 配置监听和本地网络服务

    一.配置监听 在oracle的配置和移植工具中打开Net Configuration Assistant,然后点击下一步. 点击下一步,然后输入监听的名称点击下一步 点击下一步后如图 点击下一步如图 ...

  5. Oracle 配置监听

    没有监听会报这个错 登录PL/SQL Developer会为空 方法(1) Net Manager这个工具是oracle客户端程序自带的,只要你安装oracle客户端一般都有.我们可以通过:开始菜单- ...

  6. oracle 11G创建表空间、用户、配置监听和TNS

    最近总在安装各种版本的oralce数据库做测试,11G,32位的,64位的,12C的,每次都折腾表空间,用户.tns啥的,这里记录下,再也不用现用现百度找了 一.创建表空间.用户 在plsql工具中执 ...

  7. 安装oracle配置监听出错,安装失败,无法建立监听?

    本帖最后由 tomfish88 于 2013-12-5 13:23 编辑 原来的监听如何删除呢,我把注册表的也删除了,还是安装不成功, QQ截图20131203114715.png (70.13 KB ...

  8. Oracle配置监听(listener.ora和tnsnames.ora配置)

    文件路径:D:\Microsoft\Oracle_11G_R2\app\product\11.2.0\dbhome_1\NETWORK\ADMIN 1.listener.ora #这是名称为LISTE ...

  9. oracle11gr2配置监听,Windows环境配置Oracle 11gR2 Listener

    环境:Windows 7 X86_64,Oracle 11gR2 11203 X86_64 系统安装: 以普通用户身份运行Oracle安装程序进行安装,只安装软件,安装顺利完成. 以普通用户身份运行n ...

最新文章

  1. Xen的network-bridge模式
  2. Linux编程---线程
  3. javaWeb_JSP 动态指令 forward 的程序
  4. 【Python 自然语言处理 第二版】读书笔记1:语言处理与Python
  5. PostgreSQL在win7上安装详细步骤
  6. 08-spring学习-annotation配置
  7. UC神马数据采集api
  8. McAfee Agent漏洞可导致黑客以Windows 系统权限运行代码
  9. 安装sql2005,没有SQL Server management studio的原因分析及解决方案
  10. 学计算机穿格子衬衫的男人,教你成为穿格子衬衫的帅气理工男
  11. 漫步数理统计三十一——依分布收敛
  12. 8个设计师必看的免费UI图标设计资源站
  13. (linux vm虚拟机网络连接失败,重启网卡失败原因及解决办法)
  14. 祝早道日语七周年快乐!
  15. 【JAVA】一种寻找错误的方法
  16. 【系统分析师之路】企业信息化章节错题集锦
  17. 服务器系统盘容量大小范围介绍
  18. (五十二) Android anr 分析步骤总结
  19. Locust使用手册--编写一个locustfile
  20. 计算组合数c语言ac,AC排列组合

热门文章

  1. 月球软着陆matlab程序,matlab变量优化 卫星软着陆问题
  2. 操作系统OS进程(一)初识
  3. 记录MS SQL Server数据库
  4. SQLite 3.31.0 发布,世界上使用量最大的数据库引擎
  5. 关于 2020 年的前端趋势预测
  6. 40岁的程序员还能找到工作吗_学会了Vue就能找到前端工作吗
  7. 计算机组装与维护推荐教材,计算机组装与维护(全国高等专科教育计算机类规划教材)...
  8. android9开发者模式 s8,Android 9.0或加速Galaxy S8/9电池消耗 谨慎更新
  9. mysql的大字段clob,Oracle数据库导出大字段(CLOB)数据
  10. 正则表达式 以字符串开头_干货-Shell编程之正则表达式