监听感悟

把监听看成一个app(软件)。。每个软件要想客户端找到 通过端口。每个app都要有端口。。。。

客户端通过tnsname 中的 ip地址 找到监听所在服务器!!!通过端口识别要找到的软件是监听。。。

比如客户端 tnsname 通过 字符串找 服务器 (rac环境可能有多个ip。。 ) 找端口

SHANGHAI =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.171.134)(PORT = 1521)) #這里是通过這个ip找服务器,找到服务器后 返现   1521端口 是监听。。
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = cdb1            )###通过這里发现监听中注册的服务名。。静态是 globlename
)
)

监听中可以配置多个端口 。。那实例怎么注册到监听呢。

1、先说动态注册。。。

這里所谓的注册就是说 

我這台服务器中多个监听 每个监听可以分配不同ip(rac环境 scan-ip(remote_listener),,vip(local_listener)

)。。多个端口。 监听配置好之后就一分钟轮训一次。。。找参数中的端口 和我监听端口一样的默认端口来我這里做客。。

alter system set local_listener='(ADDRESS=(PROTOCOL=tcp)(HOST=henry01)(PORT=
2345))','(ADDRESS=(PROTOCOL=tcp)(HOST=henry01)(PORT=1666))';

一下是oracle实例用户下的rac环境::向有vip(192.168.7.206是vip)1521端口的监听注册。。。一看就是不同的监听。。本地注册的是vip对应的有1521的监听。远程注册的是 有1521的 ip地址是 scanip的监听

 

 

下面是grid用户下 asm登陆的默认注册ip和监听

 

 

 

 

 

asm实例和数据库实例都找vip 1521 端口注册。。

 

所以动态注册的ip和端口就确定了。。

 

 

 

 

 

但是如果我的端口不是1521,怎么办。实例是不会找到监听注册的。。

 

2、那就用静态注册。。指定我的监听的实例名

 

 

 

SID_LIST_LSNR2=
(SID_LIST= ##实例信息列表。。。
(SID_DESC= 第一个实例描述信息。。
(GLOBAL_DBNAME=henry)  #指定客户端连接的服务名
(SID_NAME=cdb19c)   指定实例名
(ORACLE_HOME=/oracle/app/oracle/product/19.3.0/dbhome_1) #指定oracle_home
)
)

 

 

vim listener.ora

 

 

 

lsnrctl status lsnr1

 

 

posted @   小刚zzg  阅读(122)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示