Oracle 默认监听

对Oracle数据库的访问是CS结构,数据库服务器作为server端,在客户端需要和server端建立连接,在网络底层通信都是通过TCP/IP协议,当在客户端的应用程序去访问数据库服务器的时候,通过TCP/IP连接到listener,listener作用是监听客户端发送雇来的连接请求,并且接收到连接请求之后,会派生server进程和客户端进程建立会话,在server端需要配置listener,在客户端可以配置多种方式去连接oracle服务器,如easyconnect,tnsname本地命名服务。

 

在建立数据库会建立一个默认的listener,这个默认的listener就可以保证数据库正常访问了,但是在业务比较繁忙的时候可能会配置非默认listener。

默认监听名字叫listener,可以看到默认监听的信息,日志文件配置文件和端口号的信息。

可以看到实例被动态注册到监听之后的状态是ready,要想实现实例的动态注册就要将实例启动到mount状态之后。

 

SQL> startup force nomount;

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Database2)(PORT=1521)))

Services Summary...

Service "oradba" has 1 instance(s).

  Instance "oradb", status BLOCKED, has 1 handler(s) for this service...

The command completed successfully

可以看到是blocked的状态,代表实例现在是nomount状态,nomount状态的实例是不允许被访问的。

服务端和server端通过监听具体建立连接过程如下图

[oracle@Database2 ~]$ sqlplus /nolog   --远程使用用户建立连接

 

SQL*Plus: Release 11.2.0.4.0 Production on Thu Dec 12 05:47:46 2019

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

SQL> connect scott/123456@172.25.254.135:1521/oradba

Connected.

 

SQL> select username,sid,program,server from v$session where username='SCOTT'; --可以查询到用户连接信息

 

USERNAME       SID PROGRAM  SERVER

------------------------------ ---------- ------------------------------ ---------

SCOTT        28 sqlplus@Database2 (TNS V1-V3)  DEDICATED

[oracle@Database2 ~]$ lsnrctl stop --将监听关闭

SQL> select username,sid,program,server from v$session where username='SCOTT';

 

USERNAME       SID PROGRAM  SERVER

------------------------------ ---------- ------------------------------ ---------

SCOTT        28 sqlplus@Database2 (TNS V1-V3)  DEDICATED

 

现在将监听关闭

SQL> !lsnrctl stop

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 12-DEC-2019 05:57:17

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))

The command completed successfully

SQL> /    --但是还是可以看到之前用户建立的连接并未断开

USERNAME       SID PROGRAM  SERVER

------------------------------ ---------- ------------------------------ ---------

SCOTT        28 sqlplus@Database2 (TNS V1-V3)  DEDICATED

SQL> connect scott/123456@172.25.254.135:1521/oradba --但是新来的连接是建立失败的因为监听已经关闭了

ERROR:

ORA-12541: TNS:no listener

Warning: You are no longer connected to ORACLE.

 

最后看一下默认监听的配置文件,注意这里的localhost对应的是/etc/hosts下面localhost转换Ip。

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    )

  )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值