监听器是客户端和服务器端的中间组件,负责对客户端传入的连接请求进行监听,并且对服务器端的连接负荷进行调整。当客户端视图建立一个到服务器端的连接时,监听器接收到客户端的请求,然后再将它交给服务器进行处理,一旦客户端和服务器建立连接,客户端和服务器以后就直接进行通信,而不再需要监听器的参与。
创建监听程序
方法一、
1.用oracle用户登录到操作系统,然后启动图形界面。
2.在终端输入netca,启动监听器的图形界面配置。选择“侦听器配置(Listener Configuration)”,然后单击“Next”。
[oracle@myoracle ~]$ netca


3.由于是添加第一个侦听器,所以这里只能选“添加(Add)”,然后单击“Next”。

4.这里输入侦听器的名字,也可以保持默认,然后单击“Next”。

5.侦听器使用的协议,这里选择默认,然后单击“Next”。

6.配置侦听器的端口,默认是使用1521,如果有需要可以按照要求进行修改。这里选择默认,然后单击“Next”。

7.是否还要配置另外的侦听器,这里不配置了,所以选择默认的“NO”,然后单击“Next”。

8.这里单击“Next”,在跳出来的对话框选择“Finish”。

9.在终端输入netmgr,打开Net Manager。
[oracle@myoracle install]$ netmgr

10.打开“本地(local)”--“监听程序(Listeners)”,找到我们前面创建的监听程序。

11.单击右侧的下拉菜单,选择“数据库服务(Database Services)”,输入数据库的名称和SID。然后选择“文件(Files)”--“保存网络设置(Save Network Configuration)”

12.查看监听程序的状态。如果有看前面创建的服务名处于ready状态,说明是OK的。
lsnrctl status ---查看监听程序的状态
lsnrctl stop ---停止监听程序
lsnrctl start ---启动监听程序
[oracle@myoracle install]$ lsnrctl status

命令Status将会列出下面的有关监听器的信息:
- 监听器的名称,监听器的版本号、监听器的启动时间、运行时间、跟踪级别、监
听器配置文件listener.ora的位置等。
- 监听器的地址信息,包括主机名、断开号等。
- 监听器的实例的状态信息,实例有下面几种状态:
- READY表示实例可以接受连接。
- BLOCKED表示实例不能接受连接。
- READY/SECONDARY表示这是群集(Real Application Cluster)的第
二个实例,准备接受连接。
- UNKNOWN表示监听器的静态注册的(Registered Statically)。
方法二、
因为方法一的图形界面其实就是生成了一个listener.ora的文件,所以我们可以进入到$ORACLE_HOME/network/admin下面直接创建listener.ora,然后修改相应的内容即可。
1.进入$ORACLE_HOME/network/admin目录下面。
[oracle@myoracle1 ~]$ cd $ORACLE_HOME/network/admin
[oracle@myoracle1 admin]$ pwd
/opt/app/product/11.2.0/db_1/network/admin

2.创建和编辑listener.ora
[oracle@myoracle1 admin]$ vi listener.ora

3.输入下面的内容(需要相应的修改),然后保存即可。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = myora--修改为自己的数据库名)
(ORACLE_HOME = /opt/app/product/11.2.0/db_1 ---修改为自己的数据库主目录)
(SID_NAME = myora ---修改为自己的SID)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myoracle1--修改为自己的主机名)(PORT = 1521))
)
ADR_BASE_LISTENER = /opt/app
方法三、
使用应答文件以自动方式运行netca实用程序。使用这种模式可以使处理过程脚本化,还可以确保以复用方式创建和实现监听器。
1、找到ORACLE_BASE目录下面默认应答文件。
[oracle@oralce12 admin]$ find /u01/app/ -name "netca.rsp"
2、将默认应答文件拷贝到某个路径下面。
[oracle@oralce12 admin]$ cp
//u01/app/oracle/product/19.3.0/dbhome_1/assistants/netca/netca.rsp
/u01/app/mynet.rsp
3、如果想修改默认的名称和其他属性,可以编辑该应答文件。
[oracle@oralce12 admin]$ vi /u01/app/mynet.rsp
4、这里使用默认值运行netca实用程序。
[oracle@oralce12 admin]$ netca -silent -responsefile /u01/app/mynet.rsp
该命令会在ORACLE_HOME/network/admin/目录中创建listener.ora和sqlnet.ora文件,并启动了默认的监听器。
客户端配置
配置监听器只是配置Oracle网络的第一步;监听器配置完成之后,还需要配置Oracle客户端网络,才能实现客户端到服务器端的连接。
方法一、
1.在终端输入netca,启动监听器的图形界面配置。选择“侦听器配置(Listener
Configuration)”,然后单击“Next”。
[oracle@myoracle ~]$ netca

2.选择“本地 络服务名称配置(Local Net Service Name configuration)”,然后单击“Next”。

3.选择默认的“Add”,然后单击“Next”。

4.输入服务的名称,这个根据自己的实际情况填写,然后单击“Next”。

5.选择“TCP”协议,然后单击“Next”。

6.输入主机的IP地址,然后单击“Next”。

7.是否测试,按照自己的需要进行选择,我这里就不测试了,直接单击“Next”。

8.输入一个网络服务名,然后单击“Next”。

9.是否还配置其他的网络服务名,这里选“NO”,然后单击“Next”。

10.选择“Next”。

11.选择“Finish”。

方法二、
其实上面的图形界面是在$ORACLE_HOME/network/admin路径下面创建了一个
tnsnames.ora的文件,所以我们可以通过手动创建该文件,然后输入相应的内容即可。
1.进入$ORACLE_HOME/network/admin目录下面。
[oracle@myoracle1 ~]$ cd $ORACLE_HOME/network/admin
[oracle@myoracle1 admin]$ pwd
/opt/app/product/11.2.0/db_1/network/admin

2.创建和编辑tnsnames.ora。
[oracle@myoracle1 admin]$ vi tnsnames.ora

3.输入下面的内容,按照自己的情况进行修改,然后保存退出即可。
MYORA = ---修改为自己要设定的名称
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.83.174 --修改为自己主机IP)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = myora ---修改为自己的服务名)
)
)
测试客户端到服务器的连接
上面的客户端配置好了以后,可以测试下客户端到服务器的连通性是否有问题。可以使用tnsping命令进行测试,返回OK,说明是正常的。
[oracle@bingo admin]$ tnsping bingo




