连接数据库实例
会话和连接的定义及例子
- 连接(Connection):指的是用户进程和数据库实例之间的通信通道。
- 会话(Session):代表当前用户登录到数据库实例的状态。
例子:
建立连接:用户通过SQL*Plus发出一个SQL查询(如
SQL> SELECT ...
),这会创建一个连接到数据库的通道。SQL> CONNECT username/password@database;
- 创建会话:当用户成功连接到数据库实例后,会创建一个会话,用于保持用户状态和执行SQL操作。每次连接都会对应一个会话。
Oracle Net Services概述
Oracle Net Services提供客户端或中间层与数据库服务器之间的通信。其架构包括以下组件:
- 应用程序(Application):客户端或中间层的应用程序,通过Oracle Net与数据库服务器通信。
- 监听器(Listener):在数据库服务器上运行,监听来自客户端的连接请求,并管理流量。
- Oracle Net配置文件:包含网络配置参数,如
listener.ora
、tnsnames.ora
和sqlnet.ora
。
例子:
- 客户端应用程序:一个基于Java的应用程序连接到Oracle数据库以获取数据。
- 监听器:监听器在数据库服务器上运行,配置在
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
。
例子:
监听器配置文件(listener.ora):
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myserver)(PORT = 1521)) ) )
命名方法配置文件(sqlnet.ora):
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
命名服务名配置文件(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):命令行工具,用于管理监听器。
例子:
- Enterprise Manager Cloud Control:通过Web界面监控和管理数据库实例和网络配置。
Oracle Net Manager:使用图形界面配置监听器和命名方法。
$ netmgr
Oracle Net Configuration Assistant:使用命令行配置网络服务。
$ netca
Listener Control Utility(LSNRCTL):
$ lsnrctl start
Oracle Net Listener概述
Oracle Net Listener负责处理客户端连接请求,并将其分配给适当的数据库服务。它可以通过以下工具进行管理:
- Enterprise Manager Cloud Control
- Oracle Net Manager
- Oracle Net配置文件:如
listener.ora
和sqlnet.ora
例子:
启动监听器:
$ lsnrctl start
查看监听器状态:
$ lsnrctl status
默认监听器
在创建Oracle数据库时,Oracle Net Configuration Assistant实用程序会创建一个名为LISTENER
的本地监听器。
- 动态服务注册:监听器会自动填充可用的数据库服务。
- 监听地址:监听器默认监听TCP/IP协议地址,如
(PROTOCOL=tcp)(HOST=host_name)(PORT=1521)
。 - 默认配置:无需额外配置,数据库实例即可通过
LISTENER
访问。
例子:
默认监听器配置:
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考试资料分享**
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。