《Oracle数据库管理与维护实战》——2.3 Oracle进程

简介:

本节书摘来自异步社区出版社《Oracle数据库管理与维护实战》一书中的第2章,第2.3节,作者: 何伟娜 , 常建功,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 Oracle进程

Oracle数据库管理与维护实战
Oracle数据库中有许多进程,为了便于用户掌握,Oracle中将进程分为3种类型,分别为用户进程、服务器进程、后台进程,如图2-6所示。

image

2.3.1 用户进程

当用户连接数据库时,就会产生用户进程。如果要理解用户进程,我们必须掌握该类型进程涉及的两个概念,连接和会话。

1.连接
用户要与服务器进行交互,首先要建立起连接。连接是用户进程与服务器进程之间的通信通道。如果用户进程与服务器进程在同一服务器上,它们就通过服务器上的内部进程通信机制建立通信通道;如果用户进程在一个客户端,就通过网络建立通信通道。

2.会话
会话是用户与服务器之间连接的一种保持机制。当服务器确认用户身份后,就开始两者间的会话。用户进程有以下几个特点。

用户进程运行在客户机上。

用户进程与服务器进程在同一台机器上,用户进程与服务器可以合在一起,以节省系统资源。

在专用服务器配置中,用户向服务器发送一个服务请求,服务器就相应建立一个服务器进程。

2.3.2 服务器进程

用户进程不能与数据库实例直接交互,而是通过服务器进程与数据库实例交互,服务器进程有以下特点。

运行在服务器上,对专用服务器,一个用户请求建立一个服务器进程。在专用服务器上,服务器进程由用户进程激发,随用户进程的产生而产生,随用户进程的断开而消失。

对共享服务器,有可能多个用户进程共享一个服务器进程。

每一个服务器进程占用一个PGA。

服务器进程的作用有以下几点。

服务器进程对应用所发出的SQL语句进行语法分析和执行。

服务器进程从磁盘(数据文件)中读入必要的数据块到SGA的共享数据库缓冲区(该块不在缓冲区时)。

服务器进程将结果返回给应用程序处理。

2.3.3 专用服务器和共享服务器

服务器有两种配置方式,专用服务器配置和共享服务器配置。对不同的要求,用户可能以不同的方式连接数据库。

1.专用服务器配置
专用服务器进程中,一个用户请求对应一个服务器进程,如图2-7所示。专用服务器中的用户请求处理过程如下。

(1)客户机启动用户进程。

(2)客户机通过Oracle Net将请求发送给服务器,服务器的监听器检测到请求。

(3)服务器验证用户发来的用户名和口令。

(4)验证用户名和口令正确后,用户发送SQL语句。

(5)专用服务器进程确定共享SQL区是否有同样的SQL,如果没有,则为SQL分配新的共享SQL区,同时进行语法分析、编译,生成执行计划,创建PGA存放当前进程的私有信息。

(6)专用服务器进程从数据库缓冲区中读数据块,如果没有所需数据块,就从磁盘读取。

(7)专用服务器进程执行SQL语句。

(8)专用服务器进程将结果返回给用户进程。

image

2.共享服务器配置
如果很多用户连接到专用服务器,会产生大量的服务器进程。大部分时间这些服务器进程是空闲的,这就造成大量资源的浪费。共享服务器就是使一个服务器进程管理多个用户进程,以降低系统开销,增加用户个数。

共享服务器进程和用户进程不是一一对应的。共享服务器进程和专用服务器进程提供相同的功能,但共享服务器进程的PGA不包含与用户相关的数据,它仅包含栈空间。所有与用户有关的信息都包含在SGA中。每一个共享服务器进程可以存取全部会话的数据空间,从而使任何服务进程都可以处理任何会话的请求。

共享服务器配置中,实例启动时会启动一定数量的服务器进程,这些服务器进程以循环方式处理用户进程的请求。共享服务器用“调度进程”(分配器)管理用户请求。如图2-8所示,用户请求时,先加入请求队列。调度进程从请求队列中取出用户请求交给可用的共享服务器进程处理,处理完后将请求放入响应队列。Oracle可以根据请求队列的长度动态地调整共享服务器进程。

image

共享服务器处理用户请求的过程如下。

(1)服务器启动实例时也启动多个共享服务器进程和一个调度进程,同时在SGA中创建请求队列和响应队列。

(2)客户机产生用户进程并用Oracle Net将请求通知服务器。服务器Oracle Net监听检测到请求后,识别请求使用的协议,然后将用户进程连接到该协议的调度进程。如果用户请求的协议没有可用的分配器,服务器就启动专用服务器进程处理请求。

(3)用户身份确认后用户发出SQL语句,服务器调度进程分析请求,把请求和调度进程的ID一起放入到请求队列队尾。

