oracle监听详解

典型的监听配置模板:

创建监听有多重方式:(1)netca (2)netmgr (3)手工编辑listener.ora文件等;

下面是一个监听配置的标准模板:

 

配置文件中的关键之解析:

(1) PROTOCOL指的是监听接收链接的协议;

(2) HOST是指的监听运行的主机或者IP地址;

(3) PORT指的是监听运行的端口。

(4) SID_NAME指的是监听服务的实例名

(5) GLOBAL_NAME指的是监听服务的服务名

(6) ORACLE_HOME指的是监听服务的$ORACLE_HOME;

 

监听支持的协议参数:

 

 

 

 

注意:为增加系统的可用性,在HA环境下,建议将listener.oora关键字HOST配置成主机名;

其中的SID_NAME等于数据库参数INSTANCE_NAME的;

 

然后再看一下tnsnames的文件内容:

 

 

我们需要关注的是tns的service name是等于listener文件中的global_dbname的;

 

 

注意tnsping:tnsping只是发送链接包(NSPTCN)至服务端监听上,所以即使tnsping监听正常,客户端也不一定能连接到数据库库服务器;tnsping主要检查的是远程监听是否启动在相应的ip地址和端口上,并不检查监听中的实力服务和句柄(handle);

 

 

 

静态配置内容:

在静态注册环境下,在listener.ora文件中主要配置一下内容

(1) SID_NAME:数据库实例名,其值需和数据库参数INSTANCE_NAME保持一致。

(2) GLOBAL_DBNAME:数据库服务名,可以省略,默认和SID_NAME保持一致。

(3) ORACLE_HOME:实力运行的ORACLE_HOME目录,在unix和linux环境下,该参数可以省略,默认和环境变量¥ORACLE_HOME保持一致;

 

以下为实例名为felix和pyf静态注册配置:(注意:在监听静态注册的情况下,即使数据库实例已关闭,具有sysdba权限的业务用户仍然可以通过监听远程连接到数据库中进行维护);

[oracle@felix admin]$ vi  listener.ora   

# listener.ora Network Configuration File:/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

 

LISTENER =

 (DESCRIPTION =

    (ADDRESS= (PROTOCOL = TCP)(HOST = felix)(PORT = 1521))

  )

 

SID_LIST_LISTENER =

   (SID_LIST =

      (SID_DESC =

        (GLOBAL_DBNAME = develop)

       (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)

       (SID_NAME = felix )

      )

      (SID_DESC =

        (GLOBAL_DBNAME = pyfeng)

       (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_2)

       (SID_NAME = pyf )

      )

 

   )

 

ADR_BASE_LISTENER = /u01/app/oracle

 

11:36:53 SQL>show  parameter service

 

NAME                                 TYPE                   VALUE

---------------------------------------------------------- ------------------------------

service_names                        string                 felix

 

 

[oracle@felix admin]$ cat tnsnames.ora  

# tnsnames.ora Network Configuration File:/u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

 

DEVELOP_p =

 (DESCRIPTION =

   (ADDRESS_LIST =

     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.17)(PORT = 1521))

    )

   (CONNECT_DATA =

     (SERVICE_NAME = develop)

    )

  )

 

[oracle@felix admin]$

特别注意:如果listener.ora设置了GLOBAL_DBNAME参数,呢么在RAC环境下,TAF和connect-time failover特性将失效;

 

注意监听状态:

 [oracle@felixadmin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Productionon 12-AUG-2014 14:01:58

 

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

 

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=felix)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.3.0 -Production

Start Date                12-AUG-2014 11:25:44

Uptime                    0 days 2 hr. 36 min. 13 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                     OFF

Listener Parameter File  /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Listener Log File        /u01/app/oracle/diag/tnslsnr/felix/listener/alert/log.xml

Listening Endpoints Summary...

 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=felix)(PORT=1521)))

Services Summary...

Service "develop" has 1 instance(s).

  Instance"felix", status UNKNOWN, has 1 handler(s) for this service...

Service "felix" has 1 instance(s).

  Instance"felix", status BLOCKED, has 1 handler(s) for this service...

The command completed successfully

[oracle@felix admin]$

 

 

### 配置 Oracle 监听器 在 Windows 系统中为 Oracle 数据库配置监听器是一个重要的步骤,它允许客户端应用程序通过网络连接到数据库实例。以下是关于如何完成此过程的相关说明: #### 1. 修改 `tnsnames.ora` 文件 在 Windows 上,默认情况下,`tnsnames.ora` 文件通常位于路径 `D:/oracle/ora90/network/admin/tnsnames.ora` 中[^4]。如果该文件不存在,则需要手动创建并编辑。 以下是一个典型的 `tnsnames.ora` 文件的内容结构: ```plaintext ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name_or_ip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ``` 在此示例中: - 替换 `your_host_name_or_ip` 为主机名称或 IP 地址。 - 将端口号设置为默认的 `1521`(除非已更改)。 - 设置服务名为目标数据库服务名。 #### 2. 使用 Net Manager 工具 可以通过图形化工具 **Net Manager** 来简化监听器的配置流程。启动方法如下: - 打开命令提示符窗口。 - 输入 `netmgr` 并按回车键运行 Net Manager 应用程序。 进入 “NETMGR-监听程序-数据库” 界面后,可以检查、修改或输入数据库的所有选项,包括全局数据库名、Oracle 主目录以及 SID 等参数[^3]。 #### 3. 编辑 `listener.ora` 文件 除了 `tnsnames.ora` 外,还需要调整 `listener.ora` 文件来定义监听器的行为。其位置同样可能位于 `D:/oracle/ora90/network/admin/listener.ora` 路径下。 下面是一份标准的 `listener.ora` 配置模板: ```plaintext LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name_or_ip)(PORT = 1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = C:\app\Your_Oracle_Home_Path) (SID_NAME = orcl) ) ) ``` 注意替换其中的关键字段以匹配实际环境中的主机名/IP地址和服务标识(SID)。 #### 4. 启动和测试监听器 完成上述配置之后,需重新启动监听器使新设定生效,并验证其工作状态: - 开启命令行终端,执行以下指令重启监听器: ```bash lsnrctl stop lsnrctl start ``` 随后可利用 `lsnrctl status` 命令确认监听器当前的状态及其所关联的数据库实例信息。 --- ### 总结 为了成功地在 Windows 环境里部署 Oracle监听功能,不仅涉及对多个核心配置文档(`tnsnames.ora`, `listener.ora`)的手工编写或者借助 GUI 类型的应用程序(像 Net Manager),而且要保证硬件资源达到最低需求水平——操作系统支持(Linux 或者 Windows)[^2], 至少具备 2GB RAM 和不少于 10GB 可用磁盘容量等条件被满足才能顺利完成整个安装与初始化进程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值