ITPub博客

首页 > 数据库 > Oracle > 监听及注册方式

监听及注册方式

原创 Oracle 作者:zhiyuan315 时间:2014-03-04 15:04:50 0 删除 编辑
何谓监听?
监听是连接客户端和Oracle数据库的“桥梁”,远程客户端进程只有通过服务端的监听认证、转发才能连接到数据库。
特点:
?
监听和实例是多对多的关系。一个监听可以服务于多个实例。{重启主机前一定要检查主机上运行着多少个监听。}
?监听串行处理客户端连接的会话。
?监听的认证和转发只作用于会话连接的一瞬间。
?监听的启停与关闭对已连接的会话不受影响。
注册方式:
?动态注册:由Oracle PMON进程将数据库实例信息动态注册至监听上,默认oracle自动注册1521的监听,
                 对于非1521的端口,要设置local_listener参数:方法一.tnsname.ora中增加对应端口的数据库连接别名wzy1522, alter system set local_listener=wzy1522
                                                                                方法二.alter system set local_listener='(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 100.100.100.105)(PORT = 1522)))'
   动态注册方式下,监听启动顺序的比较:
   监听先于数据库启动:数据库实例在NOMOUNT过程中由PMON进程在监听中负责注册服务名(参数serivce_name)和实例名(参数instance_name)数据库启动完成,客户端即可连接。
   监听后于数据库启动:在监听启动完毕之后,由PMON进程自动往监听中动态注册实例信息。监听启动完成,客户端不一定能连接,需要执行alter system register,alter system set service_name=?xxx?。
***动态注册分析***
     如果/etc/hosts配置文件有问题,往往不能进行动态注册。
     动态注册存在bug,即实例状态突然从lsnrctl status中消失。
推荐使用静态注册!!!
?静态注册:是要指定监听需要服务于特定实例的客户端连接。
   listener.ora中增加SID_LIST_LISTENER*模块,典型配置如下:
   LISTENER=
                 (DESCRIPTION=
                    (ADDRESS_LIST=
                       (ADDRESS=(PROTOCOL=tcp)(HOST=172.16.4.37)(PORT=1521))
                    )
                 )
    SID_LIST_LISTENER=
                    (SID_LIST=
                        (SID_DESC=
                           (GLOBAL_DBNAME=wzy)
                           (ORACLE_HOME=/s01/oradata/app/oracle/product/11.2.0/dbhome_1)
                           (SID_NAME=wzy)
                        )
                     )
   LISTENER1522=
                 (DESCRIPTION=
                    (ADDRESS_LIST=
                       (ADDRESS=(PROTOCOL=tcp)(HOST=172.16.4.37)(PORT=1522))
                    )
                 )
    SID_LIST_LISTENER1522=
                    (SID_LIST=
                        (SID_DESC=
                           (GLOBAL_DBNAME=wzy)
                           (ORACLE_HOME=/s01/oradata/app/oracle/product/11.2.0/dbhome_1)
                           (SID_NAME=wzy)
                        )
                     )
----SID_NAME:监听服务的实例名
----GLOBAL_NAME: 监听服务的服务名
----ORACLE_HOME:监听服务的$ORACLE_HOME目录
***静态注册特点:***
?与数据库启动顺序无关。数据库启动完成之后,客户端即可连接至数据库。
?监听中的实例状态显示为unknown与实例的真正状态无关!
?如果存在多张网卡,listener.ora中的host关键字可以配置为0.0.0.0。表示监听对多个IP同时生效,在HA环境中尤其有用!
?如果需要在listener.ora增加实例信息,只需执行lsnrctl reload即可,无须重启监听。
?静态注册和动态注册可以共存。
补充:
sqlplus username/password@[//]host[:port]/service_name--不依赖于tnsname.ora

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28346613/viewspace-1100816/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2014-02-24

  • 博文量
    1
  • 访问量
    40188