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,多线程处理,执行管理功能。
CMGW和CMADMIN是Oracle Connection Manager的主要进程,分别负责连接管理和系统管理。
- Oracle Connection Manager架构
- 用户 -> Listener -> CMADMIN -> CMGW -> 数据库服务器
用户连接到Listener,Listener将请求传递给CMADMIN进行管理,再由CMGW处理并转发到数据库服务器。
- 使用过滤规则
- 通过过滤规则控制对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)) )
- 实现内联网访问控制
- 使用Oracle Connection Manager实现内联网的访问控制
内联网用户通过部门防火墙连接到Oracle Connection Manager,进行访问控制。
- 实现互联网访问控制
- 互联网用户 -> 应用网关 -> 内部网络
互联网用户通过应用网关访问内部网络,实现安全控制。
- 使用会话复用
- 多个用户 -> 应用Web服务器 -> Oracle Connection Manager -> 数据库服务器
多个客户端通过应用服务器连接到Oracle Connection Manager,再由其管理连接到数据库服务器,实现会话复用。
- 配置Oracle Connection Manager
- 三步流程:配置
cman.ora
文件、配置客户端、可选配置数据库服务器
配置Oracle Connection Manager需要完成这三步,确保系统能够正确运行和管理连接。
- 配置
cman.ora
文件
- 定义协议地址、访问控制规则和性能参数
cman.ora
文件是Oracle Connection Manager的核心配置文件,包含了所有必要的配置参数。
详细例子
- 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)
)
)
- 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
- Configuring the Database Server for Multiplexing (Optional)
- 在初始化参数文件中设置
DISPATCHERS
参数的协议和多路复用属性
配置数据库服务器进行会话多路复用,通过设置DISPATCHERS
参数启用多路复用功能。
init.ora
文件:DISPATCHERS = "(PROTOCOL = TCP)(MULTIPLEX = ON)"
- 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
- Review of Oracle Connection Manager Features
- 通过
cman.ora
文件中的CMAN_RULES
参数进行访问控制过滤 - 通过
DISPATCHERS
初始化参数的PROTOCOL
和MULTIPLEX
属性进行会话复用
Oracle Connection Manager的两个主要功能是访问控制过滤和会话复用,分别通过cman.ora
文件和初始化参数文件进行配置。
访问控制过滤
通过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工具的无限可能,让复杂的任务变得简单,让你的工作更加轻松和高效。
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。