Oracle Connection Manager

Oracle Connection Manager的功能

Oracle Connection Manager是一个用于管理数据库连接的中间件工具,其功能包括:

  • 访问控制过滤:基于规则限制数据库访问。
  • 会话复用:将多个客户端连接复用到一个或多个数据库连接,减少数据库服务器的连接数。

比如有多个应用系统需要连接到同一个Oracle数据库,通过使用Oracle Connection Manager,可以减少数据库服务器的负载,优化资源使用。

Oracle Connection Manager的架构

Oracle Connection Manager的架构包括以下部分:

  • CMAN Listener:监听客户端连接请求。
  • CMAN Gateway:管理和分发客户端连接请求到适当的数据库服务器。
  • CMAN Admin:管理和配置Connection Manager。
  • 用户请求 -> CMAN Listener监听 -> CMAN Gateway处理和分发 -> 数据库服务器响应。

配置Oracle Connection Manager进行会话复用

要配置Oracle Connection Manager进行会话复用,需要进行以下步骤:

  • 配置cman.ora文件,包括监听器地址、访问控制规则和性能参数。
  • 配置客户端连接到Oracle Connection Manager的协议地址。
  • 可选:配置数据库服务器进行会话复用。
  • 配置文件cman.ora

    cman = (address=(protocol=tcp)(host=your_host)(port=your_port))
    cman_profile = (parameter_list=(max_connections=256)(idle_timeout=30)(session_timeout=300))
  • 重新启动CMAN服务:

    cmanctl startup

使用Oracle Connection Manager Control工具管理Oracle Connection Manager

Oracle提供了Connection Manager Control(CMCTL)工具用于管理Connection Manager。可以通过这个工具进行启动、停止、状态查看等操作。

  • 启动Connection Manager:

    cmctl startup
  • 查看Connection Manager状态:

    cmctl status
  • 停止Connection Manager:

    cmctl shutdown
  1. Oracle Connection Manager概述
  • 通常驻留在单独的服务器上
  • 作为代理服务器运行
  • 可配置执行访问控制过滤和会话复用

Oracle Connection Manager通常部署在独立的服务器上,作为代理服务器,通过配置可以执行访问控制和会话复用功能。

  1. Oracle Connection Manager进程
  • 网关进程:CMGW,负责接收客户端连接、使用规则评估连接、转发请求和复用客户端连接。
  • 管理进程:CMADMIN,多线程处理,执行管理功能。

CMGW和CMADMIN是Oracle Connection Manager的主要进程,分别负责连接管理和系统管理。

  1. Oracle Connection Manager架构
  • 用户 -> Listener -> CMADMIN -> CMGW -> 数据库服务器

用户连接到Listener,Listener将请求传递给CMADMIN进行管理,再由CMGW处理并转发到数据库服务器。

  1. 使用过滤规则
  • 通过过滤规则控制对Oracle数据库的访问
  • 规则基于客户端和服务器的主机名或IP地址、数据库服务名、Oracle高级安全性

过滤规则用于控制数据库访问,可以根据各种条件配置,如IP地址和数据库服务名。

  • cman.ora文件中配置过滤规则:

    cman_rules =
      (rule_list =
        (rule = (src = 192.168.1.0/24)(dst = 192.168.2.0/24)(srv = my_service)(act = accept))
      )
  1. 实现内联网访问控制
  • 使用Oracle Connection Manager实现内联网的访问控制

内联网用户通过部门防火墙连接到Oracle Connection Manager,进行访问控制。

  1. 实现互联网访问控制
  • 互联网用户 -> 应用网关 -> 内部网络

互联网用户通过应用网关访问内部网络,实现安全控制。

  1. 使用会话复用
  • 多个用户 -> 应用Web服务器 -> Oracle Connection Manager -> 数据库服务器

多个客户端通过应用服务器连接到Oracle Connection Manager,再由其管理连接到数据库服务器,实现会话复用。

  1. 配置Oracle Connection Manager
  • 三步流程:配置cman.ora文件、配置客户端、可选配置数据库服务器

配置Oracle Connection Manager需要完成这三步,确保系统能够正确运行和管理连接。

  1. 配置cman.ora文件
  • 定义协议地址、访问控制规则和性能参数

cman.ora文件是Oracle Connection Manager的核心配置文件,包含了所有必要的配置参数。

详细例子

  1. Example of a cman.ora File
  • 配置CMAN01实例的cman.ora文件
  • 包括地址配置、规则列表和参数列表

cman.ora文件用于配置Oracle Connection Manager实例的网络地址、访问控制规则和性能参数。

CMAN01 =
  (CONFIGURATION =
    (ADDRESS = (PROTOCOL = tcp)(HOST = proxysvr)(PORT = 1521))
    (RULE_LIST =
      (RULE = (SRC = 192.0.2.32/24)(DST = fin-server)(SRV = *)(ACT = accept))
      (ACTION_LIST = (AUT = on)(MCT = 120)(MIT = 30))
      (RULE = (SRC = 192.0.2.32)(DST = proxysvr)(SRV = cmon)(ACT = accept))
    )
    (PARAMETER_LIST =
      (LOG_LEVEL = 2)
      (TRACING = on)
      (MAX_GATEWAY_PROCESSES = 8)
      (MIN_GATEWAY_PROCESSES = 3)
    )
  )
  1. Configuring the Database Server
  • tnsnames.ora文件中为Oracle Connection Manager添加服务名称条目
  • 在初始化参数文件中指定Oracle Connection Manager的别名

