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
Oracle Connection Manager概述
Oracle Connection Manager通常部署在独立的服务器上,作为代理服务器,通过配置可以执行访问控制和会话复用功能。
通常驻留在单独的服务器上 作为代理服务器运行 可配置执行访问控制过滤和会话复用 Oracle Connection Manager进程
CMGW和CMADMIN是Oracle Connection Manager的主要进程,分别负责连接管理和系统管理。
网关进程:CMGW,负责接收客户端连接、使用规则评估连接、转发请求和复用客户端连接。 管理进程:CMADMIN,多线程处理,执行管理功能。 Oracle Connection Manager架构
用户连接到Listener,Listener将请求传递给CMADMIN进行管理,再由CMGW处理并转发到数据库服务器。
用户 -> Listener -> CMADMIN -> CMGW -> 数据库服务器 使用过滤规则
过滤规则用于控制数据库访问,可以根据各种条件配置,如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))
)通过过滤规则控制对Oracle数据库的访问 规则基于客户端和服务器的主机名或IP地址、数据库服务名、Oracle高级安全性 实现内联网访问控制
内联网用户通过部门防火墙连接到Oracle Connection Manager,进行访问控制。
使用Oracle Connection Manager实现内联网的访问控制 实现互联网访问控制
互联网用户通过应用网关访问内部网络,实现安全控制。
互联网用户 -> 应用网关 -> 内部网络 使用会话复用
多个客户端通过应用服务器连接到Oracle Connection Manager,再由其管理连接到数据库服务器,实现会话复用。
多个用户 -> 应用Web服务器 -> Oracle Connection Manager -> 数据库服务器 配置Oracle Connection Manager
配置Oracle Connection Manager需要完成这三步,确保系统能够正确运行和管理连接。
三步流程:配置 cman.ora
文件、配置客户端、可选配置数据库服务器配置
cman.ora
文件cman.ora
文件是Oracle Connection Manager的核心配置文件,包含了所有必要的配置参数。定义协议地址、访问控制规则和性能参数
详细例子
Example of a cman.ora File
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)
)
)配置 CMAN01
实例的cman.ora
文件包括地址配置、规则列表和参数列表 Configuring the Database Server
要配置数据库服务器与Oracle Connection Manager协同工作,需要在
tnsnames.ora
文件中添加服务名称,并在初始化参数文件中设置远程监听器。tnsnames.ora
文件:listener_cman01 =
(ADDRESS = (PROTOCOL = tcp)(HOST = proxyserver1)(PORT = 1521))init.ora
文件:REMOTE_LISTENER = listener_cman01在 tnsnames.ora
文件中为Oracle Connection Manager添加服务名称条目在初始化参数文件中指定Oracle Connection Manager的别名 Configuring the Database Server for Multiplexing (Optional)
配置数据库服务器进行会话多路复用,通过设置
DISPATCHERS
参数启用多路复用功能。init.ora
文件:DISPATCHERS = "(PROTOCOL = TCP)(MULTIPLEX = ON)"在初始化参数文件中设置 DISPATCHERS
参数的协议和多路复用属性Using the Oracle Connection Manager Control Utility
Oracle Connection Manager Control工具(CMCTL)用于管理Connection Manager,可以执行启动、停止、状态查看等操作。
启动Connection Manager: cmctl startup查看Connection Manager状态: cmctl status停止Connection Manager: cmctl shutdown基本语法: CMCTL command [process_type]支持的命令类型:操作命令、修改命令、信息命令和实用命令 Review of Oracle Connection Manager Features
Oracle Connection Manager的两个主要功能是访问控制过滤和会话复用,分别通过
cman.ora
文件和初始化参数文件进行配置。通过 cman.ora
文件中的CMAN_RULES
参数进行访问控制过滤通过 DISPATCHERS
初始化参数的PROTOCOL
和MULTIPLEX
属性进行会话复用
访问控制过滤
通过cman.ora
文件中的CMAN_RULES
参数,可以设置访问控制规则,限制哪些客户端可以访问数据库服务器。这些规则可以基于源IP地址、目标IP地址、服务名等条件进行过滤。
步骤:
创建或编辑 cman.ora
文件。在 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
参数,可以启用会话复用。会话复用可以将多个客户端连接合并为较少的数据库服务器进程,减少系统开销。
步骤:
在数据库服务器的初始化参数文件(如 init.ora
)中设置DISPATCHERS
参数。启用多路复用(Multiplexing)功能。
数据库服务器的初始化参数文件位于$ORACLE_HOME/dbs/init.ora
,其内容如下:
DISPATCHERS = "(PROTOCOL = TCP)(MULTIPLEX = ON)"
说明:
DISPATCHERS
参数配置数据库服务器使用TCP协议,并启用多路复用功能。
整合示例
步骤:
配置 cman.ora
文件。配置数据库服务器的初始化参数文件。 确保客户端和数据库服务器都能通过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工具的无限可能,让复杂的任务变得简单,让你的工作更加轻松和高效。





