把监听看成一个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
)
)
标签:感悟,ip,端口,实例,1521,注册,监听 From: https://www.cnblogs.com/zzg520/p/16991176.html