【监听】配置服务端静态(动态)监听/修改监听端口及参数local_listener作用

监听实验及说明如下:

1)
配置动态监听、静态监听(作为服务端)

——配置:服务端listener.ora里的动态注册1521端口三要素

     服务端listener.ora里的静态注册三要素

[oracle@hong admin]$ vi listener.ora

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

# Generated by Oracle configuration tools.

LISTENER =

    (DESCRIPTION =

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

    )

 

SID_LIST_LISTENER=

  (SID_LIST=

    (SID_DESC=

      (GLOBAL_DBNAME=CAI)

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

      (SID_NAME=CAI))

  )

服务端配置完成需重新reload一下监听(或者重新停启监听)去装载刚刚新建的监听;动态监听由PMON去注册一般慢一点,1分钟之内,手动注册使用alter systen resigter;命令人工命令PMON立刻将实例、数据库等信息注册到监听里(这样更快)

——配置客户端
tnsnames.ora(作为客户端,角色转变):四要素

[oracle@hong admin]$ vi tnsnames.ora

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

# Generated by Oracle configuration tools.

120 =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = CAI)

    )

  )

 

[oracle@hong admin]$
可以通过tnsping 120去测试客服端访问服务端的网络是否畅通;或者直接以 sqlplus sys/oracle@120 as sysdba进入到服务端的数据库内去验证;

动态监听需配置listener.ora如果需要从客户端登陆数据库则创建tnsnames.ora

 

注:监听主要指令:Lsnrctl start  lsnrctl stop  lsnrctl status  lsnrctl reload  alter system register

 

2)动态注册LSNR2 1526,修改listener.ora监听信息
——将1521的端口改为1526

[oracle@hong admin]$ vi listener.ora

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

# Generated by Oracle configuration tools.

lsnr2=

  (description=

    (address=(protocol=tcp)(host=hong)(port=1526))

   )

 

LISTENER =

    (DESCRIPTION =

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

    )

 

SID_LIST_LISTENER=

  (SID_LIST=

    (SID_DESC=

      (GLOBAL_DBNAME=CAI)

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

      (SID_NAME=CAI))

  )

 

--创建CAI连接串(130,利用1526端口可连接到数据库,用于动态注册LSNR2监听,即创建tns连接字符串,将监听的信息添加到tnsnames.ora文件中。 注意,是tnsnames.ora 文件, 因为pmon在动态注册监听时要从tnsnames.ora中读取相关信息,且动态注册默认只注册到默认的监听器上(名称是LISTENER、端口是1521、协议是TCP)因为pmon只会动态注册port等于1521的监听,否则pmon不能动态注册listener,如果需要向非默认监听注册,则需要配置local_listener参数!

[oracle@hong admin]$ vi tnsnames.ora

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

# Generated by Oracle configuration tools.

120 =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = CAI)

    )

  )

 

130 =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.6)(PORT = 1526))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = CAI)

    )

  )

[oracle@hong admin]$

--更改本地监听参数local_listener
因为其默认是找名称为listener的监听,且端口后为1521;
pmon只会动态注册port等于1521的监听,否则pmon不能动态注册listener,要想让pmon动态注册listener,需要设置local_listener参数。

SQL> show parameter local_listener

 

NAME                                 TYPE        VALUE

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

local_listener                       string

SQL> alter  system set local_listener='130';

 

System altered.

 

SQL> show parameter local_listener

 

NAME                                 TYPE        VALUE

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

local_listener                       string      130

这里要注意的是:动态注册默认只注册到默认的监听器上(名称是LISTENER、端口是1521、协议是TCP)因为pmon只会动态注册port等于1521的监听,否则pmon不能动态注册listener,如果需要向非默认监听注册,则需要配置local_listener参数。

 

--查看监听状态,发现只有静态监听:

[oracle@hong admin]$ lsnrctl status

 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-SEP-2016 01:19:49

 

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

 

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

STATUS of the LISTENER

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

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                15-SEP-2016 00:43:44

Uptime                    0 days 0 hr. 36 min. 4 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

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

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

Listening Endpoints Summary...

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

Services Summary...

Service "CAI" has 1 instance(s).

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

The command completed successfully

 

——启动1526端口的动态监听lsnr2:

[oracle@hong admin]$ lsnrctl start lsnr2

启动其他的监听必须启动是指定监听名,因为不指定的会监听默认找名称是LISTENER、端口是1521、协议是TCP

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-SEP-2016 01:23:28

 

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

 

Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...

 

TNSLSNR for Linux: Version 11.2.0.4.0 - Production

System parameter file is /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

Log messages written to /u01/app/oracle/diag/tnslsnr/hong/lsnr2/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hong)(PORT=1526)))

 

Connecting to (DESCRIPTION=(address=(protocol=tcp)(host=hong)(port=1526)))

STATUS of the LISTENER

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

Alias                     lsnr2

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                15-SEP-2016 01:23:28

Uptime                    0 days 0 hr. 0 min. 0 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

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

Listener Log File         /u01/app/oracle/diag/tnslsnr/hong/lsnr2/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hong)(PORT=1526)))

The listener supports no services

The command completed successfully

[oracle@hong admin]

SQL> alter system register;(通知PMON立即将实例注册到监听)

 

System altered.

 

[oracle@hong admin]$ lsnrctl reload lsnr2(重新加载)

 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-SEP-2016 01:27:07

 

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

 

Connecting to (DESCRIPTION=(address=(protocol=tcp)(host=hong)(port=1526)))

The command completed successfully

 

--再次查看监听LSNR2的状态(其动态监听已起来了):

[oracle@hong admin]$ lsnrctl status lsnr2

 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-SEP-2016 01:27:40

 

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

 

Connecting to (DESCRIPTION=(address=(protocol=tcp)(host=hong)(port=1526)))

STATUS of the LISTENER

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

Alias                     lsnr2

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                15-SEP-2016 01:23:28

Uptime                    0 days 0 hr. 4 min. 12 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

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

Listener Log File         /u01/app/oracle/diag/tnslsnr/hong/lsnr2/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hong)(PORT=1526)))

Services Summary...

Service "CAI" has 1 instance(s).

  Instance "CAI", status READY, has 1 handler(s) for this service...

Service "ORCLXDB" has 1 instance(s).

  Instance "CAI", status READY, has 1 handler(s) for this service...

The command completed successfully

[oracle@hong admin]$ 

而当想要转回1521端口的监听时,需做以下几个动作:

Alter system set local_listener=’ ‘;(单引号内加的是listener.ora里的默认listener的内容)

关闭现有监听,最后启动start(默认是启动名为listener的监听)

请使用浏览器的分享功能分享到微信等