Oracle监听器—静态注册

时间:2024-05-04 09:03:43

注册就是将数据库作为一个服务注册到监听程序。客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库。这个服务名可能与实例名一样,也有可能不一样。

注册分:
1. 静态注册
2. 动态注册

静态注册

为了静态注册一个实例,我们需要在 listener.ora中添加相应监听器条目。

这里我们建立了两个LISTENER(LISTENER — 默认的,LISTENER1 - 自己新建的),服务名(全局数据库名)分别为test,test1。

下面是我的listener.ora文件的内容。位置: C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Tough)(PORT = 1521))
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = test)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (SID_NAME = ora11g)
    )
  )

LISTENER1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Tough)(PORT = 1522))
  )

SID_LIST_LISTENER1 =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = test1)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (SID_NAME = ora11g)
    )
  )

C:\>lsnrctl

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 07-4月 -2014 12:56:43

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

欢迎来到LSNRCTL, 请键入"help"以获得信息。

//可以查看lsnrctl下可以执行的命令,常用到的是start, stop, status, reload, services
LSNRCTL> help
以下操作可用
星号 (*) 表示修改符或扩展命令:

start               stop                status
services            version             reload
save_config         trace               change_password
quit                exit                set*
show*

//如果只输入start,则启动默认监听器 LISTENER
LSNRCTL> start LISTENER
启动tnslsnr: 请稍候...

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系统参数文件为c:\oracle\product\10.2.0\db_1\network\admin\listener.ora
写入c:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Tough)(PORT=1521)))

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Tough)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
启动日期                  07-4月 -2014 12:56:49
正常运行时间              0 天 0 小时 0 分 1 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          c:\oracle\product\10.2.0\db_1\network\admin\listener.ora
监听程序日志文件          c:\oracle\product\10.2.0\db_1\network\log\listener.log
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Tough)(PORT=1521)))
服务摘要..
服务 "test" 包含 1 个例程。
  例程 "ora11g", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

//如果只输入status,则查看默认监听器 LISTENER状态
LSNRCTL> status LISTENER
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Tough)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
启动日期                  07-4月 -2014 12:56:49
正常运行时间              0 天 0 小时 1 分 9 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          c:\oracle\product\10.2.0\db_1\network\admin\listener.ora
监听程序日志文件          c:\oracle\product\10.2.0\db_1\network\log\listener.log
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Tough)(PORT=1521)))
服务摘要..
服务 "ora11g" 包含 1 个例程。
  例程 "ora11g", 状态 READY, 包含此服务的 1 个处理程序...

服务 "ora11gXDB" 包含 1 个例程。
  例程 "ora11g", 状态 READY, 包含此服务的 1 个处理程序...
服务 "ora11g_XPT" 包含 1 个例程。
  例程 "ora11g", 状态 READY, 包含此服务的 1 个处理程序...

服务 "test" 包含 1 个例程。
  例程 "ora11g", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

命令执行成功

蓝色部分是动态注册的监听器的状态。红色部分是我们静态注册的监听器的状态。

//若不是启动默认监听器 LISTENER,则需要指定启动的监听器
LSNRCTL> start LISTENER1
启动tnslsnr: 请稍候...

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系统参数文件为c:\oracle\product\10.2.0\db_1\network\admin\listener.ora
写入c:\oracle\product\10.2.0\db_1\network\log\listener1.log的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Tough)(PORT=1522)))

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Tough)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER1
版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
启动日期                  07-4月 -2014 12:57:07
正常运行时间              0 天 0 小时 0 分 1 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          c:\oracle\product\10.2.0\db_1\network\admin\listener.ora
监听程序日志文件          c:\oracle\product\10.2.0\db_1\network\log\listener1.log
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Tough)(PORT=1522)))
服务摘要..
服务 "test1" 包含 1 个例程。
  例程 "ora11g", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

LSNRCTL> status LISTENER1
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Tough)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER1
版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
启动日期                  07-4月 -2014 12:57:07
正常运行时间              0 天 0 小时 1 分 13 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          c:\oracle\product\10.2.0\db_1\network\admin\listener.ora
监听程序日志文件          c:\oracle\product\10.2.0\db_1\network\log\listener1.log
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Tough)(PORT=1522)))
服务摘要..
服务 "test1" 包含 1 个例程。
  例程 "ora11g", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

建立好监听器后,我们还需要在客户端机器上的tnsnames.ora设置相关条目。位置:C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora

A =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = tough)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test)
    )
  )

A1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = tough)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test1)
    )
  )

测试静态注册的监听器:

C:\>sqlplus /@a as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 4月 7 13:11:37 2014

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

C:\>sqlplus /@a1 as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 4月 7 13:11:54 2014

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

连接成功!