(4)共享服务器进程确定共享SQL区是否有同样的SQL,如果没有,则为SQL分配新的共享SQL区,同时进行语法分析、编译,生成执行计划,创建PGA存放当前进程的私有信息。

(5)共享服务器进程从数据库缓冲区中读数据块,如果没有所需数据块,就从磁盘读取。

(6)共享服务器进程执行SQL语句。

(7)请求的结果放到调度进程的响应队列。

(8)调度进程定时检查响应队列,如果发现有响应就将响应发回用户请求进程。

需要注意的是,在共享服务器配置的服务器中,可以同时用共享服务器进程和专用服务器进程。

相关文章
|
7天前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
26 0
|
14天前
|
存储 Oracle 网络协议
Oracle 11gR2学习之二(创建数据库及OEM管理篇)
Oracle 11gR2学习之二(创建数据库及OEM管理篇)
|
18天前
|
Oracle 网络协议 关系型数据库
异地使用PLSQL远程连接访问Oracle数据库【内网穿透】
异地使用PLSQL远程连接访问Oracle数据库【内网穿透】
|
18天前
|
SQL Oracle 安全
Oracle数据库中的事务和锁
【4月更文挑战第19天】Oracle数据库的事务和锁是确保数据完整性和并发控制的核心机制。事务遵循ACID原则,保证操作的原子性、一致性、隔离性和持久性。通过COMMIT或ROLLBACK来管理事务更改。锁包括共享锁(读)、排他锁(写)、行级锁和表级锁,用于控制并发访问。自动锁机制在DML操作时生效,防止数据冲突。事务和锁共同维护数据库的稳定和安全。
|
18天前
|
存储 Oracle 关系型数据库
Oracle RAC:数据库集群的舞动乐章
【4月更文挑战第19天】Oracle RAC是Oracle提供的高可用性数据库解决方案,允许多个实例共享同一数据库,确保业务连续性和数据完整性。通过集群件和全局缓存服务实现服务器间的协调和通信。RAC提供高可用性,通过故障转移应对故障,同时提升性能,多个实例并行处理请求。作为数据管理员,理解RAC的架构和管理至关重要,以发挥其在数据管理中的最大价值。
|
18天前
|
监控 Oracle 安全
Oracle用户事件触发器:数据库世界的“福尔摩斯”
【4月更文挑战第19天】Oracle用户事件触发器是数据库中的监控机制,类似于“福尔摩斯”,在用户执行特定操作时自动触发。它们关注用户行为而非数据变化,可用于权限检查、安全监控、性能优化等。通过DDL语句创建,需注意逻辑清晰、条件合适及定期更新,以适应数据库变化和业务发展。掌握其使用能有效保障数据安全与稳定。
|
18天前
|
SQL 存储 Oracle
Oracle语句级触发器:数据库的“隐形哨兵”
【4月更文挑战第19天】Oracle语句级触发器是数据库中的自动执行程序,当特定事件(如INSERT、UPDATE、DELETE)发生时,会针对整个SQL语句触发。以新员工入职记录日志为例,创建语句级触发器可自动在操作后向日志表插入信息,减少手动工作并提高性能。虽然无法处理行级详细信息,但在处理大量数据时,相比行级触发器更高效。掌握触发器使用能提升数据管理效率和安全性。
|
18天前
|
Oracle 关系型数据库 数据库
Oracle示例模式Scott:数据库世界的“小导游”
【4月更文挑战第19天】Oracle的Scott模式是数据库学习的向导,提供操作性的环境,包含表(如EMP和DEPT)、视图和索引。通过它,学习者能掌握基本语法和操作,如创建表、插入数据和编写查询。它是通往Oracle数据库世界的起点,帮助新手奠定基础,开启数据库探索之旅。
|
18天前
|
存储 Oracle 关系型数据库
Oracle的模式与模式对象:数据库的“城市规划师”
【4月更文挑战第19天】在Oracle数据库中,模式是用户对象的集合,相当于数据库的城市规划,包含表、视图、索引等模式对象。模式对象是数据存储结构,如表用于存储数据,视图提供不同查看角度,索引加速数据定位。良好的模式与模式对象设计关乎数据效率、安全和稳定性。规划时需考虑业务需求、性能、安全和可扩展性,以构建高效数据库环境,支持企业业务发展。
|
18天前
|
SQL Oracle 关系型数据库
Oracle SQL*Plus的SPOOL命令:数据库世界的“录像机”
【4月更文挑战第19天】`SQL*Plus`的`SPOOL`命令是Oracle数据库中的“录像机”,能记录所有操作和输出。它在用户开始“SPOOL ON”时启动,记录SQL查询、输出、错误信息等。完成后,“SPOOL OFF”停止记录并生成日志文件,便于回顾和检查。日志文件可自定义保存位置和命名,支持多文件录制,方便分类管理。无论数据分析、SQL脚本编写还是日常维护,`SPOOL`都是强大的工具,值得一试!

推荐镜像

更多