全面掌握Oracle Net Services组件及其工作原理

在这里插入图片描述

连接数据库实例

会话和连接的定义及例子
  • 连接(Connection):指的是用户进程和数据库实例之间的通信通道。
  • 会话(Session):代表当前用户登录到数据库实例的状态。

例子

  1. 建立连接:用户通过SQL*Plus发出一个SQL查询(如SQL> SELECT ...),这会创建一个连接到数据库的通道。
    SQL> CONNECT username/password@database;
    
  2. 创建会话:当用户成功连接到数据库实例后,会创建一个会话,用于保持用户状态和执行SQL操作。每次连接都会对应一个会话。

Oracle Net Services概述

Oracle Net Services提供客户端或中间层与数据库服务器之间的通信。其架构包括以下组件:

  • 应用程序(Application):客户端或中间层的应用程序,通过Oracle Net与数据库服务器通信。
  • 监听器(Listener):在数据库服务器上运行,监听来自客户端的连接请求,并管理流量。
  • Oracle Net配置文件:包含网络配置参数,如listener.oratnsnames.orasqlnet.ora

例子

  1. 客户端应用程序:一个基于Java的应用程序连接到Oracle数据库以获取数据。
  2. 监听器:监听器在数据库服务器上运行,配置在listener.ora文件中,监听客户端请求。

Oracle Net Services组件

Oracle Net Services由以下组件构成:

  • 监听器(Listener):在服务器上驻留,负责监听传入的客户端连接请求并管理流量。配置文件为listener.ora
  • 命名方法(Naming Methods):客户端应用程序用来解析连接标识符的方法,尝试连接到数据库服务。配置文件为sqlnet.ora
  • 命名(网络服务名,Net Service Name):为服务指定的简单名称,解析为连接描述符,用于识别服务的网络位置。配置文件为tnsnames.ora
  • 配置文件(Profiles):包含启用和配置Oracle Net特性的一组参数。配置文件为sqlnet.ora

例子

  1. 监听器配置文件(listener.ora)
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = myserver)(PORT = 1521))
        )
      )
    
  2. 命名方法配置文件(sqlnet.ora)
    NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
    
  3. 命名服务名配置文件(tnsnames.ora)
    ORCL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = myserver)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = orcl)
        )
      )
    

管理Oracle Net Services的工具

用于配置和管理Oracle Net Services的工具包括:

  • Enterprise Manager Cloud Control:用于集中管理和监控数据库。
  • Oracle Net Manager:图形化工具,用于配置和管理Oracle Net Services。
  • Oracle Net Configuration Assistant:用于创建和配置Oracle Net Listener和命名方法。
  • Listener Control Utility(LSNRCTL):命令行工具,用于管理监听器。

例子

  1. Enterprise Manager Cloud Control:通过Web界面监控和管理数据库实例和网络配置。
  2. Oracle Net Manager:使用图形界面配置监听器和命名方法。
    $ netmgr
    
  3. Oracle Net Configuration Assistant:使用命令行配置网络服务。
    $ netca
    
  4. Listener Control Utility(LSNRCTL)
    $ lsnrctl start
    

Oracle Net Listener概述

Oracle Net Listener负责处理客户端连接请求,并将其分配给适当的数据库服务。它可以通过以下工具进行管理:

  • Enterprise Manager Cloud Control
  • Oracle Net Manager
  • Oracle Net配置文件:如listener.orasqlnet.ora

例子

  1. 启动监听器
    $ lsnrctl start
    
  2. 查看监听器状态
    $ lsnrctl status
    

默认监听器

在创建Oracle数据库时,Oracle Net Configuration Assistant实用程序会创建一个名为LISTENER的本地监听器。

  • 动态服务注册:监听器会自动填充可用的数据库服务。
  • 监听地址:监听器默认监听TCP/IP协议地址,如(PROTOCOL=tcp)(HOST=host_name)(PORT=1521)
  • 默认配置:无需额外配置,数据库实例即可通过LISTENER访问。

例子

  1. 默认监听器配置
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        )
      )
    

专用服务器和共享服务器架构对比

专用服务器(Dedicated Server)

每个客户端连接都由一个单独的服务器进程处理,这种架构适用于需要高性能和资源隔离的场景。

例子

  • 客户或中间层:每个客户端连接到一个专用的服务器进程,所有请求都由该服务器进程处理。
    客户端A -> 专用服务器进程A -> 数据库实例
    客户端B -> 专用服务器进程B -> 数据库实例
    
共享服务器(Shared Server)

多个客户端连接共享一组服务器进程,这种架构适用于高并发和资源利用率的场景。

例子

  • Web浏览器:多个客户端连接通过调度器(Dispatcher)共享一组服务器进程,服务器进程根据需要处理请求。
    客户端A -> 调度器 -> 共享服务器进程1 -> 数据库实例
    客户端B -> 调度器 -> 共享服务器进程2 -> 数据库实例
    

非常感谢您读到这里!如果您觉得这篇文章对您有帮助,可以关注一下博主。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。

全网第一个AI+PPT提效小册希望能对大家有帮助订阅之后有专属学习交流群
以及AI考试资料分享

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值