Oracle 监听的一系列知识

一.Oracle监听的问题对于初学oracle的人一直是一个模棱两可的问题,在此学习总结下相关知识。

1.本地监听配置

1.1正常的1521端口

oracle有自己默认的本地监听,默认端口是1521,所以一般而言配置监听后通过 lsnrctl start 命令就能正常启动监听。启动监听后,可以通过Oracle客户端正常连接到数据库。这是最正常的一种情况。这里放一个我本地数据库的监听.

LISTENER =

(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = host)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = TESTZEX)
(SID_NAME = TESTZEX1)
)
)

 

1.2其余的端口号

除了正常的1521端口外,如果想配置其他的监听端口,那么就需要注意了,因为默认的1521端口是pmon自动注册的,而新建的端口比如1522,在正常配置后如下:

LISTENER1522 =
(DESCRIPTION_LIST =
(DESCRIPTION =h
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.101.143)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
)
)

SID_LIST_LISTENER1522 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = TESTZEX)
(SID_NAME = TESTZEX1)

此时通过lsnrctl start LISTENER1522启动监听后,lsnrctl status LISTENER1522命令查看发现

 

 

 等待pmon进程刷新监听后发现,pdb服务名没有被注册上去。原因是动态注册默认只注册到默认的监听器上(名称是LISTENER、端口是1521、协议是TCP),因为pmon只会动态注册port等于1521的监听,否则pmon不能动态注册listener,如果需要向非默认监听注册,则需要配置local_listener参数。

在CDB下执行

alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=1522))))'  scope=both; 

在通过lsnrctl status LISTENER1522 命令查看。

 

 

 

监听正常注册

 

 

 

 

 客户端正常登录。

2.TNS

TNS也叫连接串,在本地和远程数据库都可配置(主要为客户端使用),TNS主要的作用其实就是提供一个服务名端口的简写。从上面可以看到,通过TNS连接数据库更为方便,TNS的位置在客户端 一般是配置如下的环境变量 下的export TNS_ADMIN=$ORACLE_HOME/network/admin下tnsnames.ora中。一般写法为:

MCRM1522 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 连接远程数据库ip)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MCRM)
)
)

通过tnsnames能连接到数据库。

posted @   异乡神01  阅读(714)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 刚刚!百度搜索“换脑”引爆AI圈,正式接入DeepSeek R1满血版
点击右上角即可分享
微信分享提示