admin 管理员组

文章数量: 1086019


2024年1月15日发(作者:图片在线转换器)

近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接效劳器端(Server)。本文现对监听配置作一简洁介绍,并提出一些客户终端无法连接效劳器端的解决思路,愿对宽阔网友与读者有一些帮助。

一、 监听器(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

Windows 下启动 Net Manager 图形窗口如图 1 所示:

图 1

1、 Oracle 监听器配置(LISTENER)

如图 1 所示,选中树形名目中监听程序项,再点击左上侧“+”按钮添加监听程序,点击监听程序名目,默认加的监听器名称是 LISTENER(该名称也可以由任 意合法字符命名)。选中该名称,选中窗口右侧栏下拉选项中的“监听位置”,点击添加地址按钮。在消灭的网络地址栏的协议下拉选项中选中“TCP/IP”,主机文本框中输入主机名称或IP 地址(假设主机即用作效劳端也作为客户端,输入两项之

一均有效;假设主机作为效劳端并需要通过网络连 接,建议输入 IP 地址),端口文本框中输入数字端口,默认是 1521,也可以自定义任意有效数字端口。配置好的监听位置如以以下图示:

图 2

选中窗口右侧栏下拉选项中的“数据库效劳”,点击添加数据库按钮。在出 现的数据库栏中输入全局数据库名,如 lhg。留意这里的全局数据库名与数据库 SID 有所区分,全局数据库名实际通过域名来把握在同一网段内数据库全局命名 的唯一性,就如 Windows 下的域名把握器,如这里可以输入myoracle.192.168.1.5。Oracle 主名目可以不填写,输入 SID,如 myoracle。完整的数据库效劳配置如以以下图示:

图 3

保存以上配置,默认即可在 Oracle 安装名目下找到监听配置文件 (Windows 下如D:,Linux/Unix 下

$ ORACLE_HOME/network/admin/)。至此,Oracle 效劳端监听器配置已经完成。

2、 本地效劳名配置(Tnsnames)

本地效劳名是基于 Oracle 客户端的网络配置,所以,假设客户端需要连接数据库效劳器进展操作,

则需要配置该客户端,其依附对象可以是任意一台欲连接数据 库效劳器进展操作的 pc 机,也可以是数据库效劳器自身。如前面所介绍,可以利用 Oracle 自带的图形化治理工具 Net Manager 来完成 Oracle 客户端的配置。选中如图 1 中的效劳命名,再点击左上侧“+”按钮,弹出如以以下图示对话框:

图 4

输入 Net 效劳名,如 myoracle,点击下一步,进入以以下图示对话框:

图 5

选中 TCP/IP(Internet 协议),点击下一步,如以以下图示:

图 6

输入主机名与端口号。留意这里的主机名与端口号必需与数据库效劳器端监听器配置的主机名和端口号一样。点击下一步,如以以下图示:

图 7

选中(Oracle8i 或更高版本)效劳名,输入效劳名。这里的效劳名 实际上就是数据库效劳器端监听器配置中的全局数据库名,前者与后者必需一样。连接类型通常选专用效劳器,这要视数据库效劳器的配置而定,假设配置的共享数 据库效劳器,这里的连接类型就要选共享效劳器,否则建议选专用效劳器(关于专用效劳器的介绍请参阅相关文档)。配置好后点击下一步,如以以下图示:

图 8

假设数据库效劳器端相关效劳启动了,可以点击测试按钮进展连接测试。Oracle 默认是通过scott/tiger 用户进展测试连接,由于 scott 用户是 Oracle 自带的例如用户,对于正式的业务数据库或专业测试数据库可能没有配置这个用户,所以需要更改成有效的用户登录才可能测试成功。假设这里测试连接不成功,也不要紧,先点完成按钮完毕配置。 回到 Oracle 网络治理器(Oracle Net Manager)

主窗口,保存配置,默认即可在 Oracle 安装名目下找到本地效劳名配置文件 (Windows 下如D:,Linux/Unix 下$ ORACLE_HOME/network/admin/

)。配置完成的本地效劳名如以以下图示:

图 9

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

3、 连接数据库效劳器

(1) 启动效劳器端监听器与数据库效劳

Linux/Unix 下,启动监听器:

$ lsnrctl start

关闭监听器:

$ lsnrctl stop

查看监听状态:

$ lsnrctl status

启动数据库:

$ sqlplus /nolog

SQL>conn [email=sys@myoracle]sys@myoracle as sysdba --这里的 myoracle 是前面配置的客户端本地效劳名

SQL>conn / as sysdba

SQL>startup

Windows 下,启动监听器:

C:lsnrctl start

启动 Oracle 实例效劳:

C:oradim ?a class=“none“ title=“cs“ rel=“external“>cstartup –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 进展测试:

SQL> [email=zgh@myoracle]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 ,Linux/Unix 下/network/admin/)里每项效劳的首 行效劳名称前不能有空格。

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:oracleora92bin MYORACLE。共享到:


本文标签: 效劳 数据库 配置 连接