Oracle 实例2025 年 2 月 24 日 | 阅读 5 分钟 在本文中,我们将详细了解 Oracle 实例。 引言Oracle 实例是访问 Oracle 数据库的手段。一个实例一次只能打开和使用一个数据库。它包含 - 内存结构:它为数据库操作提供了足够的空间。
- 后台进程:它与内存用户通信。
Oracle 内存结构它用于应用程序数据字典信息、SQL 命令、PL/SQL 程序单元以及执行单个数据库请求和其他控制程序单元所需的数据。当实例启动时,内存结构会被分配给 Oracle。 下面列出了与 Oracle 关联的内存结构: 系统全局区 (System Global Area)这是一个内存区域,用于存储由数据库进程共享的数据库信息。它也被称为共享全局区 (Shared Global Area)。每个实例都有自己的系统全局字段。它包含 Oracle 服务器的数据和控制信息。系统全局区在实例停止时被释放,在实例启动时被分配。系统全局区中存储的信息被划分为不同的内存结构,这些结构在实例启动时被分配到特定位置。  下面列出了系统全局区的组件:- 数据库缓冲区缓存 (The Database Buffer Cache):它也被称为块缓冲区缓存。它是系统全局区的一部分,用于存储最近读取的数据文件的数据块副本。它被连接到数据库的所有用户共享。通过将频繁访问的数据块保留在缓存内存中,可以显著减少磁盘输入/输出活动。缓冲区缓存包含
当 Oracle 进程请求数据时,它会尝试在缓冲区缓存中查找数据。如果找到数据,则将结果返回给用户;否则,需要将数据从磁盘传输到缓冲区,然后将结果数据发送给用户。 缓冲区池由三个区域组成:
- 保留缓冲区池 (Keep buffer Pool)
- 默认缓冲区池 (Default buffer Pool)
- 回收缓冲区池 (Recycle buffer Pool)
- 重做日志缓冲区 (The Redo log buffer):它包含有关后台进程和服务器对数据库所做的更改的信息。
- 共享池 (The Shared Pool):它用于在系统全局区中保存最近的信息,例如最近执行的 SQL 语句、PL/SQL 代码、控制结构、安全属性和数据字典信息等。这些信息是共享的,并且可以被所有用户访问,作为系统全局区的一部分存储。
共享池进一步包含以下部分:
- 库缓存 (The Library Cache):通过减少解析所需的内存和时间,提高重用 SQL 语句的应用程序的性能。
- 数据字典缓存 (The Data Dictionary Cache):用于保存当前使用的数据字典信息。
- 大池 (Large Pool):数据库管理员可以将其配置为为主数据库操作(如 Oracle 备份或恢复操作)提供复杂的内存分配。
- Java 池 (Java Pool):它也是系统全局区中的一个可选区域,用于存储 Java 代码。
程序全局区 (The Program Global Area)它是一个内存缓冲区区域,用于保存单个 Oracle 服务器进程的数据和控制信息。程序全局区的内容和大小取决于您配置的 Oracle 服务器选项。它还提供排序区,Oracle 用于对数据进行排序。 软件代码区它通常存储在 Oracle 服务器上执行的代码。软件代码的大小是固定的,这些字段是只读的,并且可以共享。其余部分可能取决于操作系统。 后台进程这是一种在操作系统中执行一组指令的方法。实例启动后,Oracle 会立即启动后台进程。后台进程是实例,它执行服务并发用户请求所需的一般功能,而不会损害系统完整性和性能。  以下是主要后台进程的列表: - 数据库写入器 (Database Writer):它用于将数据库缓冲区缓存中的已修改块写入数据文件。在事务提交时,它不需要写入块。相反,它会在需要释放缓冲区时批量将更改的块写入数据文件。在发生检查点时,它会定期将缓冲区写入磁盘。
- 检查点 (Checkpoint):在系统全局区中,数据库写入器会将所有已修改的数据缓冲区写入数据文件,此事件称为检查点。
- 队列监视器 (Queue Monitor):此进程用于 Oracle 高级队列,它监视消息队列。您可以设置最多十个队列监视器进程。
- 日志写入器 (Log Writer):重做日志数据在系统全局区的重做日志缓冲区中生成。当事务提交且日志缓冲区文件已满时,日志写入器会将重做日志条目写入在线重做日志文件。
- 锁 (Lock):锁进程在并行服务器环境中用于实例间的锁定。
- 系统监视器 (System Monitor):如果 Oracle 实例发生故障,系统全局区中尚未写入磁盘的任何信息都将丢失。在这种情况下,当使用在线重做日志文件响应数据库时,系统监视器后台进程会根据需要执行实例恢复。
- 进程监视器 (Process Monitor):当用户进程失败时,它执行进程恢复。
- 归档进程 (Achiever):当 Oracle 在归档日志模式下运行时,数据库会在覆盖每个重做日志文件之前创建其副本。归档进程重做日志文件通常写入磁盘设备。
- 恢复 (Recover):RECO 用于解决分布式数据库中因系统故障或网络而处于挂起状态的分布式事务。
- 调度器 (Dispatcher):调度器是可选的后台进程,是多线程服务器架构的组成部分。
- 作业队列 (Job Queue):在使用分布式事务(最多 36 个快照)时,作业队列处理器可以自动刷新表快照。
- 共享服务器 (Shared Server):它们不与特定的用户进程相关联,而是提供与专用服务器进程相同的功能。它们是为了在多线程配置中管理数据库连接而创建的。
|