要配置数据库服务器与Oracle Connection Manager协同工作,需要在tnsnames.ora文件中添加服务名称,并在初始化参数文件中设置远程监听器。

  • tnsnames.ora文件:

    listener_cman01 =
      (ADDRESS = (PROTOCOL = tcp)(HOST = proxyserver1)(PORT = 1521))
  • init.ora文件:

    REMOTE_LISTENER = listener_cman01
  1. Configuring the Database Server for Multiplexing (Optional)
  • 在初始化参数文件中设置DISPATCHERS参数的协议和多路复用属性

配置数据库服务器进行会话多路复用,通过设置DISPATCHERS参数启用多路复用功能。

  • init.ora文件:

    DISPATCHERS = "(PROTOCOL = TCP)(MULTIPLEX = ON)"
  1. Using the Oracle Connection Manager Control Utility
  • 基本语法:CMCTL command [process_type]
  • 支持的命令类型:操作命令、修改命令、信息命令和实用命令

Oracle Connection Manager Control工具(CMCTL)用于管理Connection Manager,可以执行启动、停止、状态查看等操作。

  • 启动Connection Manager:

    cmctl startup
  • 查看Connection Manager状态:

    cmctl status
  • 停止Connection Manager:

    cmctl shutdown
  1. Review of Oracle Connection Manager Features
  • 通过cman.ora文件中的CMAN_RULES参数进行访问控制过滤
  • 通过DISPATCHERS初始化参数的PROTOCOLMULTIPLEX属性进行会话复用

Oracle Connection Manager的两个主要功能是访问控制过滤和会话复用,分别通过cman.ora文件和初始化参数文件进行配置。

访问控制过滤

通过cman.ora文件中的CMAN_RULES参数,可以设置访问控制规则,限制哪些客户端可以访问数据库服务器。这些规则可以基于源IP地址、目标IP地址、服务名等条件进行过滤。

步骤:

  1. 创建或编辑cman.ora文件。
  2. cman.ora文件中定义RULE_LIST,配置访问控制规则。

cman.ora文件位于/opt/oracle/network/admin/cman.ora,其内容如下:

CMAN01 =
  (CONFIGURATION =
    (ADDRESS = (PROTOCOL = tcp)(HOST = proxysvr)(PORT = 1521))
    (RULE_LIST =
      (RULE = (SRC = 192.0.2.0/24)(DST = 10.0.0.0/24)(SRV = my_service)(ACT = accept))
      (RULE = (SRC = 192.0.2.100)(DST = 10.0.0.10)(SRV = admin_service)(ACT = deny))
    )
    (PARAMETER_LIST =
      (LOG_LEVEL = 2)
      (TRACING = on)
      (MAX_GATEWAY_PROCESSES = 8)
      (MIN_GATEWAY_PROCESSES = 3)
    )
  )

说明:

  • 第一条规则允许源自192.0.2.0/24网段的客户端访问10.0.0.0/24网段上的数据库服务my_service
  • 第二条规则拒绝源自192.0.2.100的客户端访问10.0.0.10上的管理服务admin_service

会话复用

通过数据库服务器的初始化参数文件中的DISPATCHERS参数,可以启用会话复用。会话复用可以将多个客户端连接合并为较少的数据库服务器进程,减少系统开销。

步骤:

  1. 在数据库服务器的初始化参数文件(如init.ora)中设置DISPATCHERS参数。
  2. 启用多路复用(Multiplexing)功能。

数据库服务器的初始化参数文件位于$ORACLE_HOME/dbs/init.ora,其内容如下:

DISPATCHERS = "(PROTOCOL = TCP)(MULTIPLEX = ON)"

说明:

  • DISPATCHERS参数配置数据库服务器使用TCP协议,并启用多路复用功能。

整合示例

步骤:

  1. 配置cman.ora文件。
  2. 配置数据库服务器的初始化参数文件。
  3. 确保客户端和数据库服务器都能通过Oracle Connection Manager进行通信。
  • cman.ora文件:

    CMAN01 =
      (CONFIGURATION =
        (ADDRESS = (PROTOCOL = tcp)(HOST = proxysvr)(PORT = 1521))
        (RULE_LIST =
          (RULE = (SRC = 192.0.2.0/24)(DST = 10.0.0.0/24)(SRV = my_service)(ACT = accept))
          (RULE = (SRC = 192.0.2.100)(DST = 10.0.0.10)(SRV = admin_service)(ACT = deny))
        )
        (PARAMETER_LIST =
          (LOG_LEVEL = 2)
          (TRACING = on)
          (MAX_GATEWAY_PROCESSES = 8)
          (MIN_GATEWAY_PROCESSES = 3)
        )
      )
  • 数据库服务器的初始化参数文件init.ora

    DISPATCHERS = "(PROTOCOL = TCP)(MULTIPLEX = ON)"
  • 客户端的tnsnames.ora文件:

    mydb =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = tcp)(HOST = proxyserver1)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = my_service)
        )
      )

通过以上配置,可以实现通过Oracle Connection Manager进行访问控制过滤和会话复用,优化数据库连接的效率和安全性。

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

让AI工具成为你的得力助手,感受AI工具的无限可能,让复杂的任务变得简单,让你的工作更加轻松和高效。

本文由mdnice多平台发布


逼格高的汤圆
10 声望2 粉丝