超详细的oracle DB体系结构图 二

继上一次的oracle体系结构图分享

关于oracle体系结构图第二部分如下:

数据库管理员可以配置称为“大型池”的可选内存区,以便为以下对象提供大型内存分配:

• 共享服务器的会话内存和 Oracle XA 接口(在事务处理与多个数据库交互时使用)

• I/O 服务器进程

• Oracle DB 备份和还原操作

通过从大型池中为共享服务器、 Oracle XA 或并行查询缓冲区分配会话内存, Oracle DB

可以主要使用共享池来缓存共享 SQL,并避免由于收缩共享 SQL 高速缓存而导致的性能

开销。

此外,用于 Oracle DB 备份和还原操作、 I/O 服务器进程以及并行缓冲区的内存以数百 KB

的缓冲区进行分配。与共享池相比,大型池可以更好地满足此类大型内存请求。

大型池没有 LRU 列表。它与共享池中的保留空间不同,后者与从共享池中分配的其它内

存使用相同的 LRU 列表。

Java 池指导统计信息提供了用于 Java 的库高速缓存内存的相关信息,并预测 Java 池大小

的变化如何影响语法分析速率。当 statistics_level 设置为 TYPICAL 或更高值时,

将在内部打开 Java 池指导。关闭该指导时,将重置这些统计信息。

流池由 Oracle Streams 独占使用。流池存储缓冲的队列消息,并且为 Oracle Streams 捕获

进程和应用进程提供内存。

除非对流池进行专门配置,否则其大小从零开始。当使用 Oracle Streams 时,池大小会根

据需要动态增长。

程序全局区 (PGA) 是一个专用内存区,其中包含服务器进程的数据及控制信息。每个服务器进程都有独立的 PGA。 PGA 只能由相应的服务器进程访问,并且只有代表该服务器进程的 Oracle 代码可以读取它。开发人员的代码不能访问 PGA。

每个 PGA 都包含堆栈空间。在专用服务器环境中,连接到数据库实例的每个用户都有单独的服务器进程。对于这种类型的连接, PGA 包含一个名为用户全局区 (UGA) 的内存细分部分。 UGA 包括以下部分:

• 游标区,用于存储游标的运行时信息

• 用户会话数据存储区,用于存储有关会话的控制信息

• SQL 工作区,用于处理 SQL 语句,其中包括:

- 排序区,用于对数据排序的函数,如 ORDER BY 和 GROUP BY

- 散列区,用于执行表的散列联接

- 位图创建区,用于创建数据仓库常用的位图索引

- 位图合并区,用于解析位图索引计划的执行

在共享服务器环境中,多个客户机用户共享服务器进程。在这种模式下, UGA 将移入SGA(共享池,如果经过配置也可是大型池), PGA 仅包含堆栈空间。

Oracle DB 系统中的进程主要分为两组:

• 运行应用程序或 Oracle 工具代码的用户进程

• 运行 Oracle DB 服务器代码的 Oracle DB 进程(包括服务器进程和后台进程)

当用户运行应用程序或 Oracle 工具(例如 SQL*Plus)时, Oracle DB 会创建一个“用户

进程”以运行该用户的应用程序。 Oracle DB 还会创建一个“服务器进程”以执行该用户

进程发出的命令。此外, Oracle 服务器还会为实例创建一组“后台进程”,这些进程不仅

彼此交互,而且还与操作系统交互,以便管理内存结构,通过异步执行 I/O 操作将数据写

入磁盘,并执行其它需要的任务。

对于不同的 Oracle DB 配置,进程结构也有所不同,具体取决于操作系统和选择的 Oracle

DB 选件。已连接用户的代码可以配置为专用服务器或共享服务器。

• 专用服务器: 对于每个用户,运行数据库应用程序的用户进程都由执行 Oracle DB 服

务器代码的专用服务器进程提供服务。

• 共享服务器: 不必为每个连接都提供一个专用服务器进程。分派程序将多个传入网络

会话请求引到共享服务器进程池。共享服务器进程为所有客户机请求提供服务。

安装 Oracle Grid Infrastructure 时,会在操作系统的 /etc/inittab 文件中放入条目,以启动包装脚本。该包装脚本负责设置环境变量,然后启动 Oracle Grid Infrastructure守护程序和进程。

使用命令停止 Oracle Grid Infrastructure 时,守护程序会停止,但包装脚本进程仍会运行。

UNIX 下的 /etc/inittab 文件格式如下:

id : run levels : action : process with parameters

由于包装脚本是使用 respawn 操作启动的,因此终止后,它都会重新启动。

在 Oracle Grid Infrastructure 守护程序启动以后,有些将在 root 用户身份下以实时优先级运行,而另一些将在 Oracle Grid Infrastructure 所有者身份下以用户模式优先级运行。在 Windows 平台上,使用的是操作系统服务而非初始化包装脚本,而且守护程序是二进制的可执行文件。

注: 不支持直接执行包装脚本。

构成 Oracle DB 的文件可划分为以下类别:

• 控制文件: 包含与数据库本身相关的数据,即物理数据库结构信息。这些文件对数据库至关重要。没有这些文件,就无法打开数据文件以访问数据库中的数据。

• 数据文件: 包含数据库的用户或应用程序数据,以及元数据和数据字典

• 联机重做日志文件: 用于进行数据库的实例恢复。如果数据库服务器发生崩溃,但未丢失任何数据文件,那么实例便可使用这些文件中的信息恢复数据库。

下列附加文件对成功运行数据库非常重要:

• 参数文件: 用于定义实例启动时的配置

• 口令文件: 允许 sysdba、 sysoper 和 sysasm 远程连接到实例并执行管理任务

• 备份文件: 用于进行数据库恢复。如果原始文件在发生介质故障或用户错误时被损坏或删除,通常要还原备份文件。

• 归档重做日志文件: 包含实例发生的数据更改(重做)的实时历史记录。使用这些文件和数据库备份,可以恢复丢失的数据文件。也就是说,归档日志能够恢复还原的数据文件。

• 跟踪文件: 每个服务器和后台进程都可以写入关联的跟踪文件。当进程检测到内部错误时,进程会将有关该错误的信息转储到相应的跟踪文件中。写入跟踪文件的一些信息是为数据库管理员提供的,而其它信息是为 Oracle Support Services 提供的。

• 预警日志文件: 这些文件包含特殊的跟踪条目。数据库的预警日志是按时间顺序列出的消息日志和错误日志。

篇幅有限,只能分成3部分分享给大家,觉得有用的走波关注哦~

其他2部分的内容,因为弄不了跳转链接,其他内容只能大家关注然后去最近动态找了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181110A1LPSV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券