Oracle 体系结构组件!!!

时间:2021-11-25 09:05:13

Oracle 体系结构组件!!! 

Oracle 体系结构组件!!!

Oracle 服务器:

包括Oracle 例程和Oracle数据库

 

Oracle 例程:

是一种访问Oracle 数据库的方式

始终打开一个,并且只打开一个数据库

由内存结构和后台进程结构组成

 

Oracle 数据库:

是一个被统一处理的数据集合

包括三类文件:数据文件 控制文件 重做日志文件

 

系统全局区:

SGA 包括以下几种内存结构:共享池 数据库缓冲区高速缓存 重做日志缓冲区

SGA 中还可配置其它两种内存结构:大型共享池 Java

SGA 是动态的

大小由SGA_MAX_SIZE 参数指定

SGA 组件以粒组为单位进行分配和跟踪

连续的虚拟内存分配

粒组大小由估算的SGA_MAX_SIZE 总计大小确定

 

共享池:

用于存储最近执行的SQL 语句 最近使用的数据定义

它包括以下两个与性能相关的关键内存结构:库高速缓存 数据字典高速缓存

其大小由SHARED_POOL_SIZE参数确定

ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;

 

库高速缓存:

存储有关最近使用的SQL PL/SQL 语句的信息

启用常用语句共享

最近最少使用算法(LRU) 管理

包括以下两个结构:共享的SQL 共享的PL/SQL

大小由共享池的大小确定

 

数据字典高速缓存:

数据库中最近使用的定义的集合

包括与数据库文件、表、索引、列、用户、权限和其它数据库对象相关的信息

在语法分析阶段,服务器进程会在数据字典中查找用于解析对象名和验证访问的信息

将数据字典信息高速缓存到内存中,可缩短查询和DML的响应时间

大小由共享池的大小决定

 

数据库缓冲区高速缓存:

存储已从数据文件中检索到的数据块的副本

能够大幅提高获取和更新数据时的性能

通过LRU 算法管理

主块的大小由DB_BLOCK_SIZE 确定

   ALTER SYSTEM SET DB_CACHE_SIZE = 96M;

 

重做日志缓冲区:

记录对数据库数据块所做的全部更改

主要用于恢复

其中记录的更改称作重做条目

重做条目包含用于重新构造或重做更改的信息

大小由LOG_BUFFER 定义

 

大型共享池:

SGA 中的可选内存区

分担了共享池的一部分工作

用于:

共享服务器的会话内存(UGA)

I/O 服务器进程

备份和恢复操作或RMAN

并行执行消息缓冲区

PARALLEL_AUTOMATIC_TUNING 设置为TRUE

不使用LRU 列表

大小由LARGE_POOL_SIZE 确定

 

Java 池:

存储Java 命令的服务分析要求

在安装并使用Java 时是必需的

大小由JAVA_POOL_SIZE 参数确定

 

程序全局区(PGA)

为连接到Oracle 数据库的每个用户进程保留的内存

在创建进程时分配

在终止进程时回收

仅供一个进程使用

 

数据库写入程序(DBWn)

将数据库缓冲区高速缓存中的灰数据缓冲区写入数据文件。

出现检查点

灰数据缓冲区达到阈值

没有空闲缓冲区

出现超时

执行了RAC ping 请求

表空间处于OFFLINE 状态

表空间处于READ ONLY 状态

对表执行DROP TRUNCATE操作

对表空间执行BEGIN BACKUP操作

 

日志写入器(LGWR)

LGWR 在下列情况下执行从重做日志缓冲区到重做日志文件的连续写入:

当提交事务时

当重做日志缓冲区的三分之一填满时

当重做日志缓冲区中记录了超过1 MB 的更改时

DBWn 将数据库缓冲区高速缓存中修改的块写入数据文件以前

每隔三秒

 

系统监控程序(SMON)

如果Oracle 例程失败,那么SGA 中尚未写入磁盘的所有信息都会丢失。例如,操作系统

的失败导致例程失败。例程丢失后,后台进程SMON 在数据库重新打开时自动执行例程

恢复。

例程恢复

前滚重做日志中的更改

打开数据库供用户访问

回退未提交的事务处理

合并空闲空间

回收临时段

 

过程监视器(PMON)

进程失败后,后台进程PMON 通过下面的方法进行清理:

回退用户的当前事务处理

释放当前保留的所有表锁或行锁

释放用户当前保留的其它资源

重新启动已失效的调度程序

 

检查点(CKPT)

在检查点发信号给DBWn

使用检查点信息更新数据文件的标头

使用检查点信息更新控制文件

 

归档程序(ARCn)

可选的后台进程

设置ARCHIVELOG 模式时自动归档联机重做日志

保留数据库的全部更改记录