Oracle 11g R2网络侦听器实验
单实例环境(不是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是侦听器的配置文件 如果listerner的端口使用默认的1521的话,可以没有listener.ora,但是建议最好不要删除这个文件。 创建侦听器 可以通过修改listener.ora来配置侦听器以外,还可以使用其他工具来配置侦听器 netca netmgr 使用netca添加侦听器的方法 查看默认侦听器的状态 查看LISTENER1的状态 远程客户端连接方式 远程客户端连接oracle服务器可以使用以下两个方式: 1.easy connect: conn user/[email?protected]:port/orcl as sysdba 2.tnsnames: conn user/[email?protected] 使用easy connect方式远程连接oracle服务器 客户端是win7系统,需要安装oracle客户端程序 删除listener.ora文件中的标识的行 停止侦听器服务 [[email?protected] admin]$ lsnrctlstop 启动侦听器服务 [[email?protected] admin]$ lsnrctl start 再去连接实例时,就无法连接,提示没有listener. 将侦听器还原到没有删除之前的状态,然后重启服务lsnrctl stop/start 使用netmgr工具 删除listener1侦听器,单击左侧“X”按钮 可以使用easy connect和tnsnames的方式连接 Tnsnames连接方法:<推荐的客户端连接方式> conn user/[email?protected] Tnsnames涉及到一个文件:tnsnames.ora是一个客户端的工具,将tnsnames.ora拷贝到oracle客户端安装目录中。 使用记事本打开tnsnames.ora文件,原始内容如下 对原始内容中如图所示部分复制并粘贴到tnsnames.ora中的空白位置,进行修改 修改为 然后保存退出。 连接实例 使用netmgr添加监听器 使用listener1侦听器连接实例,结果是无法连接到实例,因为实例orcl并没有在listener1侦听器上注册。默认情况下orcl实例注册到了默认的侦听器1521上面,所以目前只能使用1521来连接。 实例注册到侦听器的方法有: 静态注册:在listener.ora文件中手工指定 动态注册:pmon进程每隔一分钟将服务名和实例名注册到侦听器上面 将实例注册到侦听器的方法 使用alter system register可以将实例注册到侦听器上。这个命令将实例注册到哪个侦听器上了呢?这条命令将实例注册到了默认的侦听器上面了。 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))"; 此时使用默认的侦听器就无法连接到实例了。 修改tnsnames.ora中的文件 SQL>alter system setlocal_listener=LISTENER2; 系统已更改。 查看实例注册到了哪个侦听器上面:show parameter local; 如果对此文有什么问题的话,请加下面微信一起探讨 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |