监听器是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:\oracle\ora92\network\admin\listener.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:\oracle\ora92\network\admin\tnsnames.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
#p#
(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:\oracle\ora92\network\admin \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:\oracle\ora92\BIN\TNSLSNR,不同的装置途径设定值做相应的更改。这种办法相同适用于Oracle实例服务,同上,找到好像HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE项,检查ImagePath字符串项是否存在,假如没有,则新建,设定值为d:\oracle\ora92\binORACLE.EXE MYORACLE。
以上是Oracle客户端衔接服务器端常见的一些问题,当然不能包括一切的衔接反常。处理问题的关键在于办法与思路,而不是每种问题都有固定的答案。
【修改引荐】
- 30个Oracle句子优化规矩详解
- Oracle数据库常见问题处理
- Oracle数据库中段管理办法的具体介绍
知优网 » 浅析Oracle监听器装置与装备(oracle 监听器)