温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Oracle 11g R2 网络侦听器实验

发布时间:2020-06-11 12:21:52 来源:网络 阅读:817 作者:初心WHQ 栏目:关系型数据库

单实例环境(不是RAC),侦听器和实例必须要在同一台机器上。两台机器通信必须使用一个网络协议才能进行通信,假如浏览网页需要使用http协议,远程连接需要使用RDP/ssh/telnet等等。

有一台oracle服务器,有个客户端要连接到oracle服务器上,两台机器通信就要使用oracleNET协议,和以上的协议是一样的。有协议就要有相应的端口,所以oracleNET有个默认的侦听端口1521.

其实配置oracle网络就是配置oracle侦听器,侦听器很重要,如果没有配置侦听器,客户端是无法连接到oracle服务器上面的。其实即使是在本地连接oracle服务器,侦听器也是必须要运行的。客户端远程连接到oracle服务器时使用oracleNet协议,是被封装到了tcp/ip协议中。如果是直接在本地连接数据库用的是IPC。IPC是指<进程间的通信>。

侦听器是用来接收外面的请求,在将外面的请求通过服务器进程交给实例,所以实例必须要向侦听器注册。如果监听器不知道有相应的实例肯定是不行的--即让侦听器知道有实例可以连接。oracle默认侦听器的端口是1521。

侦听器的配置文件存放在:$ORACLE_HOME/network/admin/中的instener.ora是侦听器的配置文件
Oracle 11g R2 网络侦听器实验
如果listerner的端口使用默认的1521的话,可以没有listener.ora,但是建议最好不要删除这个文件。

创建侦听器

可以通过修改listener.ora来配置侦听器以外,还可以使用其他工具来配置侦听器

netca

netmgr

使用netca添加侦听器的方法
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验Oracle 11g R2 网络侦听器实验Oracle 11g R2 网络侦听器实验
查看默认侦听器的状态
Oracle 11g R2 网络侦听器实验
查看LISTENER1的状态
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
远程客户端连接方式

远程客户端连接oracle服务器可以使用以下两个方式:

1.easy connect: conn user/password@ip:port/orcl as sysdba

2.tnsnames: conn user/password@XX

使用easy connect方式远程连接oracle服务器

客户端是win7系统,需要安装oracle客户端程序
Oracle 11g R2 网络侦听器实验Oracle 11g R2 网络侦听器实验
删除listener.ora文件中的标识的行
Oracle 11g R2 网络侦听器实验
停止侦听器服务

[oracle@orclsrv admin]$ lsnrctlstop

启动侦听器服务

[oracle@orclsrv admin]$ lsnrctl start

再去连接实例时,就无法连接,提示没有listener.
Oracle 11g R2 网络侦听器实验
将侦听器还原到没有删除之前的状态,然后重启服务lsnrctl stop/start

使用netmgr工具

删除listener1侦听器,单击左侧“X”按钮
Oracle 11g R2 网络侦听器实验Oracle 11g R2 网络侦听器实验

可以使用easy connect和tnsnames的方式连接
Oracle 11g R2 网络侦听器实验
Tnsnames连接方法:<推荐的客户端连接方式> conn user/password@XX

Tnsnames涉及到一个文件:tnsnames.ora是一个客户端的工具,将tnsnames.ora拷贝到oracle客户端安装目录中。
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
使用记事本打开tnsnames.ora文件,原始内容如下
Oracle 11g R2 网络侦听器实验
对原始内容中如图所示部分复制并粘贴到tnsnames.ora中的空白位置,进行修改
Oracle 11g R2 网络侦听器实验
修改为
Oracle 11g R2 网络侦听器实验
然后保存退出。

连接实例
Oracle 11g R2 网络侦听器实验
使用netmgr添加监听器
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
使用listener1侦听器连接实例,结果是无法连接到实例,因为实例orcl并没有在listener1侦听器上注册。默认情况下orcl实例注册到了默认的侦听器1521上面,所以目前只能使用1521来连接。
Oracle 11g R2 网络侦听器实验
实例注册到侦听器的方法有:

静态注册:在listener.ora文件中手工指定

动态注册:pmon进程每隔一分钟将服务名和实例名注册到侦听器上面

将实例注册到侦听器的方法Oracle 11g R2 网络侦听器实验
使用alter system register可以将实例注册到侦听器上。这个命令将实例注册到哪个侦听器上了呢?这条命令将实例注册到了默认的侦听器上面了。
Oracle 11g R2 网络侦听器实验
Oracle 11g R2 网络侦听器实验
ORCL是tnsnames中的解析名:即使用ORCL就能够解析出(ADDRESS = (PROTOCOL = TCP)(HOST =orclsrv)(PORT = 1521))这个地址。

SQL>alter system set local_listener="(ADDRESS = (PROTOCOL = TCP)(HOST= orclsrv)(PORT = 1521))";与alter system set local_listener=ORCL是等价的。

将实例注册到listener1上面

SQL>alter system set local_listener="(ADDRESS = (PROTOCOL = TCP)(HOST= orclsrv)(PORT = 1522))";
Oracle 11g R2 网络侦听器实验
此时使用默认的侦听器就无法连接到实例了。
Oracle 11g R2 网络侦听器实验
修改tnsnames.ora中的文件
Oracle 11g R2 网络侦听器实验
SQL>alter system setlocal_listener=LISTENER2;

系统已更改。

查看实例注册到了哪个侦听器上面:show parameter local;

如果对此文有什么问题的话,请加下面微信一起探讨
Oracle 11g R2 网络侦听器实验

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI